public static void UpdateMissionWorkflowDocuments(this MissionsWorkflowViewModels viewModel, ClientFieldData[] clientFieldData) { var documentDescription = clientFieldData.Where(x => !string.IsNullOrWhiteSpace(x.Name) && x.Name.Contains("documentDescription")); var documentNumber = clientFieldData.Where(x => !string.IsNullOrWhiteSpace(x.Name) && x.Name.Contains("documentNumber")); var documentIndex = 0; foreach (var document in documentDescription) { var documentNumberValue = documentNumber.ToArray()[documentIndex].Value; viewModel.Documents.Add( new MissionsWorkflowDocumentsViewModels { Description = document.Value, DocNumber = Convert.ToInt32(documentNumberValue) }); documentIndex++; } }
public virtual ActionResult MissionsWorkflow(string operationNumber, TaskDataModel model) { string documentReference = string.Empty; string host = string.Empty; string port = string.Empty; string fullPath = string.Empty; Logger.GetLogger().WriteDebug("ViewController", "Method: MissionsWorkflow : UserName: "******"MissionID"])); var missionModel = mission.MissionbyId; var validatorsResponse = _k2DataService.GetValidators(model.Code, model.TaskFolio); validatorsResponse.Validators = _viewModelMapperHelper .FilterMandatory( validatorsResponse.Validators, missionModel.Header.Type, missionModel.IsHaitiCountry, model.Code, mission.Mission.Operation.OperationData.OperationType.Code); var commentsResponse = _missionService.GetComments(Convert.ToInt32(model.Parameters["MissionID"])); bool isLastApproved = _viewModelMapperHelper.IsLastEmptyState(validatorsResponse.Validators); if (isLastApproved) { documentReference = _viewModelMapperHelper.GetLastDocumentTOR(Convert.ToInt32(model.Parameters["MissionID"])); host = "https://" + Request.Url.Host; port = Request.Url.Port.ToString(); fullPath = host + ":" + port + Url.RouteUrl("Document_default", new { action = "DownloadDocument", documentNumber = documentReference }); } var groupCode = _missionService.DetermineGroupCode(mission.Mission); var taskTypeCode = _missionService.DetermineWorkflowCode(groupCode); var workflowResponse = _missionService.HasWorkflowActive( operationNumber, mission.Mission.MissionId, taskTypeCode); var modelTaskView = new MissionsWorkflowViewModels { StartProfileTM = GetListMembersInString(missionModel), missionId = missionModel.MissionId, missionStatusCode = missionModel.Header.StatusCode, missionCode = missionModel.Header.MissionCode, UserComments = commentsResponse, Instructions = Localization.GetText("OP.MS.K2.ApproveMission.Instructions"), TaskDataModel = model, UserName = IDBContext.Current.UserName, Validators = validatorsResponse.Validators, Documents = _viewModelMapperHelper.GetWorkFlowMissionDocuments(Convert.ToInt32(model.Parameters["MissionID"])), IsLastApproved = isLastApproved ? "sendLastTor" : string.Empty, DocNumber = documentReference, UrlDocumentTOR = fullPath, IsGroupCodeVps = groupCode == DivisionOpusGroup.VPS, HasWorkflowActive = workflowResponse.HasCondition }; if (model.Parameters.ContainsKey("AddValidators")) { modelTaskView.Validators = _missionService.saveExistingValidators(modelTaskView.Validators, modelTaskView.TaskDataModel.WorkflowInstanceId, Convert.ToString(model.Parameters["AddValidators"])); } ViewBag.SerializedViewModel = IDB.Presentation.MVC4.Helpers.PageSerializationHelper.SerializeObject(modelTaskView); return(View(modelTaskView)); }
public virtual ActionResult MissionCreateWorkflow( string operationNumber, int missionId, bool?isVpsResend, string missionRoles, int?missionTypeId) { var missionModel = _viewModelMapperHelper.GetMissionbyId(missionId); var resendVpsFlow = isVpsResend ?? false; var groupCode = resendVpsFlow ? DivisionOpusGroup.VPS : _missionService.DetermineGroupCode(missionModel.Mission); var taskTypeCode = _missionService.DetermineWorkflowCode(groupCode); var validatorsResponse = _k2DataService.GetValidators(taskTypeCode, null); validatorsResponse.Validators = _viewModelMapperHelper .FilterMandatory( validatorsResponse.Validators, missionModel.MissionbyId.Header.Type, missionModel.MissionbyId.IsHaitiCountry, taskTypeCode, missionModel.Mission.Operation.OperationData.OperationType.Code); Logger.GetLogger().WriteDebug( "ViewController", "Method: MissionCreateWorkflow : UserName: "******"MissionsWorkflow", modelTaskView)); }
public static void UpdateMissionWorkFlowViewModel(this MissionsWorkflowViewModels viewModel, ClientFieldData[] clientFieldData) { if (viewModel == null) { viewModel = new MissionsWorkflowViewModels(); } //Additional Validators var additionalValidators = clientFieldData.Where(o => o.Name.Equals("newUserProfile")); if (viewModel.Validators == null) { viewModel.Validators = new List <ValidatorViewModel>(); } for (int i = 0; i < additionalValidators.Count(); i++) { var validator = new ValidatorViewModel(); validator.Role = additionalValidators.ElementAt(i).Value; validator.Status = "Pending"; validator.Mandatory = false; viewModel.Validators.Add(validator); } var deleteValidators = clientFieldData.FirstOrDefault(o => o.Name.Equals("deleteValidators")); if (deleteValidators != null) { string[] deleteV = deleteValidators.Value.ToString().Split('|').Where(x => !string.IsNullOrEmpty(x)).ToArray(); if (viewModel.DeleteValidators == null) { viewModel.DeleteValidators = new List <int>(); } foreach (string s in deleteV) { viewModel.DeleteValidators.Add(Convert.ToInt32(s)); viewModel.Validators.RemoveAll(d => d.Order.Equals(Convert.ToInt32(s))); } } //Comments if (viewModel.UserComments == null) { viewModel.UserComments = new List <UserCommentViewModel>(); } var editComments = clientFieldData.Where(o => o.Name.Equals("textComment")); var editCommentsId = clientFieldData.Where(o => o.Name.Equals("commentId")); if (editComments != null && editCommentsId != null) { for (int i = 0; i < editComments.Count(); i++) { var index = viewModel.UserComments.FindIndex(x => x.CommentId == Convert.ToInt32(editCommentsId.ElementAt(i).Value)); if (!viewModel.UserComments.ElementAt(index).Comment.Equals(editComments.ElementAt(i).Value.Trim())) { viewModel.UserComments.ElementAt(index).Comment = editComments.ElementAt(i).Value.Trim(); } } } var newComments = clientFieldData.Where(o => o.Name.Equals("newComment")); if (newComments != null) { for (int i = 0; i < newComments.Count(); i++) { var comment = new UserCommentViewModel(); comment.Comment = newComments.ElementAt(i).Value.Trim(); viewModel.UserComments.Add(comment); } } var deleteComments = clientFieldData.FirstOrDefault(o => o.Name.Equals("deleteComments")); if (deleteComments != null) { string[] deleteC = deleteComments.Value.ToString().Split('|').Where(x => !string.IsNullOrEmpty(x)).ToArray(); if (viewModel.DeleteComments == null) { viewModel.DeleteComments = new List <int>(); } foreach (string s in deleteC) { viewModel.DeleteComments.Add(Convert.ToInt32(s)); viewModel.UserComments.RemoveAll(d => d.CommentId.Equals(Convert.ToInt32(s))); } } // Documents viewModel.UpdateMissionWorkflowDocuments(clientFieldData); }