Agliullov D. A. Lab Work 2 Hard #5

Closed
d.agliullov wants to merge 26 commits from Lab2_Hard into Lab1_Hard
7 changed files with 30 additions and 6 deletions
Showing only changes of commit 771985a191 - Show all commits

View File

@ -133,6 +133,12 @@ namespace ConfectioneryBusinessLogic
}
_logger.LogInformation("AddPastryInShop find. Id:{Id}", element.Id);
if (element.MaxCountPastries < 0)
{
throw new ArgumentException(
"Максимальное количество изделий в магазине не должно быть отрицательным",
nameof(element.MaxCountPastries));
}
if (element.Pastries.TryGetValue(pastry.Id, out var pair))
{

View File

@ -1,7 +1,6 @@
using ConfectioneryContracts.BindingModels;
using ConfectioneryContracts.ViewModels;
using ConfectioneryDataModels.Models;
using ConfectioneryDataModels.Models;
using System.Xml.Linq;
namespace ConfectioneryFileImplement.Models

View File

@ -12,6 +12,8 @@ namespace ConfectioneryFileImplement
public string Address { get; private set; } = string.Empty;
public int MaxCountPastries { get; private set; }
public DateTime DateOpening { get; private set; }
public Dictionary<int, int> CountPastries { get; private set; } = new();
@ -46,6 +48,7 @@ namespace ConfectioneryFileImplement
Name = model.Name,
Address = model.Address,
DateOpening = model.DateOpening,
MaxCountPastries = model.MaxCountPastries,
CountPastries = new()
};
}
@ -57,11 +60,12 @@ namespace ConfectioneryFileImplement
}
return new()
{
Id = Convert.ToInt32(element.Attribute("Id")!.Value),
Name = element.Element("Name")!.Value,
Address = element.Element("Address")!.Value,
DateOpening = Convert.ToDateTime(element.Element("DateOpening")!.Value),
CountPastries = element.Element("CountPastries")!.Elements("CountPastry")
Id = Convert.ToInt32(element.Attribute("Id")!.Value),
Name = element.Element("Name")!.Value,
Address = element.Element("Address")!.Value,
DateOpening = Convert.ToDateTime(element.Element("DateOpening")!.Value),
MaxCountPastries = Convert.ToInt32(element.Element("MaxCountPastries")!.Value),
CountPastries = element.Element("CountPastries")!.Elements("CountPastry")
.ToDictionary(
x => Convert.ToInt32(x.Element("Key")?.Value),
x => Convert.ToInt32(x.Element("Value")?.Value)
@ -77,6 +81,7 @@ namespace ConfectioneryFileImplement
Name = model.Name;
Address = model.Address;
DateOpening = model.DateOpening;
MaxCountPastries = model.MaxCountPastries;
CountPastries = model.Pastries.ToDictionary(x => x.Key, x => x.Value.Item2);
_cachedPastries = null;
}
@ -87,12 +92,14 @@ namespace ConfectioneryFileImplement
Address = Address,
Pastries = Pastries,
DateOpening = DateOpening,
MaxCountPastries = MaxCountPastries,
};
public XElement GetXElement => new("Order",
new XAttribute("Id", Id),
new XElement("Name", Name),
new XElement("Address", Address),
new XElement("DateOpening", DateOpening),
new XElement("MaxCountPastries", MaxCountPastries),
new XElement("CountPastries", CountPastries
.Select(x => new XElement("CountPastry",
new XElement("Key", x.Key),

View File

@ -11,6 +11,8 @@ namespace ConfectioneryListImplement
public string Address { get; private set; } = string.Empty;
public int MaxCountPastries { get; private set; }
public DateTime DateOpening { get; private set; }
public Dictionary<int, (IPastryModel, int)> Pastries
@ -33,6 +35,7 @@ namespace ConfectioneryListImplement
Name = model.Name,
Address = model.Address,
DateOpening = model.DateOpening,
MaxCountPastries = model.MaxCountPastries,
Pastries = new()
};
}
@ -45,6 +48,7 @@ namespace ConfectioneryListImplement
Name = model.Name;
Address = model.Address;
DateOpening = model.DateOpening;
MaxCountPastries = model.MaxCountPastries;
Pastries = model.Pastries;
}
public ShopViewModel GetViewModel => new()
@ -54,6 +58,7 @@ namespace ConfectioneryListImplement
Address = Address,
Pastries = Pastries,
DateOpening = DateOpening,
MaxCountPastries = MaxCountPastries,
};
}
}

View File

@ -9,6 +9,8 @@ namespace ConfectioneryContracts.BindingModels
public string Address { get; set; } = string.Empty;
public int MaxCountPastries { get; set; }
public DateTime DateOpening { get; set; } = DateTime.Now;
public Dictionary<int, (IPastryModel, int)> Pastries

View File

@ -12,6 +12,9 @@ namespace ConfectioneryContracts.ViewModels
[DisplayName("Адрес магазина")]
public string Address { get; set; } = string.Empty;
[DisplayName("Максимальное количество изделий в магазине")]
public int MaxCountPastries { get; set; }
[DisplayName("Время открытия")]
public DateTime DateOpening { get; set; } = DateTime.Now;
@ -22,5 +25,6 @@ namespace ConfectioneryContracts.ViewModels
} = new();
public int Id { get; set; }
}
}

View File

@ -6,6 +6,7 @@ namespace ConfectioneryDataModels
{
string Name { get; }
string Address { get; }
int MaxCountPastries { get; }
DateTime DateOpening { get; }
Dictionary<int, (IPastryModel, int)> Pastries { get; }
}