using System; using System.Collections.Generic; using System.Linq; using Schaad.Accounting.Interfaces; using Schaad.Accounting.Models; namespace Schaad.Accounting.Repositories { public class SubclassRepository : BaseRepository, ISubclassRepository { private readonly Dictionary classes = new Dictionary(); private readonly string SUBCLASSES = "SubClasses.xml"; public SubclassRepository(ISettingsService settingsService) : base(settingsService) { EnsureFileExisits(SUBCLASSES); classes.Add(ClassIds.Activa, "Aktiven"); classes.Add(ClassIds.Passiva, "Passiven"); classes.Add(ClassIds.Income, "Einnahmen"); classes.Add(ClassIds.Expenses, "Ausgaben"); } /// /// Load bokking texts /// public List GetSubClassList() { var subclasses = Load>(SUBCLASSES); return subclasses ?? new List(); } /// /// Save a booking text (insert/update) /// public void SaveSubClass(SubClass subClass) { var subclasses = GetSubClassList(); var existingSubClass = subclasses.FirstOrDefault(a => a.Id == subClass.Id); if (existingSubClass == null) { existingSubClass = new SubClass(); subclasses.Add(existingSubClass); subClass.Id = Guid.NewGuid().ToString(); } subClass.Copy(existingSubClass); Save(subclasses, SUBCLASSES); } /// /// Get subclass /// public SubClass GetSubClass(string id) { var subclasses = GetSubClassList(); return subclasses.FirstOrDefault(t => t.Id == id); } public void DeleteSubClass(string id) { var subclasses = GetSubClassList(); subclasses.RemoveAll(t => t.Id == id); Save(subclasses, SUBCLASSES); } public Dictionary GetClasses() { return classes; } public string GetClass(int classId) { return classes[classId]; } } }