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++;
            }
        }
예제 #2
0
        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));
        }
예제 #3
0
        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);
        }