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 eventCrudDAL; private readonly ICombinedKeyCrudDAL attendeeCrudDAL; private readonly ICrudDAL memberCrudDAL; public CellGroupLogic( IServiceScopeFactory serviceScopeFactory, ICrudDAL eventCrudDAL, ICombinedKeyCrudDAL attendeeCrudDAL, ICrudDAL 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() }; 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; } } }