using System; using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.Logging; using Schaad.Accounting.Interfaces; using Schaad.Accounting.Models; namespace Schaad.Accounting.Repositories { public class SplitPredefinitionRepository : BaseRepository, ISplitPredefinitionRepository { private readonly string SPLIT_PREDEFINITION = "SplitPredefinitions.xml"; public SplitPredefinitionRepository(ISettingsService settingsService, RepositoryCache cache, ILogger logger) : base(settingsService, cache, logger) { EnsureFileExists(SPLIT_PREDEFINITION); } /// /// Load split predefinitions /// public List GetSplitPredefinitionList() => LoadList(SPLIT_PREDEFINITION); /// /// Save a split predefinition (insert/update) /// public void SaveSplitPredefinition(SplitPredefinition splitPredefinition) { var definitions = GetSplitPredefinitionList(); var idx = definitions.FindIndex(d => d.Id == splitPredefinition.Id); if (idx >= 0) { definitions[idx] = splitPredefinition; } else { splitPredefinition.Id = Guid.NewGuid().ToString(); definitions.Add(splitPredefinition); } Save(definitions, SPLIT_PREDEFINITION); } } }