using Microsoft.EntityFrameworkCore; using ROLAC.API.Data; using ROLAC.API.DTOs.Disbursement; using ROLAC.API.Entities; namespace ROLAC.API.Services; public class ChurchProfileService : IChurchProfileService { private readonly AppDbContext _db; public ChurchProfileService(AppDbContext db) => _db = db; public async Task GetAsync() { var p = await GetOrCreateAsync(); return new ChurchProfileDto { Id = p.Id, Name = p.Name, Address = p.Address, City = p.City, State = p.State, ZipCode = p.ZipCode, BankName = p.BankName, BankAccountNumber = p.BankAccountNumber, BankRoutingNumber = p.BankRoutingNumber, NextCheckNumber = p.NextCheckNumber, }; } public async Task UpdateAsync(UpdateChurchProfileRequest r) { var p = await GetOrCreateAsync(); p.Name = r.Name; p.Address = r.Address; p.City = r.City; p.State = r.State; p.ZipCode = r.ZipCode; p.BankName = r.BankName; p.BankAccountNumber = r.BankAccountNumber; p.BankRoutingNumber = r.BankRoutingNumber; p.NextCheckNumber = r.NextCheckNumber; await _db.SaveChangesAsync(); } private async Task GetOrCreateAsync() { var p = await _db.ChurchProfiles.OrderBy(x => x.Id).FirstOrDefaultAsync(); if (p is null) { p = new ChurchProfile { Name = "Church", NextCheckNumber = 1001 }; _db.ChurchProfiles.Add(p); await _db.SaveChangesAsync(); } return p; } }