AccountingNext/Schaad.Accounting.Db/Repositories/SubclassRepository.cs

77 lines
No EOL
2.3 KiB
C#

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<int, string> classes = new Dictionary<int, string>();
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");
}
/// <summary>
/// Load bokking texts
/// </summary>
public List<SubClass> GetSubClassList()
{
var subclasses = Load<List<SubClass>>(SUBCLASSES);
return subclasses ?? new List<SubClass>();
}
/// <summary>
/// Save a booking text (insert/update)
/// </summary>
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);
}
/// <summary>
/// Get subclass
/// </summary>
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<int, string> GetClasses()
{
return classes;
}
public string GetClass(int classId)
{
return classes[classId];
}
}
}