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, RepositoryCache cache)
: base(settingsService, cache)
{
EnsureFileExists(BOOKING_TEXTS);
}
///
/// Load booking texts
///
public List GetBookingTextList() => LoadList(BOOKING_TEXTS);
///
/// 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);
}
}
}