using _0_Framework.Domain; using AccountManagement.Domain.TaskAgg; using System; using System.Collections.Generic; using AccountManagement.Domain.TaskMessageAgg; namespace AccountManagement.Domain.AssignAgg; public class Assign : EntityBase { public Assign(long taskId, long assignerId, long assignedId, int assignerPositionValue, string assignedName, int assignedPositionValue, DateTime endTaskDate, bool firstTimeCreation=false) { TaskId = taskId; AssignerId = assignerId; AssignedId = assignedId; AssignerPositionValue = assignerPositionValue; AssignedName = assignedName; AssignedPositionValue = assignedPositionValue; EndTaskDate = endTaskDate; FirstTimeCreation = firstTimeCreation; } //آیدی شخص ارسال کننده public long TaskId { get; private set; } //نام دریافت کننده public long AssignerId { get; private set; } //آیدی شخص دریافت کننده public string AssignedName { get; private set; } //سطح شخص ارسال کننده public long AssignedId { get; private set; } public int AssignerPositionValue { get; private set; } public int AssignedPositionValue { get; private set; } //زمان پایان وظیفه public DateTime EndTaskDate { get; private set; } //آیا درخواست مهلت کرده است؟ public bool TimeRequest { get; private set; } //تعداد تایید درخواست مهلت public int AcceptedTimeRequest { get; private set; } //مهلت زمان درخواست شده public DateTime? RequestDate { get; private set; } //توضیحات درخواست مهلت public string? TimeRequestDescription { get; private set; } //آیا درخواست انصراف داده شده //آیا کنسل شده است public bool IsCancel { get; private set; } //توضیحات درخواست انصراف public string? CancelDescription { get; private set; } public bool IsDone { get; private set; } public bool IsDoneRequest { get; private set; } public string? DoneDescription { get; private set; } public bool IsCanceledRequest { get; private set; } public bool FirstTimeCreation { get; private set; } public Tasks Task { get; set; } public List TaskMessageList { get; set; } public void EditTime(DateTime endTaskDate) { EndTaskDate = endTaskDate; } public void CreateTimeRequest(DateTime requestDate, string timeRequestDescription) { RequestDate = requestDate; TimeRequestDescription = timeRequestDescription; TimeRequest = true; } public void AcceptTimeRequest() { TimeRequest = false; AcceptedTimeRequest++; EndTaskDate = RequestDate < DateTime.Today ? DateTime.Today : RequestDate.Value; } public void RejectTimeRequest() { TimeRequest = false; TimeRequestDescription = null; RequestDate = null; } public void CreateCancelRequest(string cancelDescription) { CancelDescription = cancelDescription; IsCanceledRequest = true; } public void AcceptCancelRequest() { IsCanceledRequest = false; IsCancel = true; } public void RejectCancel() { CancelDescription = null; IsCanceledRequest = false; } public void CompleteRequest(string? doneDescription) { DoneDescription = doneDescription; IsDoneRequest = true; } public void RejectCompleteRequest() { IsDoneRequest = false; DoneDescription = null; } public void Completed() { IsDoneRequest = false; IsDone = true; } public void ChangeTimeTask(DateTime time) { EndTaskDate = time; AcceptedTimeRequest++; RequestDate = null; TimeRequest = false; } public void InsertNewData(DateTime endTaskDate,bool timeRequest,int acceptedTimeRequest,DateTime? requestDate, string timeRequestDescription, bool isCanceledRequest, bool isCancel,string cancelDescription,bool isDone,bool isDoneRequest,string? doneDescription) { EndTaskDate = endTaskDate; TimeRequest=timeRequest; AcceptedTimeRequest = acceptedTimeRequest; RequestDate = requestDate; TimeRequestDescription = timeRequestDescription; IsCanceledRequest = isCanceledRequest; IsCancel=isCancel; IsDone=isDone; CancelDescription=cancelDescription; IsDone=isDone; IsDoneRequest=isDoneRequest; DoneDescription=doneDescription; } }