using System.Collections.Generic; using System.Linq; using _0_Framework.InfraStructure; using AccountManagement.Application.Contracts.Assign; using AccountManagement.Domain.AssignAgg; using AccountMangement.Infrastructure.EFCore; using Microsoft.EntityFrameworkCore; namespace AccountMangement.Infrastructure.EFCore.Repository; public class AssignRepository :RepositoryBase,IAssignRepository { private readonly AccountContext _accountContext; public AssignRepository(AccountContext accountContext) : base(accountContext) { _accountContext = accountContext; } public List GetAssignsByTaskId(long id) { return _accountContext.Assigns.Where(x=>x.TaskId==id).Select(x => new AssignViewModel() { AssignedId = x.AssignedId, AssignerId = x.AssignerId, AssignerPositionValue = x.AssignerPositionValue, Id = x.id, TaskId = x.TaskId, AssignedName = x.AssignedName, TimeRequest = x.TimeRequest, IsCancel = x.IsCancel, EndTaskDateGr = x.EndTaskDate, IsDone = x.IsDone, IsDoneRequest = x.IsDoneRequest, IsCanceledRequest = x.IsCanceledRequest, AcceptedTimeRequest = x.AcceptedTimeRequest, RequestDate = x.RequestDate, AssignedPositionValue = x.AssignedPositionValue, CancelDescription = x.CancelDescription, DoneDescription = x.DoneDescription, TimeRequestDescription = x.TimeRequestDescription, }).ToList(); } public void RemoveRangeAssigns( long taskId) { var assigns= _accountContext.Assigns.Where(x => x.TaskId == taskId); _accountContext.RemoveRange(assigns); _accountContext.SaveChanges(); } public List GetAssignedIdsByTaskId(long taskId) { return _accountContext.Assigns.Where(x => x.TaskId == taskId).Select(x => x.AssignedId).ToList(); } public Assign GetAssignByAssignedIdAndTaskId(long assignedId, long taskId) { return _accountContext.Assigns.Include(x=>x.Task).FirstOrDefault(x => x.TaskId == taskId && x.AssignedId == assignedId); } public Assign GetIncludeTask(long id) { return _accountContext.Assigns.Include(x=>x.Task).FirstOrDefault(x => x.id == id); } }