public async Task <ConsultationCompletionDTO> SaveRequestData(ConsultationCompletionDTO dto) { if (dto.IsTerminated) { dto.DomainModel.Status = "Terminated"; } await AddNewRequest(dto.DomainModel); dto.DomainModel.JobId = await KtaService.CreateJobAsync(dto.SessionId, AppConfiguaraton.KTAProcessIdConsultationCompletion, dto.DomainModel.Id); await UpdateAvailability(dto); dto.ConsultantEvaluation = new ConsultantEvaluation(); await UpdateKtaJobID(dto.DomainModel.Id, dto.DomainModel.JobId); dto.ConsultantEvaluation.ConsultationId = dto.DomainModel.ConsultationRequestId; dto.ConsultantEvaluation.ConsultationCompletionId = dto.DomainModel.Id; dto.ConsultantEvaluation.Comments = dto.Comments; dto.ConsultantEvaluation.Rating = dto.Rating; dto.ConsultantEvaluation.ConsultantEmail = dto.ConsultantEmail; dto.ConsultantEvaluation.EmployeeEmail = dto.DomainModel.EmployeeEmail; await AddEvaluation(dto); await _consultantEvaluationService.AddNewRequest(dto.ConsultantEvaluation); return(dto); }
public async Task <ConsultantEvaluation> GetConsultantEvaluation(ConsultationCompletionDTO dto) { dto.ConsultantEvaluation = await _consultantEvaluationService.GetQuerable().Where(x => x.ConsultationCompletionId == dto.DomainModel.Id).Include(x => x.EvaluationItems).FirstOrDefaultAsync(); var items = dto.ConsultantEvaluation.EvaluationItems; dto.ConsultantEvaluationItems = Mapper.Map <List <ConsultantEvaluationModel> >(items); return(dto.ConsultantEvaluation); }
public async Task <ConsultationCompletionDTO> ReviewRequestData(RequestDataModel data) { var activity = KtaService.OpenActivityInReviewMode(data.SessionId, data.JobId, data.NodeId, data.epc); ConsultationCompletionDTO dto = new ConsultationCompletionDTO(); dto.DomainModel = FindOneByJobId(data.JobId); dto.activity = activity; dto.IsReviewMode = true; return(dto); }
public async Task UpdateAvailability(ConsultationCompletionDTO dto) { // var entity = _availabilityservice.Find(x => x.ConsultationRequestId == dto.DomainModel.ConsultationRequestId); var entity = _availabilityrepository.GetOneByExpression($"ConsultationRequestId==\"{dto.DomainModel.ConsultationRequestId}\""); if (dto.DomainModel.ConsultationRequestId == entity.ConsultationRequestId) { entity.Days = dto.DomainModel.ActualDuration; } await _availabilityservice.Update(entity); }
public (List <ConsultationModel> ConsultationList, List <ConsultantEvaluationModel> ConsultantEvaluationList) GetLists(string employeeEmail) { var items = _consultationService.GetQuerable().Where(x => x.EmployeeEmail == employeeEmail).DefaultIfEmpty(); var ConsultationRequests = Mapper.Map <List <ConsultationModel> >(items); ConsultationCompletionDTO dto = new ConsultationCompletionDTO(); var questionsItems = _consultationQuestions.GetAll(); dto.ConsultantEvaluationItems = Mapper.Map <List <ConsultantEvaluationModel> >(questionsItems); return(ConsultationList : ConsultationRequests, ConsultantEvaluationList : dto.ConsultantEvaluationItems); }
public async Task <ConsultationCompletionDTO> GetRequestData(RequestDataModel data) { var activity = await KtaService.TakeActivityAsync(data.SessionId, data.JobId, data.NodeId, data.epc); ConsultationCompletionDTO dto = new ConsultationCompletionDTO(); dto.DomainModel = FindOneByJobId(data.JobId); dto.Requester = await employeeService.FindEmployeeWithEmailAsync(dto.DomainModel.EmployeeEmail); dto.ConsultantEvaluation = await GetConsultantEvaluation(dto); dto.Decisions = decisionService.GetDecisionList(activity.HelpText); dto.activity = activity; return(dto); }
//public List<ConsultantEvaluationModel> GetEvaluationItems() //{ // ConsultationCompletionDTO dto = new ConsultationCompletionDTO(); // var questionsItems = _consultationQuestions.GetAll(); // dto.ConsultantEvaluationItems = Mapper.Map<List<ConsultantEvaluationModel>>(questionsItems); // return dto.ConsultantEvaluationItems; //} public async Task AddEvaluation(ConsultationCompletionDTO dto) { var EvaluationItems = new List <ConsultantEvaluationItems>(); foreach (var item in dto.ConsultantEvaluationItems) { // item.ConsultantEmail = dto.ConsultantEmail; var tobeAdded = Mapper.Map <ConsultantEvaluationItems>(item); EvaluationItems.Add(tobeAdded); } dto.ConsultantEvaluation.EvaluationItems = EvaluationItems; // await _consultantEvaluationItemsService.AddMultiple(dto.ConsultantEvaluation.EvaluationItems.ToList()); }
public async Task <ConsultationCompletionDTO> ProcessRequest(ConsultationCompletionDTO dto) { 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) && dto.ManagerDecision.Id == ((int)ConstantNodes.ConsultationDecisions.Approved).ToString()) { if (dto.DomainModel.Status != "Terminated") { dto.DomainModel.StatusId = ((int)ConstantNodes.ConsultationStatus.Completed); dto.DomainModel.Status = "Completed"; } var entity = FindOneById(dto.DomainModel.Id); if (dto.DomainModel.Id == entity.Id) { Mapper.Map(dto.DomainModel, entity); } await UpdateRequest(); var ConsulationCompletionViewModel = new EditConsultationDataViewModel(); Mapper.Map(dto.DomainModel, ConsulationCompletionViewModel); var jsonPatch = new JsonPatchDocument <EditConsultationDataViewModel>(); jsonPatch.Replace(m => m.ActualCost, ConsulationCompletionViewModel.ActualCost); jsonPatch.Replace(m => m.ActualDeliverables, ConsulationCompletionViewModel.ActualDeliverables); jsonPatch.Replace(m => m.ActualDuration, ConsulationCompletionViewModel.ActualDuration); jsonPatch.Replace(m => m.DurationNotes, ConsulationCompletionViewModel.DurationNotes); jsonPatch.Replace(m => m.Status, ConsulationCompletionViewModel.Status); string jobId = dto.ConsultationJobId; var responce = await _uacService.PatchConsultationData(jsonPatch, jobId); } await KtaService.CompleteActivityAsync(dto.SessionId, dto.Requester.Username, dto.ManagerDecision.Id, dto.ManagerDecision.Comment, dto.activity.Identity); return(dto); }