public async Task <ConsultationDTO> SaveRequestData(ConsultationDTO dto) { await AddNewRequest(dto.DomainModel); dto.DomainModel.JobId = await KtaService.CreateJobAsync(dto.SessionId, AppConfiguaraton.KTAProcessIdConsultation, dto.DomainModel.Id); await UpdateKtaJobID(dto.DomainModel.Id, dto.DomainModel.JobId); await AddAvailability(dto); var ConsulationViewModel = new NewConsultationViewModel(); Mapper.Map(dto.DomainModel, ConsulationViewModel); var responce = await _uacService.PostConsultationData(ConsulationViewModel); if (dto.Attachement != null) { FileService.UploadRequestFiles(typeof(ConsultationDTO), dto, AppConfiguaraton.ConsultaionAttachementPath, dto.DomainModel.JobId, AppConfiguaraton.ConsultaionAttachementListName, string.Empty, dto.Requester.Username, multiTypes: true, uploadToSharepoint: true, multi: true); } return(dto); }
public async Task <ConsultationDTO> ReviewRequestData(RequestDataModel data) { var activity = KtaService.OpenActivityInReviewMode(data.SessionId, data.JobId, data.NodeId, data.epc); ConsultationDTO dto = new ConsultationDTO(); dto.DomainModel = FindOneByJobId(data.JobId); dto.activity = activity; dto.IsReviewMode = true; return(dto); }
public async Task AddAvailability(ConsultationDTO dto) { var ConsultantAvailability = new ConsultantAvailability(); ConsultantAvailability.ConsultationRequestId = dto.DomainModel.Id; ConsultantAvailability.ConsultantEmail = dto.DomainModel.ConsultantEmail; ConsultantAvailability.StartDate = dto.DomainModel.DateFrom; ConsultantAvailability.EndDate = dto.DomainModel.DateTo; ConsultantAvailability.Days = dto.DomainModel.Duration; ConsultantAvailability.Year = DateTime.Parse(ConsultantAvailability.StartDate.ToString()).Year;; await _availabilityservice.AddNewRequest(ConsultantAvailability); }
public async Task <ConsultationDTO> GetRequestData(RequestDataModel data) { var activity = await KtaService.TakeActivityAsync(data.SessionId, data.JobId, data.NodeId, data.epc); ConsultationDTO dto = new ConsultationDTO(); dto.DomainModel = FindOneByJobId(data.JobId); dto.Requester = await employeeService.FindEmployeeWithEmailAsync(dto.DomainModel.EmployeeEmail); dto.Decisions = decisionService.GetDecisionList(activity.HelpText); dto.activity = activity; dto.ConsultationRequestsHistory = await GetConsultationRequestsHistory(dto.DomainModel.EmployeeEmail); return(dto); }
public async Task <ConsultationDTO> ProcessRequest(ConsultationDTO dto) { logger.LogDebug("activity", (dto.activity)); if (dto.activity == null) { dto.activity = await KtaService.TakeActivityAsync(dto.SessionId, dto.DomainModel.JobId, dto.NodeID, dto.EPC); } if (dto.activity.Identity.NodeId == dto.NodeID && dto.activity.Identity.NodeId == ConstantNodes.Research_Collaboration_Committee) { if (dto.ManagerDecision.Id == ((int)ConstantNodes.ConsultationDecisions.Approved).ToString()) { dto.DomainModel.Status = "Approved";; } else if (dto.ManagerDecision.Id == ((int)ConstantNodes.ConsultationDecisions.Rejected).ToString()) { dto.DomainModel.Status = "Rejected"; } } else if (dto.activity.Identity.NodeId == dto.NodeID && (dto.activity.Identity.NodeId == ConstantNodes.UCP_Admin__NodeId || dto.activity.Identity.NodeId == ConstantNodes.DM_NodeID) && dto.ManagerDecision.Id == ((int)ConstantNodes.EnumITStatus.Rejected).ToString()) { dto.DomainModel.Status = "Rejected"; } var entity = FindOneById(dto.DomainModel.Id); if (dto.DomainModel.Id == entity.Id) { Mapper.Map(dto.DomainModel, entity); } await UpdateRequest(); if (dto.DomainModel.Status == "Rejected") { await DeleteAvailability(dto); } var ConsulationCompletionViewModel = new EditConsultationDataViewModel(); if (dto.DomainModel.Status != null) { Mapper.Map(dto.DomainModel, ConsulationCompletionViewModel); var jsonPatch = new JsonPatchDocument <EditConsultationDataViewModel>(); jsonPatch.Replace(m => m.Status, ConsulationCompletionViewModel.Status); jsonPatch.Replace(m => m.IsConfidential, ConsulationCompletionViewModel.IsConfidential); logger.LogDebug("jsonPatch", (jsonPatch)); var responce = await _uacService.PatchConsultationData(jsonPatch, dto.DomainModel.JobId); logger.LogDebug("responce", (responce)); } if (dto.Attachement != null) { FileService.UploadRequestFiles(typeof(ConsultationDTO), dto, AppConfiguaraton.ConsultaionAttachementPath, dto.DomainModel.JobId, AppConfiguaraton.ConsultaionAttachementListName, string.Empty, dto.Requester.Username, multiTypes: false, uploadToSharepoint: true, multi: true); } await KtaService.CompleteActivityAsync(dto.SessionId, dto.Requester.Username, dto.ManagerDecision.Id, dto.ManagerDecision.Comment, dto.activity.Identity); return(dto); }
public async Task DeleteAvailability(ConsultationDTO dto) { var ConsultantAvailability = new ConsultantAvailability(); var ConsultantAvailabilityItem = _availabilityservice.Find(x => x.ConsultationRequestId == dto.DomainModel.Id).FirstOrDefault(); await _availabilityservice.DeleteRequest(ConsultantAvailabilityItem); }