Church.Net.API/Church.Net.WebAPI/Controllers/PastoralDomainController.cs
2024-05-02 15:24:13 -07:00

83 lines
2.5 KiB
C#

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<PastoralDomain>
{
private readonly PastoralDomainLogic logic;
public PastoralDomainController(PastoralDomainLogic logic) : base(logic)
{
this.logic = logic;
}
[HttpGet]
public Task<IEnumerable<PastoralDomain>> GetCurrentUserPastoralDomain()
{
return Task.Run(() =>
{
return logic.GetCurrentUserPastoralDomain();
});
}
}
[Route("[controller]/[action]")]
[ApiController]
[Authorize]
public class DomainMemberShipController : CombinedKeyApiControllerBase<PastoralDomainMembers>
{
public DomainMemberShipController(ICombinedKeyCrudLogic<PastoralDomainMembers> logic) : base(logic)
{
}
[HttpPost]
public int AssignCellGroups(IEnumerable<PastoralDomainMembers> 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;
}
}
}