Files
ROLAC/API/ROLAC.API/Services/ChurchProfileService.cs
T
Chris Chen e88ea7917f
ci-cd-vm / ci-cd (push) Successful in 2m31s
add church profile.
2026-06-24 08:21:31 -07:00

47 lines
1.7 KiB
C#

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<ChurchProfileDto> GetAsync()
{
var p = await GetOrCreateAsync();
return new ChurchProfileDto
{
Id = p.Id, Name = p.Name, NameZh = p.NameZh, Phone = p.Phone, Email = p.Email,
Website = p.Website, 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.NameZh = r.NameZh; p.Phone = r.Phone; p.Email = r.Email;
p.Website = r.Website; 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<ChurchProfile> 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;
}
}