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);
        }
        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);
        }