using System; using System.Collections.Generic; using System.Linq; using Schaad.Accounting.Interfaces; using Schaad.Accounting.Models; namespace Schaad.Accounting.Repositories { public class BookingTextRepository : BaseRepository, IBookingTextRepository { private readonly string BOOKING_TEXTS = "BookingTexts.xml"; public BookingTextRepository(ISettingsService settingsService) : base(settingsService) { EnsureFileExisits(BOOKING_TEXTS); } /// /// Load bokking texts /// public List GetBookingTextList() { var bookingTexts = Load>(BOOKING_TEXTS); return bookingTexts ?? new List(); } /// /// Save a booking text (insert/update) /// public void SaveBookingText(BookingText bookingText) { var bookingTexts = GetBookingTextList(); var existingText = bookingTexts.FirstOrDefault(a => a.Id == bookingText.Id); if (existingText == null) { existingText = new BookingText(); bookingTexts.Add(existingText); bookingText.Id = Guid.NewGuid().ToString(); } bookingText.Copy(existingText); Save(bookingTexts, BOOKING_TEXTS); } /// /// Get booking text /// public BookingText GetBookingText(string id) { var bookingTexts = GetBookingTextList(); return bookingTexts.FirstOrDefault(t => t.Id == id); } /// /// Delete booking text /// public void DeleteBookingText(string id) { var bookingTexts = GetBookingTextList(); bookingTexts.RemoveAll(t => t.Id == id); Save(bookingTexts, BOOKING_TEXTS); } } }