using FrameworkDAL.CustomCode.WorkflowAssignment; using FrameworkDAL.DTO.WorkflowAssignment; using GB5Shared.DTO.Framework.Login; using GB5Shared.Resource.Response; using GB5Shared.ResponseStandard; using GB5Shared.Validation; using System; using System.ComponentModel.DataAnnotations; using System.Threading.Tasks; namespace FrameworkBLL.WorkflowAssignment { public class WorkflowAssignmentBLL : IWorkflowAssignmentBLL { private readonly IWorkflowAssignmentDAL _WorkflowAssignmentDAL; private readonly IValidation _Validation; public WorkflowAssignmentBLL( IWorkflowAssignmentDAL WorkflowAssignmentDAL, IValidation Validation) { _WorkflowAssignmentDAL = WorkflowAssignmentDAL; _Validation = Validation; } public async Task GetWorkflowAssignment(int WorkflowAssignmentId, LoginDTO LoginDTO) { try { return await _WorkflowAssignmentDAL.GetWorkflowAssignment(WorkflowAssignmentId, LoginDTO); } catch (Exception) { throw; } } public async Task SaveWorkflowAssignment( WorkflowAssignmentDTO WorkflowAssignmentDTO, LoginDTO LoginDTO) { if (WorkflowAssignmentDTO == null) throw new ArgumentNullException(nameof(WorkflowAssignmentDTO)); try { await _Validation.NotEmpty( WorkflowAssignmentDTO.WorkflowAssignmentName, nameof(WorkflowAssignmentDTO.WorkflowAssignmentName)); WorkflowAssignmentDTO.ModifiedById = LoginDTO.UserId; WorkflowAssignmentDTO.ModifiedOn = DateTime.UtcNow; if (WorkflowAssignmentDTO.WorkflowAssignmentId == 0) { WorkflowAssignmentDTO.CreatedById = LoginDTO.UserId; WorkflowAssignmentDTO.CreatedOn = DateTime.UtcNow; WorkflowAssignmentDTO.Status = 1; WorkflowAssignmentDTO.Version = 1; WorkflowAssignmentDTO.SourceType = 1; await _WorkflowAssignmentDAL.SaveWorkflowAssignment( WorkflowAssignmentDTO, LoginDTO); return "Details have been Saved successfully."; } else { await _WorkflowAssignmentDAL.UpdateWorkflowAssignment( WorkflowAssignmentDTO, LoginDTO); return $"{SuccessResponse.UpdateSuccessMessage} {WorkflowAssignmentDTO.WorkflowAssignmentId}"; } } catch (ValidationException vex) { throw new Exception(vex.Message); } catch (Exception) { throw; } } public async Task GetSelectListWorkflowAssignment( int FirstNumber, int MaxResult, LoginDTO LoginDTO) { try { return await _WorkflowAssignmentDAL.GetSelectListWorkflowAssignment( FirstNumber, MaxResult, LoginDTO); } catch (Exception) { throw; } } public async Task DeleteWorkflowAssignment( int WorkflowAssignmentId, LoginDTO LoginDTO) { try { return await _WorkflowAssignmentDAL.DeleteWorkflowAssignment( WorkflowAssignmentId, LoginDTO); } catch (Exception) { throw; } } } }