Church.Net.API/WebAPI/Logics/CellGroupLogic.cs
2022-09-30 09:40:42 -07:00

66 lines
2.3 KiB
C#

using Church.Net.DAL.EFCoreDBF;
using Church.Net.Entity;
using Church.Net.Utility;
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System;
using WebAPI.Logics.Core;
using WebAPI.Logics.Interface;
using System.Linq;
using Microsoft.Extensions.DependencyInjection;
namespace WebAPI.Logics
{
public class CellGroupLogic
{
private readonly IServiceScopeFactory serviceScopeFactory;
private readonly ICrudDAL<CellGroupRoutineEvent> eventCrudDAL;
private readonly ICombinedKeyCrudDAL<CellGroupRoutineEventAttendee> attendeeCrudDAL;
private readonly ICrudDAL<FamilyMember> memberCrudDAL;
public CellGroupLogic(
IServiceScopeFactory serviceScopeFactory,
ICrudDAL<CellGroupRoutineEvent> eventCrudDAL,
ICombinedKeyCrudDAL<CellGroupRoutineEventAttendee> attendeeCrudDAL,
ICrudDAL<FamilyMember> memberCrudDAL
)
{
this.serviceScopeFactory = serviceScopeFactory;
this.eventCrudDAL = eventCrudDAL;
this.attendeeCrudDAL = attendeeCrudDAL;
this.memberCrudDAL = memberCrudDAL;
}
public CellGroupRoutineEvent GetComingEvent()
{
var _event = eventCrudDAL.GetDbSet().Where(e => e.Time >= DateTime.UtcNow)
.Include(e => e.Attendees).Include(e => e.Prayers).FirstOrDefault();
if (_event == null)
{
_event = new CellGroupRoutineEvent()
{
Id = Format.Get33BaseGuid(),
Time = DateTimeHelper.GetNextWeekday(DateTime.Today, DayOfWeek.Friday).AddHours(19).AddMinutes(30),
Address = "1881 Forest Dr., Azusa, CA 91702",
Attendees = new List<CellGroupRoutineEventAttendee>()
};
eventCrudDAL.Create(_event);
}
return _event;
}
public CellGroupRoutineEvent GetLastEvent()
{
var _event = eventCrudDAL.GetDbSet().OrderByDescending(e=>e.Time)
.Include(e => e.Attendees).Include(e => e.Prayers).FirstOrDefault();
return _event;
}
public string GetMemberFirstNameById(string memberId)
{
return memberCrudDAL.GetById(memberId)?.FirstName;
}
}
}