using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using GreenTree.Nachtragsmanagement.Core.Data; using GreenTree.Nachtragsmanagement.Core.Domain.Deviation; namespace GreenTree.Nachtragsmanagement.Services.Deviation { public class DeviationService : IDeviationService { #region Fields private readonly IRepository _deviationRepository; private readonly IRepository _disturbanceRepository; private readonly IRepository _kindRepository; private readonly IRepository _statusRepository; #endregion #region Ctor /// /// Initializes a new instance of the DeviationService class /// public DeviationService( IRepository deviationRepository, IRepository disturbanceRepository, IRepository kindRepository, IRepository statusRepository) { _deviationRepository = deviationRepository; _disturbanceRepository = disturbanceRepository; _kindRepository = kindRepository; _statusRepository = statusRepository; } #endregion #region Deviation /// /// Gets all deviations /// public IList GetAllDeviations() { return _deviationRepository.Table.ToList(); } /// /// Gets a deviation by specified Id /// /// Deviation identifier. public Core.Domain.Deviation.Deviation GetDeviationById(int id) { return _deviationRepository.GetById(id); } /// /// Gets all deviations to the specified ids /// public IList GetDeviationsByIds(int[] ids) { return _deviationRepository.Table .Where(u => ids.Contains(u.Id)) .ToList(); } /// /// Gets a deviation by specified custom number /// /// Customer number. public Core.Domain.Deviation.Deviation GetDeviationByCustomNumber(string customNumber) { return _deviationRepository .Table.FirstOrDefault(u => u.CustomNumber == customNumber); } /// /// Insert a deviation /// /// Deviation. public void InsertDeviation(Core.Domain.Deviation.Deviation deviation) { _deviationRepository.Insert(deviation); } /// /// Update a deviation /// /// Deviation. public void UpdateDeviation(Core.Domain.Deviation.Deviation deviation) { _deviationRepository.Update(deviation); } /// /// Delete a deviation /// /// Deviation. public void DeleteDeviation(Core.Domain.Deviation.Deviation deviation) { _deviationRepository.Delete(deviation); } #endregion #region Disturbance /// /// Gets all disturbances /// public IList GetAllDisturbances() { return _disturbanceRepository.Table.ToList(); } /// /// Gets a disturbance by specified Id /// /// Disturbance identifier. public Disturbance GetDisturbanceById(int id) { return _disturbanceRepository.GetById(id); } /// /// Gets all disturbances to the specified ids /// public IList GetDisturbancesByIds(int[] ids) { return _disturbanceRepository.Table .Where(r => ids.Contains(r.Id)) .ToList(); } /// /// Insert a deviation /// /// Disturbance. public void InsertDisturbance(Disturbance disturbance) { _disturbanceRepository.Insert(disturbance); } /// /// Update a disturbance /// /// Disturbance. public void UpdateDisturbance(Disturbance disturbance) { _disturbanceRepository.Update(disturbance); } /// /// Delete a disturbance /// /// Disturbance. public void DeleteDisturbance(Disturbance disturbance) { _disturbanceRepository.Delete(disturbance); } #endregion #region Kind /// /// Gets all kinds /// public IList GetAllKinds() { return _kindRepository.Table.ToList(); } /// /// Gets a kind by specified Id /// /// Kind identifier. public Kind GetKindById(int id) { return _kindRepository.GetById(id); } /// /// Gets all kinds to the specified ids /// public IList GetKindsByIds(int[] ids) { return _kindRepository.Table .Where(r => ids.Contains(r.Id)) .ToList(); } /// /// Insert a kind /// /// Kind. public void InsertKind(Kind kind) { _kindRepository.Insert(kind); } /// /// Update a kind /// /// Kind. public void UpdateKind(Kind kind) { _kindRepository.Update(kind); } /// /// Delete a kind /// /// Kind. public void DeleteKind(Kind kind) { _kindRepository.Delete(kind); } #endregion #region Status /// /// Gets all statuses /// public IList GetAllStatuses() { return _statusRepository.Table.ToList(); } /// /// Gets a status by specified Id /// /// Status identifier. public Status GetStatusById(int id) { return _statusRepository.GetById(id); } /// /// Gets all statuses to the specified ids /// public IList GetStatusesByIds(int[] ids) { return _statusRepository.Table .Where(r => ids.Contains(r.Id)) .ToList(); } /// /// Insert a status /// /// Status. public void InsertStatus(Status status) { _statusRepository.Insert(status); } /// /// Update a status /// /// Status. public void UpdateStatus(Status status) { _statusRepository.Update(status); } /// /// Delete a status /// /// Status. public void DeleteStatus(Status status) { _statusRepository.Delete(status); } #endregion } }