Лабораторная 5. Фикс размеров главного окна + создание заказа в web-клиенте.

This commit is contained in:
ksenianeva 2023-05-15 01:06:32 +04:00
parent 0d8a810eac
commit 977636db81
7 changed files with 90 additions and 85 deletions

View File

@ -33,6 +33,7 @@
this.справочникиToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.условияToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.путешествияToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.клиентыToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.отчетToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.списокУсловийToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.условияПоПоездкамToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -42,7 +43,6 @@
this.ButtonOrderReady = new System.Windows.Forms.Button();
this.ButtonIssuedOrder = new System.Windows.Forms.Button();
this.ButtonRef = new System.Windows.Forms.Button();
this.клиентыToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
this.menuStrip.SuspendLayout();
this.SuspendLayout();
@ -51,14 +51,15 @@
//
this.dataGridView.BackgroundColor = System.Drawing.Color.White;
this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView.Location = new System.Drawing.Point(4, 45);
this.dataGridView.Location = new System.Drawing.Point(3, 36);
this.dataGridView.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.dataGridView.MultiSelect = false;
this.dataGridView.Name = "dataGridView";
this.dataGridView.RowHeadersVisible = false;
this.dataGridView.RowHeadersWidth = 62;
this.dataGridView.RowTemplate.Height = 33;
this.dataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dataGridView.Size = new System.Drawing.Size(1201, 520);
this.dataGridView.Size = new System.Drawing.Size(1209, 416);
this.dataGridView.TabIndex = 0;
//
// menuStrip
@ -69,7 +70,8 @@
this.отчетToolStripMenuItem});
this.menuStrip.Location = new System.Drawing.Point(0, 0);
this.menuStrip.Name = "menuStrip";
this.menuStrip.Size = new System.Drawing.Size(1452, 33);
this.menuStrip.Padding = new System.Windows.Forms.Padding(5, 2, 0, 2);
this.menuStrip.Size = new System.Drawing.Size(1408, 28);
this.menuStrip.TabIndex = 1;
this.menuStrip.Text = "menuStrip1";
//
@ -80,23 +82,30 @@
this.путешествияToolStripMenuItem,
this.клиентыToolStripMenuItem});
this.справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem";
this.справочникиToolStripMenuItem.Size = new System.Drawing.Size(139, 29);
this.справочникиToolStripMenuItem.Size = new System.Drawing.Size(117, 24);
this.справочникиToolStripMenuItem.Text = "Справочники";
//
// условияToolStripMenuItem
//
this.условияToolStripMenuItem.Name = "условияToolStripMenuItem";
this.условияToolStripMenuItem.Size = new System.Drawing.Size(270, 34);
this.условияToolStripMenuItem.Size = new System.Drawing.Size(182, 26);
this.условияToolStripMenuItem.Text = "Условия";
this.условияToolStripMenuItem.Click += new System.EventHandler(this.условияToolStripMenuItem_Click);
//
// путешествияToolStripMenuItem
//
this.путешествияToolStripMenuItem.Name = "путешествияToolStripMenuItem";
this.путешествияToolStripMenuItem.Size = new System.Drawing.Size(270, 34);
this.путешествияToolStripMenuItem.Size = new System.Drawing.Size(182, 26);
this.путешествияToolStripMenuItem.Text = "Путешествия";
this.путешествияToolStripMenuItem.Click += new System.EventHandler(this.путешествияToolStripMenuItem_Click);
//
// клиентыToolStripMenuItem
//
this.клиентыToolStripMenuItem.Name = "клиентыToolStripMenuItem";
this.клиентыToolStripMenuItem.Size = new System.Drawing.Size(182, 26);
this.клиентыToolStripMenuItem.Text = "Клиенты";
this.клиентыToolStripMenuItem.Click += new System.EventHandler(this.клиентыToolStripMenuItem_Click);
//
// отчетToolStripMenuItem
//
this.отчетToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -104,35 +113,36 @@
this.условияПоПоездкамToolStripMenuItem,
this.списокЗаказовToolStripMenuItem});
this.отчетToolStripMenuItem.Name = "отчетToolStripMenuItem";
this.отчетToolStripMenuItem.Size = new System.Drawing.Size(75, 29);
this.отчетToolStripMenuItem.Size = new System.Drawing.Size(62, 24);
this.отчетToolStripMenuItem.Text = "Отчет";
//
// списокУсловийToolStripMenuItem
//
this.списокУсловийToolStripMenuItem.Name = "списокУсловийToolStripMenuItem";
this.списокУсловийToolStripMenuItem.Size = new System.Drawing.Size(291, 34);
this.списокУсловийToolStripMenuItem.Size = new System.Drawing.Size(243, 26);
this.списокУсловийToolStripMenuItem.Text = "Список путешествий";
this.списокУсловийToolStripMenuItem.Click += new System.EventHandler(this.ConditionsToolStripMenuItem_Click);
//
// условияПоПоездкамToolStripMenuItem
//
this.условияПоПоездкамToolStripMenuItem.Name = "условияПоПоездкамToolStripMenuItem";
this.условияПоПоездкамToolStripMenuItem.Size = new System.Drawing.Size(291, 34);
this.условияПоПоездкамToolStripMenuItem.Size = new System.Drawing.Size(243, 26);
this.условияПоПоездкамToolStripMenuItem.Text = "Условия по поездкам";
this.условияПоПоездкамToolStripMenuItem.Click += new System.EventHandler(this.ConditionTravelsToolStripMenuItem_Click);
//
// списокЗаказовToolStripMenuItem
//
this.списокЗаказовToolStripMenuItem.Name = "списокЗаказовToolStripMenuItem";
this.списокЗаказовToolStripMenuItem.Size = new System.Drawing.Size(291, 34);
this.списокЗаказовToolStripMenuItem.Size = new System.Drawing.Size(243, 26);
this.списокЗаказовToolStripMenuItem.Text = "Список заказов";
this.списокЗаказовToolStripMenuItem.Click += new System.EventHandler(this.OrdersToolStripMenuItem_Click);
//
// buttonCreateOrder
//
this.buttonCreateOrder.Location = new System.Drawing.Point(1224, 55);
this.buttonCreateOrder.Location = new System.Drawing.Point(1224, 36);
this.buttonCreateOrder.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.buttonCreateOrder.Name = "buttonCreateOrder";
this.buttonCreateOrder.Size = new System.Drawing.Size(216, 34);
this.buttonCreateOrder.Size = new System.Drawing.Size(173, 27);
this.buttonCreateOrder.TabIndex = 2;
this.buttonCreateOrder.Text = "Создать заказ";
this.buttonCreateOrder.UseVisualStyleBackColor = true;
@ -140,9 +150,10 @@
//
// ButtonTakeOrderInWork
//
this.ButtonTakeOrderInWork.Location = new System.Drawing.Point(1224, 124);
this.ButtonTakeOrderInWork.Location = new System.Drawing.Point(1224, 91);
this.ButtonTakeOrderInWork.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.ButtonTakeOrderInWork.Name = "ButtonTakeOrderInWork";
this.ButtonTakeOrderInWork.Size = new System.Drawing.Size(216, 34);
this.ButtonTakeOrderInWork.Size = new System.Drawing.Size(173, 27);
this.ButtonTakeOrderInWork.TabIndex = 3;
this.ButtonTakeOrderInWork.Text = "Отдать на выполнение";
this.ButtonTakeOrderInWork.UseVisualStyleBackColor = true;
@ -150,9 +161,10 @@
//
// ButtonOrderReady
//
this.ButtonOrderReady.Location = new System.Drawing.Point(1224, 203);
this.ButtonOrderReady.Location = new System.Drawing.Point(1224, 154);
this.ButtonOrderReady.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.ButtonOrderReady.Name = "ButtonOrderReady";
this.ButtonOrderReady.Size = new System.Drawing.Size(216, 34);
this.ButtonOrderReady.Size = new System.Drawing.Size(173, 27);
this.ButtonOrderReady.TabIndex = 4;
this.ButtonOrderReady.Text = "Заказ готов";
this.ButtonOrderReady.UseVisualStyleBackColor = true;
@ -160,9 +172,10 @@
//
// ButtonIssuedOrder
//
this.ButtonIssuedOrder.Location = new System.Drawing.Point(1224, 267);
this.ButtonIssuedOrder.Location = new System.Drawing.Point(1224, 206);
this.ButtonIssuedOrder.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.ButtonIssuedOrder.Name = "ButtonIssuedOrder";
this.ButtonIssuedOrder.Size = new System.Drawing.Size(216, 34);
this.ButtonIssuedOrder.Size = new System.Drawing.Size(173, 27);
this.ButtonIssuedOrder.TabIndex = 5;
this.ButtonIssuedOrder.Text = "Заказ выдан";
this.ButtonIssuedOrder.UseVisualStyleBackColor = true;
@ -170,26 +183,20 @@
//
// ButtonRef
//
this.ButtonRef.Location = new System.Drawing.Point(1224, 338);
this.ButtonRef.Location = new System.Drawing.Point(1224, 262);
this.ButtonRef.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.ButtonRef.Name = "ButtonRef";
this.ButtonRef.Size = new System.Drawing.Size(216, 34);
this.ButtonRef.Size = new System.Drawing.Size(173, 27);
this.ButtonRef.TabIndex = 6;
this.ButtonRef.Text = "Обновить список";
this.ButtonRef.UseVisualStyleBackColor = true;
this.ButtonRef.Click += new System.EventHandler(this.ButtonRef_Click);
//
// клиентыToolStripMenuItem
//
this.клиентыToolStripMenuItem.Name = "клиентыToolStripMenuItem";
this.клиентыToolStripMenuItem.Size = new System.Drawing.Size(270, 34);
this.клиентыToolStripMenuItem.Text = "Клиенты";
this.клиентыToolStripMenuItem.Click += new System.EventHandler(this.клиентыToolStripMenuItem_Click);
//
// FormMain
//
this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F);
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1452, 577);
this.ClientSize = new System.Drawing.Size(1408, 462);
this.Controls.Add(this.ButtonRef);
this.Controls.Add(this.ButtonIssuedOrder);
this.Controls.Add(this.ButtonOrderReady);
@ -198,6 +205,7 @@
this.Controls.Add(this.dataGridView);
this.Controls.Add(this.menuStrip);
this.MainMenuStrip = this.menuStrip;
this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.Name = "FormMain";
this.Text = "Туристическая фирма";
this.Load += new System.EventHandler(this.FormMain_Load);

