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.Appendix; using GreenTree.Nachtragsmanagement.Core.Domain.Invoice; namespace GreenTree.Nachtragsmanagement.Services.Appendix { public class AppendixService : IAppendixService { #region Fields private readonly IRepository _appendixRepository; private readonly IRepository _categoryRepository; private readonly IRepository _invoiceRepository; private readonly IRepository _stateRepository; #endregion #region Ctor /// /// Initializes a new instance of the AppendixService class /// public AppendixService( IRepository appendixRepository, IRepository categoryRepository, IRepository invoiceRepository, IRepository stateRepository) { _appendixRepository = appendixRepository; _categoryRepository = categoryRepository; _invoiceRepository = invoiceRepository; _stateRepository = stateRepository; } #endregion #region Appendix /// /// Gets all appendices /// public IList GetAllAppendices() { return _appendixRepository.Table.ToList(); } /// /// Gets a appendix by specified Id /// /// Appendix identifier. public Core.Domain.Appendix.Appendix GetAppendixById(int id) { return _appendixRepository.GetById(id); } /// /// Gets all appendices to the specified ids /// public IList GetAppendicesByIds(int[] ids) { return _appendixRepository.Table .Where(u => ids.Contains(u.Id)) .ToList(); } /// /// Gets a appendix by specified custom number /// /// Customer number. public Core.Domain.Appendix.Appendix GetAppendixByCustomNumber(string customNumber) { return _appendixRepository .Table.FirstOrDefault(u => u.CustomNumber == customNumber); } /// /// Insert a appendix /// /// Appendix. public void InsertAppendix(Core.Domain.Appendix.Appendix appendix) { _appendixRepository.Insert(appendix); } /// /// Update a appendix /// /// Appendix. public void UpdateAppendix(Core.Domain.Appendix.Appendix appendix) { _appendixRepository.Update(appendix); } /// /// Delete a appendix /// /// Appendix. public void DeleteAppendix(Core.Domain.Appendix.Appendix appendix) { _appendixRepository.Delete(appendix); } #endregion #region Category /// /// Gets all categories /// public IList GetAllCategories() { return _categoryRepository.Table.ToList(); } /// /// Gets a category by specified Id /// /// Category identifier. public Category GetCategoryById(int id) { return _categoryRepository.GetById(id); } /// /// Gets all categories to the specified ids /// public IList GetCategoriesByIds(int[] ids) { return _categoryRepository.Table .Where(r => ids.Contains(r.Id)) .ToList(); } /// /// Insert a appendix /// /// Category. public void InsertCategory(Category category) { _categoryRepository.Insert(category); } /// /// Update a category /// /// Category. public void UpdateCategory(Category category) { _categoryRepository.Update(category); } /// /// Delete a category /// /// Category. public void DeleteCategory(Category category) { _categoryRepository.Delete(category); } #endregion #region Invoice /// /// Gets all invoices /// public IList GetAllInvoices() { return _invoiceRepository.Table.ToList(); } /// /// Gets a invoice by specified Id /// /// Invoice identifier. public Invoice GetInvoiceById(int id) { return _invoiceRepository.GetById(id); } /// /// Gets all invoices to the specified ids /// public IList GetInvoicesByIds(int[] ids) { return _invoiceRepository.Table .Where(r => ids.Contains(r.Id)) .ToList(); } /// /// Insert a appendix /// /// Invoice. public void InsertInvoice(Invoice invoice) { _invoiceRepository.Insert(invoice); } /// /// Update a invoice /// /// Invoice. public void UpdateInvoice(Invoice invoice) { _invoiceRepository.Update(invoice); } /// /// Delete a invoice /// /// Invoice. public void DeleteInvoice(Invoice invoice) { _invoiceRepository.Delete(invoice); } #endregion #region State /// /// Gets all states /// public IList GetAllStates() { return _stateRepository.Table.ToList(); } /// /// Gets a state by specified Id /// /// State identifier. public State GetStateById(int id) { return _stateRepository.GetById(id); } /// /// Gets all states to the specified ids /// public IList GetStatesByIds(int[] ids) { return _stateRepository.Table .Where(r => ids.Contains(r.Id)) .ToList(); } /// /// Gets all appendices to the specified with the specified status id /// /// State identifier. public IList GetAppendicesByState(int id) { return _appendixRepository.Table .Where(d => d.StateId == id) .ToList(); } /// /// Gets the state which is defaultly selected /// public State GetDefaultState() { return _stateRepository.Table .FirstOrDefault(s => s.IsDefault); } /// /// Insert a appendix /// /// State. public void InsertState(State state) { _stateRepository.Insert(state); } /// /// Update a state /// /// State. public void UpdateState(State state) { _stateRepository.Update(state); } /// /// Delete a state /// /// State. public void DeleteState(State state) { _stateRepository.Delete(state); } #endregion } }