using System; using System.Collections.Generic; using System.Security.AccessControl; using _0_Framework.Domain; using AccountManagement.Domain.AssignAgg; using AccountManagement.Domain.TaskMediaAgg; namespace AccountManagement.Domain.TaskAgg; public class Tasks : EntityBase { public Tasks(string title, DateTime endTaskDate, string? description, long senderId, string contractingPartyName) { Title = title; EndTaskDate = endTaskDate; Description = description; SenderId = senderId; ContractingPartyName = contractingPartyName; StartTaskDate = DateTime.Now; IsActiveString = "true"; } //عنوان وظیفه public string Title { get; private set; } //زمان پایان وظیفه public DateTime EndTaskDate { get; private set; } //زمان ارسال وظیفه public DateTime StartTaskDate { get; private set; } //توضیحات وظیفه public string? Description { get; private set; } //آیدی شخص ارسال کننده public long SenderId { get; private set; } //آیا درخواست مهلت کرده است؟ public bool TimeRequest { get; private set; } //تعداد تایید درخواست مهلت public int AcceptedTimeRequest { get; set; } //مهلت زمان درخواست شده public DateTime? RequestDate { get; private set; } //توضیحات درخواست مهلت public string? TimeRequestDescription { get; private set; } //آیا درخواست انصراف داده شده public bool IsCanceledRequest { get; private set; } //نام طرف حساب public string ContractingPartyName { get; 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 string IsActiveString { get; private set; } public List Assigns { get; set; } public List TaskMedias { get; set; } public long? TicketId { get; set; } public Tasks(string title, DateTime endTaskDate, string? description, long senderId, string contractingPartyName, long ticketId) { Title = title; EndTaskDate = endTaskDate; Description = description; SenderId = senderId; ContractingPartyName = contractingPartyName; StartTaskDate = DateTime.Now; IsActiveString = "true"; TicketId = ticketId; } public void Edit(string title, DateTime endTaskDate, string? description, long senderId, string contractingPartyName) { Title = title; EndTaskDate = endTaskDate; Description = description; SenderId = senderId; ContractingPartyName= contractingPartyName; } //برای ایجاد یک درخواست مهلت public void CreateTimeRequest(DateTime requestDate, string timeRequestDescription) { RequestDate = requestDate; TimeRequestDescription = timeRequestDescription; TimeRequest = true; } public void AcceptTimeRequest() { TimeRequest = false; AcceptedTimeRequest++; EndTaskDate = (DateTime)RequestDate; } 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 DeActive() { IsActiveString = "false"; } public void Activator() { IsActiveString = "true"; } public void ChangeTimeTask(DateTime time) { EndTaskDate = time; AcceptedTimeRequest++; RequestDate = null; TimeRequest = false; } }