Добавлено поле в сущность "Магазин"

This commit is contained in:
Данияр Аглиуллов 2023-02-15 05:47:23 +04:00
parent 1d77f16d44
commit 771985a191
7 changed files with 30 additions and 6 deletions

View File

@ -133,6 +133,12 @@ namespace ConfectioneryBusinessLogic
} }
_logger.LogInformation("AddPastryInShop find. Id:{Id}", element.Id); _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)) if (element.Pastries.TryGetValue(pastry.Id, out var pair))
{ {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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