using MotorPlantContracts.BindingModels; using MotorPlantContracts.SearchModels; using MotorPlantContracts.StoragesContracts; using MotorPlantContracts.VeiwModels; using MotorPlantListImplement.Models; namespace MotorPlantListImplement { public class Motortorage : IMotorStorage { private readonly DataListSingleton _source; public Motortorage() { _source = DataListSingleton.GetInstance(); } public List GetFullList() { var result = new List(); foreach (var Motor in _source.Motor) { result.Add(Motor.GetViewModel); } return result; } public List GetFilteredList(MotorSearchModel model) { var result = new List(); if (string.IsNullOrEmpty(model.MotorName)) { return result; } foreach (var Motor in _source.Motor) { if (Motor.MotorName.Contains(model.MotorName)) { result.Add(Motor.GetViewModel); } } return result; } public MotorViewModel? GetElement(MotorSearchModel model) { if (string.IsNullOrEmpty(model.MotorName) && !model.Id.HasValue) { return null; } foreach (var Motor in _source.Motor) { if ((!string.IsNullOrEmpty(model.MotorName) && Motor.MotorName == model.MotorName) || (model.Id.HasValue && Motor.Id == model.Id)) { return Motor.GetViewModel; } } return null; } public MotorViewModel? Insert(MotorBindingModel model) { model.Id = 1; foreach (var Motor in _source.Motor) { if (model.Id <= Motor.Id) { model.Id = Motor.Id + 1; } } var newMotor = Motor.Create(model); if (newMotor == null) { return null; } _source.Motor.Add(newMotor); return newMotor.GetViewModel; } public MotorViewModel? Update(MotorBindingModel model) { foreach (var Motor in _source.Motor) { if (Motor.Id == model.Id) { Motor.Update(model); return Motor.GetViewModel; } } return null; } public MotorViewModel? Delete(MotorBindingModel model) { for (int i = 0; i < _source.Motor.Count; ++i) { if (_source.Motor[i].Id == model.Id) { var element = _source.Motor[i]; _source.Motor.RemoveAt(i); return element.GetViewModel; } } return null; } } }