Files
2024-08-24 19:13:34 +03:30

65 lines
2.3 KiB
C#

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<long,Assign>,IAssignRepository
{
private readonly AccountContext _accountContext;
public AssignRepository(AccountContext accountContext) : base(accountContext)
{
_accountContext = accountContext;
}
public List<AssignViewModel> 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<long> 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);
}
}