65 lines
2.3 KiB
C#
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);
|
|
}
|
|
} |