using SecuritySystemContracts.BindingModels; using SecuritySystemContracts.ViewModels; using SecuritySystemDataModels.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SecuritySystemListImplement.Models { //класс реализующий интерфейс модели изделия public class Secure : ISecureModel { //методы set делаем приватным, чтобы исключить неразрешённые манипуляции public int Id { get; private set; } public string SecureName { get; private set; } = string.Empty; public double Price { get; private set; } public Dictionary SecureSensors { get; private set; } = new Dictionary(); //метод для создания объекта от класса-компонента на основе класса-BindingModel public static Secure? Create(SecureBindingModel? model) { if (model == null) { return null; } return new Secure() { Id = model.Id, SecureName = model.SecureName, Price = model.Price, SecureSensors = model.SecureSensors }; } //метод изменения существующего объекта public void Update(SecureBindingModel? model) { if (model == null) { return; } SecureName = model.SecureName; Price = model.Price; SecureSensors = model.SecureSensors; } //метод для создания объекта класса ViewModel на основе данных объекта класса-компонента public SecureViewModel GetViewModel => new() { Id = Id, SecureName = SecureName, Price = Price, SecureSensors = SecureSensors }; } }