Внедрено максимальное количество изделий в сущность Магазин

This commit is contained in:
Данияр Аглиуллов 2023-02-18 17:15:00 +04:00
parent cf2fd40f87
commit 23be423760
4 changed files with 65 additions and 21 deletions

View File

@ -101,6 +101,13 @@ namespace ConfectioneryBusinessLogic
throw new ArgumentNullException("Нет названия магазина",
nameof(model.Name));
}
if (model.MaxCountPastries < 0)
{
throw new ArgumentException(
"Максимальное количество изделий в магазине не должно быть отрицательным",
nameof(model.MaxCountPastries));
}
_logger.LogInformation("Shop. ShopName:{0}.Address:{1}. Id: {2}",
model.Name, model.Address, model.Id);
var element = _shopStorage.GetElement(new ShopSearchModel
@ -133,27 +140,24 @@ namespace ConfectioneryBusinessLogic
}
_logger.LogInformation("AddPastryInShop find. Id:{Id}", element.Id);
if (element.MaxCountPastries < 0)
var currentCountPasties = element.Pastries.Select(x => x.Value.Item2).Sum();
if (currentCountPasties + count > element.MaxCountPastries)
{
throw new ArgumentException(
"Максимальное количество изделий в магазине не должно быть отрицательным",
nameof(element.MaxCountPastries));
_logger.LogWarning("AddPastryInShop. The number of pastry {count} exceeds maximum {max}",
currentCountPasties + count, element.MaxCountPastries);
return false;
}
if (element.Pastries.TryGetValue(pastry.Id, out var pair))
{
element.Pastries[pastry.Id] = (pastry, count + pair.Item2);
_logger.LogInformation(
"AddPastryInShop. Has been added {count} {pastry} in {ShopName}",
count, pastry.PastryName, element.Name);
}
else
{
element.Pastries[pastry.Id] = (pastry, count);
_logger.LogInformation(
"AddPastryInShop. Has been added {count} new Pastry {pastry} in {ShopName}",
count, pastry.PastryName, element.Name);
}
_logger.LogInformation(
"AddPastryInShop. Has been added {count} {pastry} in {ShopName}",
count, pastry.PastryName, element.Name);
_shopStorage.Update(new()
{
Id = element.Id,

View File

@ -40,7 +40,10 @@
this.textBoxDateOpening = new System.Windows.Forms.TextBox();
this.buttonCancel = new System.Windows.Forms.Button();
this.buttonSave = new System.Windows.Forms.Button();
this.label4 = new System.Windows.Forms.Label();
this.numericUpDownMaxPastry = new System.Windows.Forms.NumericUpDown();
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxPastry)).BeginInit();
this.SuspendLayout();
//
// label1
@ -74,7 +77,7 @@
this.dataGridView.Location = new System.Drawing.Point(12, 64);
this.dataGridView.Name = "dataGridView";
this.dataGridView.RowTemplate.Height = 25;
this.dataGridView.Size = new System.Drawing.Size(583, 213);
this.dataGridView.Size = new System.Drawing.Size(640, 213);
this.dataGridView.TabIndex = 2;
//
// PastryName
@ -105,7 +108,7 @@
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(386, 9);
this.label3.Location = new System.Drawing.Point(366, 9);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(100, 15);
this.label3.TabIndex = 4;
@ -115,20 +118,20 @@
//
this.textBoxAddress.Location = new System.Drawing.Point(159, 27);
this.textBoxAddress.Name = "textBoxAddress";
this.textBoxAddress.Size = new System.Drawing.Size(221, 23);
this.textBoxAddress.Size = new System.Drawing.Size(201, 23);
this.textBoxAddress.TabIndex = 5;
//
// textBoxDateOpening
//
this.textBoxDateOpening.Location = new System.Drawing.Point(386, 27);
this.textBoxDateOpening.Location = new System.Drawing.Point(366, 27);
this.textBoxDateOpening.Name = "textBoxDateOpening";
this.textBoxDateOpening.Size = new System.Drawing.Size(209, 23);
this.textBoxDateOpening.Size = new System.Drawing.Size(160, 23);
this.textBoxDateOpening.TabIndex = 6;
//
// buttonCancel
//
this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonCancel.Location = new System.Drawing.Point(492, 283);
this.buttonCancel.Location = new System.Drawing.Point(549, 283);
this.buttonCancel.Name = "buttonCancel";
this.buttonCancel.Size = new System.Drawing.Size(103, 23);
this.buttonCancel.TabIndex = 7;
@ -139,7 +142,7 @@
// buttonSave
//
this.buttonSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonSave.Location = new System.Drawing.Point(366, 284);
this.buttonSave.Location = new System.Drawing.Point(423, 284);
this.buttonSave.Name = "buttonSave";
this.buttonSave.Size = new System.Drawing.Size(120, 22);
this.buttonSave.TabIndex = 8;
@ -147,11 +150,34 @@
this.buttonSave.UseVisualStyleBackColor = true;
this.buttonSave.Click += new System.EventHandler(this.ButtonSave_Click);
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(530, 9);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(118, 15);
this.label4.TabIndex = 9;
this.label4.Text = "Максимум изделий:";
//
// numericUpDownMaxPastry
//
this.numericUpDownMaxPastry.Location = new System.Drawing.Point(532, 27);
this.numericUpDownMaxPastry.Maximum = new decimal(new int[] {
10000000,
0,
0,
0});
this.numericUpDownMaxPastry.Name = "numericUpDownMaxPastry";
this.numericUpDownMaxPastry.Size = new System.Drawing.Size(120, 23);
this.numericUpDownMaxPastry.TabIndex = 10;
//
// FormShop
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(607, 317);
this.ClientSize = new System.Drawing.Size(664, 317);
this.Controls.Add(this.numericUpDownMaxPastry);
this.Controls.Add(this.label4);
this.Controls.Add(this.buttonSave);
this.Controls.Add(this.buttonCancel);
this.Controls.Add(this.textBoxDateOpening);
@ -165,6 +191,7 @@
this.Text = "Просмотр изделий магазина";
this.Load += new System.EventHandler(this.FormShop_Load);
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numericUpDownMaxPastry)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@ -184,5 +211,7 @@
private DataGridViewTextBoxColumn PastryName;
private DataGridViewTextBoxColumn Price;
private DataGridViewTextBoxColumn Count;
private Label label4;
private NumericUpDown numericUpDownMaxPastry;
}
}

View File

@ -66,7 +66,8 @@ namespace ConfectioneryView
{
var model = GetShop(extendDate ? Id : Convert.ToInt32(comboBoxShop.SelectedValue));
if (model != null)
{
{
numericUpDownMaxPastry.Value = model.MaxCountPastries;
comboBoxShop.Text = model.Name;
textBoxAddress.Text = model.Address;
textBoxDateOpening.Text = Convert.ToString(model.DateOpening);
@ -113,7 +114,8 @@ namespace ConfectioneryView
{
Name = comboBoxShop.Text,
Address = textBoxAddress.Text,
DateOpening = dateTime
DateOpening = dateTime,
MaxCountPastries = (int)numericUpDownMaxPastry.Value,
};
var vmodel = GetShop(Id);
bool operationResult = false;

View File

@ -66,4 +66,13 @@
<metadata name="Count.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="PastryName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Price.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Count.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>