TeamWork Task And ticket uploud

This commit is contained in:
SamSys
2024-08-24 19:13:34 +03:30
parent eaea8e6de3
commit ed95fbd8d4
332 changed files with 83402 additions and 59336 deletions

View File

@@ -27,7 +27,7 @@ namespace AccountManagement.Domain.AccountAgg
public string IsActiveString { get; private set; }
#region Mahan
public string PositionIsActive { get; private set; }
public long? PositionId { get; private set; }
public Position Position { get; private set; }
@@ -128,13 +128,19 @@ namespace AccountManagement.Domain.AccountAgg
public void SetPosition(long positionId)
{
PositionId = positionId;
PositionIsActive = "true";
}
public void DeletePositionId()
public void DeActivePosition()
{
PositionIsActive = "false";
}
public void RemovePosition()
{
PositionId = null;
PositionIsActive = null;
}
#endregion
}
}

View File

@@ -9,6 +9,7 @@ namespace AccountManagement.Domain.AccountAgg
{
Account GetBy(string username);
Account GetById(long id);
EditAccount GetDetails(long id);
EditAccount GetByVerifyCode(string code, string phone);
EditAccount GetByUserNameAndId(long id, string username);
@@ -17,15 +18,15 @@ namespace AccountManagement.Domain.AccountAgg
List<AccountViewModel> GetClientsAccount();
List<AccountViewModel> Search(AccountSearchModel searchModel);
Task RemoveCode(long id);
#region Mahan
Account GetIncludePositions(long id);
List<AccountViewModel> GetAccountsByPositionId(long positionId);
List<AccountViewModel> AccountsForAssign(long taskId);
List<Account> GetAccountsByIds(List<long> ids);
List<AccountViewModel> GetAccountLowerPositionvalue();
AccountViewModel GetAccountViewModel(long id);
List<AccountViewModel> GetAccountsDeactivePositionValue(long Positionid);
#endregion
}

View File

@@ -7,16 +7,31 @@ namespace AccountManagement.Domain.AdminResponseAgg;
public class AdminResponse:EntityBase
{
public AdminResponse(string response,long ticketId)
public AdminResponse(string response,long ticketId, long adminAccountId)
{
Response = response;
TicketId = ticketId;
AdminAccountId = adminAccountId;
IsActiveString = "false";
}
public long TicketId { get; private set; }
public long AdminAccountId { get; private set; }
public string Response { get; private set; }
public string IsActiveString { get; private set; }
public Ticket Ticket { get; set; }
public List<AdminResponseMedia> AdminResponseMedias { get; set; }
public void Active()
{
IsActiveString = "true";
}
public void Edit(string response)
{
Response=response;
}
}

View File

@@ -1,11 +1,14 @@
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)
public Assign(long taskId, long assignerId, long assignedId, int assignerPositionValue, string assignedName, int assignedPositionValue, DateTime endTaskDate)
{
TaskId = taskId;
AssignerId = assignerId;
@@ -13,21 +16,129 @@ public class Assign : EntityBase
AssignerPositionValue = assignerPositionValue;
AssignedName = assignedName;
AssignedPositionValue = assignedPositionValue;
EndTaskDate = endTaskDate;
}
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 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 Tasks Task { 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 bool IsCanceledRequest { get; private set; }
public Tasks Task { get; set; }
public List<TaskMessage> 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.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;
}
}

View File

@@ -1,13 +1,17 @@
using System.Collections.Generic;
using _0_Framework.Domain;
using AccountManagement.Application.Contracts.Assign;
using Microsoft.VisualBasic.CompilerServices;
namespace AccountManagement.Domain.AssignAgg;
public interface IAssignRepository:IRepository<long,Assign>
public interface IAssignRepository : IRepository<long, Assign>
{
List<AssignViewModel> GetAssignsByTaskId(long id);
void RemoveRangeAssigns(long taskId);
List<AssignViewModel> GetAssignsByTaskId(long id);
void RemoveRangeAssigns(long taskId);
List<long> GetAssignedIdsByTaskId(long taskId);
Assign GetAssignByAssignedIdAndTaskId(long assignedId, long taskId);
Assign GetIncludeTask(long id);
}

View File

@@ -14,7 +14,7 @@ public interface IPositionRepository : IRepository<long, Position>
List<int> GetUnUsedPositionValues();
List<AccountViewModel> GetNoPositionAccounts();
List<Account> GetAccountsByIds(List<long> ids);
List<Account> GetAccountsByPositionIds(List<long> ids);
void Remove(long id);

View File

