using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Church.Net.Entity; using WebAPI.Logics; using WebAPI.Logics.Interface; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace WebAPI.Controllers { [Route("[controller]/[action]")] [Authorize] [ApiController] public class PastoralDomainController : ApiControllerBase { private readonly PastoralDomainLogic logic; public PastoralDomainController(PastoralDomainLogic logic) : base(logic) { this.logic = logic; } [HttpGet] public Task> GetCurrentUserPastoralDomain() { return Task.Run(() => { return logic.GetCurrentUserPastoralDomain(); }); } } [Route("[controller]/[action]")] [ApiController] [Authorize] public class DomainMemberShipController : CombinedKeyApiControllerBase { public DomainMemberShipController(ICombinedKeyCrudLogic logic) : base(logic) { } [HttpPost] public int AssignCellGroups(IEnumerable relations) { logic.Delete(r => relations.Any(rr => (r.FamilyMemberId == rr.FamilyMemberId))); foreach (var relation in relations) { //logic.Delete(r => r.FamilyMemberId == relation.FamilyMemberId); logic.Create(relation); } return 1; } [HttpGet] public int AddMemberIntoGroup(string domainId, string memberId) { return logic.CreateOrUpdate(new PastoralDomainMembers() { PastoralDomainId = domainId, FamilyMemberId = memberId }); } [HttpGet] public int RemoveMemberFromGroup(string domainId, string memberId) { return logic.Delete(r => r.PastoralDomainId == domainId && r.FamilyMemberId == memberId); } [HttpPost] public int UpdateMembersInGroup(PastoralDomain domain) { logic.Delete(r => r.PastoralDomainId == domain.Id); foreach (var member in domain.FamilyMembers) { //logic.Delete(r => r.FamilyMemberId == relation.FamilyMemberId); logic.Create(new PastoralDomainMembers() { PastoralDomainId = domain.Id, FamilyMemberId = member.Id }); } return 1; } } }