66 lines
2.3 KiB
C#
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;
|
|
}
|
|
|
|
}
|
|
}
|