@@ -1,25 +1,38 @@
using System;
using System.Collections.Generic;
using _0_Framework.Application;
using _0_Framework.Domain;
using AccountManagement.Application.Contracts.Task;
using AccountManagement.Application.Contracts.TaskMessage;
namespace AccountManagement.Domain.TaskAgg;
public interface ITaskRepository:IRepository<long,Tasks>
{
EditTask GetDetails(long TaskId);
Tasks GetIncludeAssign(long taskId);
void Remove(long id);
//گرفتن تمامی وظایف
List<TaskViewModel> GetTasks(TaskSearchModel searchModel);
List<TaskViewModel> GetAllTasks(TaskSearchModel searchModel);
List<TaskViewModel> GetRequestedTasks(TaskSearchModel searchModel);
List<TaskViewModel> GetSelfTasks(TaskSearchModel searchModel);
List<TaskViewModel> GetAllNotSelfIncludedTasks(TaskSearchModel searchModel);
//List<TaskViewModel> GetAllNotSelfIncludedTasks(TaskSearchModel searchModel);
List<TaskViewModel> GetReceivedTasks(TaskSearchModel searchModel);
List<TaskViewModel> GetSentTasks(TaskSearchModel searchModel);
List<TaskViewModel> AllRequestedTasks(TaskSearchModel searchModel);
string SetTasksColors(DateTime time,bool isCancel);
int GetRequestedTasksCount();
TaskViewModel GetRequestDetails(long id);
EditTask GetRequestDetails(long id);
string GetWebEnvironmentPath();
bool HasOverdueTasks();
/// گرفتن پیام های مربوط به هر تسک
//OperationResult MoveDataFRomTaskToAssign();
}

View File

@@ -4,61 +4,48 @@ using System.Security.AccessControl;
using _0_Framework.Domain;
using AccountManagement.Domain.AssignAgg;
using AccountManagement.Domain.TaskMediaAgg;
using AccountManagement.Domain.TaskScheduleAgg;
namespace AccountManagement.Domain.TaskAgg;
public class Tasks : EntityBase
{
public Tasks(string title, DateTime endTaskDate, string? description, long senderId, string contractingPartyName)
public Tasks(string title, string? description, long senderId, string contractingPartyName)
{
Title = title;
EndTaskDate = endTaskDate;
Description = description;
SenderId = senderId;
ContractingPartyName = contractingPartyName;
StartTaskDate = DateTime.Now;
IsActiveString = "true";
TaskScheduleId = null;
}
//عنوان وظیفه
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 long? TicketId { get; private set; }
public long? TaskScheduleId { get; private set; }
public List<Assign> Assigns { get; set; }
public List<TaskMedia> TaskMedias { get; set; }
public long? TicketId { get; set; }
public TaskSchedule TaskSchedule { get; set; }
public Tasks(string title, DateTime endTaskDate, string? description, long senderId, string contractingPartyName, long ticketId)
public Tasks(string title, string? description, long senderId, string contractingPartyName, long ticketId)
{
Title = title;
EndTaskDate = endTaskDate;
Description = description;
SenderId = senderId;
ContractingPartyName = contractingPartyName;
@@ -67,93 +54,30 @@ public class Tasks : EntityBase
TicketId = ticketId;
}
public void Edit(string title, DateTime endTaskDate, string? description, long senderId, string contractingPartyName)
public void Edit(string title, string? description, long senderId, string contractingPartyName)
{
Title = title;
EndTaskDate = endTaskDate;
Description = description;
SenderId = senderId;
ContractingPartyName= contractingPartyName;
ContractingPartyName = contractingPartyName;
}
//برای ایجاد یک درخواست مهلت
public void CreateTimeRequest(DateTime requestDate, string timeRequestDescription)
public void DeActive()
{
RequestDate = requestDate;
TimeRequestDescription = timeRequestDescription;
TimeRequest = true;
IsActiveString = "false";
}
public void AcceptTimeRequest()
public void Activator()
{
TimeRequest = false;
AcceptedTimeRequest++;
EndTaskDate = (DateTime)RequestDate;
}
public void RejectTimeRequest()
{
TimeRequest = false;
TimeRequestDescription = null;
RequestDate = null;
IsActiveString = "true";
}
public void CreateCancelRequest(string cancelDescription)
public void SetTaskSchedule(long taskScheduleId)
{
CancelDescription = cancelDescription;
IsCanceledRequest=true;
TaskScheduleId = taskScheduleId;
}
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;
}
}

View File

@@ -0,0 +1,11 @@
using System.Collections.Generic;
using _0_Framework.Domain;
using AccountManagement.Application.Contracts.TaskMessage;
namespace AccountManagement.Domain.TaskMessageAgg;
public interface ITaskMessageRepository: IRepository<long, TaskMessage>
{
void CreateTaskMessageItems(long senderId,long receiverId,long messageId);
List<TaskMessageViewModel> GetTaskMessages(long assignId);
}

View File

@@ -0,0 +1,26 @@
using System.Collections.Generic;
using System.Runtime;
using _0_Framework.Domain;
using AccountManagement.Domain.AssignAgg;
using AccountManagement.Domain.TaskMessageItemsAgg;
namespace AccountManagement.Domain.TaskMessageAgg;
public class TaskMessage:EntityBase
{
public TaskMessage(string message, string typeOfMessage, long assignId, string requestedDateFa="")
{
Message = message;
TypeOfMessage = typeOfMessage;
AssignId = assignId;
RequestedDateFa = requestedDateFa;
}
public string Message { get; private set; }
public string TypeOfMessage { get; private set; }
public string RequestedDateFa { get; private set; }
public long AssignId { get; private set; }
public List<TaskMessageItems> TaskMessageItemsList { get; set; }
public Assign Assign { get; set; }
}