View File

@ -34,6 +34,7 @@ namespace TravelCompany
dataGridView.Columns["TravelId"].Visible = false;
dataGridView.Columns["ClientId"].Visible = false;
dataGridView.Columns["TravelName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dataGridView.Columns["ClientFIO"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
}
catch (Exception ex)

View File

@ -115,8 +115,7 @@ string.IsNullOrEmpty(password))
[HttpGet]
public IActionResult Create()
{
ViewBag.Products =
APIClient.GetRequest<List<TravelViewModel>>("api/main/getproductlist");
ViewBag.Travels = APIClient.GetRequest<List<TravelViewModel>>("api/main/gettravellist");
return View();
}
[HttpPost]
@ -144,7 +143,7 @@ string.IsNullOrEmpty(password))
public double Calc(int count, int travel)
{
var prod =
APIClient.GetRequest<TravelViewModel>($"api/main/getproduct?travelId={travel}"
APIClient.GetRequest<TravelViewModel>($"api/main/gettravel?travelId={travel}"
);
return count * (prod?.Price ?? 1);
}

View File

@ -1,51 +1,48 @@
@{
ViewData["Title"] = "Create";
ViewData["Title"] = "Create";
}
<div class="text-center">
<h2 class="display-4">Создание заказа</h2>
<h2 class="display-4">Создание заказа</h2>
</div>
<form method="post">
<div class="row">
<div class="col-4">Изделие:</div>
<div class="col-8">
<select id="product" name="product" class="form-control" aspitems="@(new SelectList(@ViewBag.Products,"Id", "ProductName"))"></select>
</div>
</div>
<div class="row">
<div class="col-4">Количество:</div>
<div class="col-8"><input type="text" name="count" id="count"
/></div>
</div>
<div class="row">
<div class="col-4">Сумма:</div>
<div class="col-8"><input type="text" id="sum" name="sum" readonly
/></div>
</div>
<div class="row">
<div class="col-8"></div>
<div class="col-4"><input type="submit" value="Создать" class="btn
btn-primary" /></div>
</div>
<div class="row">
<div class="col-4">Путешествие:</div>
<div class="col-8">
<select id="travel" name="travel" class="form-control" asp-items="@(new SelectList(@ViewBag.Travels,"Id", "TravelName"))"></select>
</div>
</div>
<div class="row">
<div class="col-4">Количество:</div>
<div class="col-8"><input type="text" name="count" id="count"/></div>
</div>
<div class="row">
<div class="col-4">Сумма:</div>
<div class="col-8"><input type="text" id="sum" name="sum" readonly/></div>
</div>
<div class="row">
<div class="col-8"></div>
<div class="col-4"><input type="submit" value="Создать" class="btn btn-primary" /></div>
</div>
</form>
<script>
$('#product').on('change', function () {
check();
});
$('#count').on('change', function () {
check();
});
function check() {
var count = $('#count').val();
var product = $('#product').val();
if (count && product) {
$.ajax({
method: "POST",
url: "/Home/Calc",
data: { count: count, product: product },
success: function (result) {
$("#sum").val(result);
}
});
};
}
$('#travel').on('change', function () {
check();
});
$('#count').on('change', function () {
check();
});
function check() {
var count = $('#count').val();
var travel = $('#travel').val();
if (count && travel) {
$.ajax({
method: "POST",
url: "/Home/Calc",
data: { count: count, travel: travel },
success: function (result) {
$("#sum").val(result);
}
});
};
}
</script>

View File

@ -23,15 +23,16 @@ namespace TravelCompanyDatabaseImplement.Implements
}
public List<OrderViewModel> GetFilteredList(OrderSearchModel model)
{
if (!model.Id.HasValue && !model.DateFrom.HasValue && !model.DateTo.HasValue)
if (!model.ClientId.HasValue && !model.DateFrom.HasValue && !model.DateTo.HasValue)
{
return new();
}
if (!model.DateFrom.HasValue || !model.DateTo.HasValue)
if (model.DateFrom.HasValue && model.DateTo.HasValue)
{
using var context = new TravelCompanyDatabase();
return context.Orders.Include(x => x.Client)
.Where(x => x.Id == model.Id)
.Where(x => x.DateCreate >= model.DateFrom && x.DateCreate <= model.DateTo)
.Select(x => AccessTravelStorage(x.GetViewModel, context))
.ToList();
}
@ -47,7 +48,7 @@ namespace TravelCompanyDatabaseImplement.Implements
{
using var context = new TravelCompanyDatabase();
return context.Orders.Include(x => x.Client)
.Where(x => x.DateCreate >= model.DateFrom && x.DateCreate<=model.DateTo)
.Where(x => x.Id == model.Id)
.Select(x => AccessTravelStorage(x.GetViewModel, context))
.ToList();
}
@ -59,6 +60,7 @@ namespace TravelCompanyDatabaseImplement.Implements
{
return new();
}
using var context = new TravelCompanyDatabase();
return AccessTravelStorage(context.Orders.Include(x => x.Client)
.FirstOrDefault(x => model.Id.HasValue && x.Id == model.Id)

View File

@ -50,7 +50,6 @@ namespace TravelCompanyDatabaseImplement.Implements
using var context = new TravelCompanyDatabase();
return context.Travels
.Include(x => x.Conditions)
.ThenInclude(x => x.Condition)
.FirstOrDefault(x => (!string.IsNullOrEmpty(model.TravelName) && x.TravelName == model.TravelName) ||
(model.Id.HasValue && x.Id == model.Id))
?.GetViewModel;

View File

@ -34,20 +34,19 @@ namespace AbstractShopRestApi.Controllers
}
}
[HttpGet]
public TravelViewModel? GetTravel(int productId)
public TravelViewModel? GetTravel(int travelId)
{
try
{
return _product.ReadElement(new TravelSearchModel
{
Id =
productId
Id = travelId
});
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения продукта по id={Id}",
productId);
travelId);
throw;
}
}