View File

@@ -0,0 +1,22 @@
using _0_Framework.Domain;
using AccountManagement.Domain.TaskMessageAgg;
namespace AccountManagement.Domain.TaskMessageItemsAgg;
public class TaskMessageItems:EntityBase
{
public TaskMessageItems(long senderAccountId, long receiverAccountId, long taskMessageId)
{
SenderAccountId = senderAccountId;
ReceiverAccountId = receiverAccountId;
TaskMessageId = taskMessageId;
}
public long SenderAccountId { get; private set; }
public long ReceiverAccountId { get; private set; }
public long TaskMessageId { get; private set; }
public TaskMessage TaskMessage { get; set; }
}

View File

@@ -0,0 +1,8 @@
using _0_Framework.Domain;
namespace AccountManagement.Domain.TaskScheduleAgg;
public interface ITaskScheduleRepository:IRepository<long,TaskSchedule>
{
}

View File

@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using _0_Framework.Domain;
using AccountManagement.Domain.TaskAgg;
namespace AccountManagement.Domain.TaskScheduleAgg;
public class TaskSchedule:EntityBase
{
public TaskSchedule(string count, string type, string unitType, string unitNumber, DateTime lastEndTaskDate)
{
Count = count;
Type = type;
UnitType = unitType;
UnitNumber = unitNumber;
LastEndTaskDate = lastEndTaskDate;
}
public string Count { get; private set; }
public string Type { get; private set; }
public string UnitType { get; private set; }
public string UnitNumber { get; private set; }
public DateTime LastEndTaskDate { get; private set; }
public List<Tasks> TasksList { get; set; }
public void SetLastEndTaskDate(DateTime lastEndTaskDate)
{
LastEndTaskDate = lastEndTaskDate;
}
}

View File

@@ -0,0 +1,12 @@
using System.Collections.Generic;
using _0_Framework.Domain;
using AccountManagement.Application.Contracts.TicketAccessAccount;
namespace AccountManagement.Domain.TicketAccessAccountAgg;
public interface ITicketAccessAccountRepository:IRepository<long,TicketAccessAccount>
{
bool HasTicketAccess(long accountId);
List<TicketAccessAccountViewModel> GetAllAccessedAccounts();
void Remove (long id);
}

View File

@@ -0,0 +1,13 @@
using _0_Framework.Domain;
namespace AccountManagement.Domain.TicketAccessAccountAgg;
public class TicketAccessAccount:EntityBase
{
public TicketAccessAccount(long accountId)
{
AccountId = accountId;
}
public long AccountId { get; private set; }
}

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using _0_Framework.Application;
using _0_Framework.Domain;
using AccountManagement.Application.Contracts.Ticket;
using AccountManagement.Domain.AdminResponseAgg;
@@ -9,9 +10,16 @@ namespace AccountManagement.Domain.TicketAgg;
public interface ITicketRepository:IRepository<long,Ticket>
{
List<TicketViewModel> GetAll(TicketSearchModel searchModel);
List<TicketViewModel> GetTicketsForClients(TicketSearchModel searchModel);
void CreateAdminResponse(AdminResponse command);
void CreateClientResponse(ClientResponse command);
EditTicket GetDetails(long id);
EditTicket GetDetailsForClient(long id);
int GetLastTicketNumber();
AdminResponse GetAdminResponse(long adminResId);
ClientResponse GetClientResponse(long adminResId);
void RemoveAdminResponse(long adminResId);
}

View File

@@ -9,23 +9,27 @@ namespace AccountManagement.Domain.TicketAgg;
public class Ticket:EntityBase
{
public Ticket(string title, string description, long senderId, string contractingPartyName, string ticketType)
public Ticket(string title, string description, long senderId, string contractingPartyName, string ticketType, long workshopId, string ticketNumber,long subAccountSenderId=0)
{
Title = title;
Description = description;
Status = "درحال بررسی";
Status = "باز";
SenderId = senderId;
ContractingPartyName = contractingPartyName;
TicketType = ticketType;
WorkshopId = workshopId;
TicketNumber = ticketNumber;
SubAccountSenderId = subAccountSenderId;
}
public string Title { get; private set; }
public string Description { get; private set; }
public string TicketType { get; set; }
public string TicketNumber { get; set; }
public string Status { get; private set; }
public long SenderId { get; private set; }
public long SubAccountSenderId { get; set; }
public string ContractingPartyName { get; private set; }
public long? TaskId { get; private set; }
public long WorkshopId { get; private set; }
public List<ClientResponse> ClientResponses { get; set; }
public List<AdminResponse> AdminResponses{ get; set; }
public List<TicketMedia> TicketMedias { get; set; }
@@ -39,4 +43,14 @@ public class Ticket:EntityBase
{
Status = "پاسخ داده شده";
}
public void AssignedToTasks()
{
Status = "درحال بررسی";
}
public void Open()
{
Status = "باز";
}
}