public virtual ActionResult GetFindingsAndRecommendations(string operationNumber)
        {
            bool isEditable;
            var  findingsAndRecommendations =
                findingAndRecommendationsRepository.GetFindingsAndRecommendations(
                    operationNumber,
                    IDBContext.Current.CurrentLanguage,
                    out isEditable);

            // AJAX calls don't include the operation number in the HttpRequeest.RouteData
            // so we need to setup the operation number forced
            IDBContext.Current.Operation = operationNumber;

            FindingRecommendationHeaderModel model = new FindingRecommendationHeaderModel
            {
                FindingRecommendations       = findingsAndRecommendations,
                IsEditable                   = isEditable,
                IsCurrentPcrTaskLessThanFive = PCRHelpers.IsCurrentTaskLessThanFive(
                    ReportsRepository, PCRWorkflowStatusRepository),
                HasFindingsWritePermission = IDBContext.Current.HasPermission(
                    Permission.FINDINGS_WIRTE),
                HasRMAdministratorRole = IDBContext.Current.HasRole(Role.RM_ADMINISTRATOR),
                OperationNumber        = operationNumber
            };

            return(new JsonResult
            {
                Data = model
            });
        }
        public virtual ActionResult Details(string operationNumber, MessageNotificationCodes messageStatus = MessageNotificationCodes.VoidMessage)
        {
            var currentOperation = operation.GetOperationByOperationNumber(operationNumber);

            string[] masterDataItems  = new string[] { "RISK_STATUS", "RISK_TYPE", "RISK_TARGET_AUDIENCE", "RISK_PROBABILITY", "RISK_IMPACT", "RISK_LEVEL" };
            var      masterDataDetail = operation.GetMasterDataDetails(masterDataItems, Lang);

            this.ViewBag.listrisktype           = masterDataDetail["RISK_TYPE"];
            this.ViewBag.listrisktargetaudience = masterDataDetail["RISK_TARGET_AUDIENCE"];
            this.ViewBag.listriskstatus         = masterDataDetail["RISK_STATUS"];
            this.ViewBag.listriskprobability    = operation.GetRiskProbability(masterDataDetail["RISK_PROBABILITY"]);
            this.ViewBag.listriskimpact         = operation.RiskImpact(masterDataDetail["RISK_IMPACT"]);
            this.ViewBag.listrangerisklevel     = operation.RangeRiskLevel();
            var operationmodel = operation.GetAllOperationRisks(currentOperation, Lang, masterDataDetail);

            ViewData["SelectedRiskType"]      = string.Empty;
            ViewData["DescriptionFilter"]     = string.Empty;
            ViewData["RiskLevelFilter"]       = string.Empty;
            ViewData["RiskTargetFilter"]      = string.Empty;
            ViewData["RiskStatusFilter"]      = string.Empty;
            ViewData["OperationNumberFilter"] = string.Empty;
            ViewData["Message"] = null;
            if (messageStatus != MessageNotificationCodes.VoidMessage)
            {
                MessageConfiguration message = MessageHandler.setMessage(messageStatus, true, 5);
                ViewData["message"] = message;
            }

            ViewBag.isLessTaskFive = PCRHelpers.IsCurrentTaskLessThanFive(
                ClientGenericRepository, PCRWorkflowStatusRepository, currentOperation.OperationId);
            ViewBag.RMAdministrator = IDBContext.Current.HasRole(Role.RM_ADMINISTRATOR);
            return(View(operationmodel));
        }
Exemplo n.º 3
0
        private string TestPCRForDebugg(Operation operation)
        {
            var operationId  = operation.OperationId;
            var averageScore = string.Empty;

            var isPCRPublished = operation.OpIsPCRCompleted();
            var pcrWorkFlow    = _pcrWorkflowStatusRepository.GetOne(x => x.OperationId == operationId);

            if (isPCRPublished == false && (pcrWorkFlow != null && pcrWorkFlow.IsRequired))
            {
                averageScore = Localization.GetText("CS.Monitoring.TBD");
            }

            if (isPCRPublished == false && (pcrWorkFlow == null || (pcrWorkFlow != null && !pcrWorkFlow.IsRequired)))
            {
                averageScore = Localization.GetText("CS.Monitoring.NotAvailable");
            }

            if (isPCRPublished == true && (pcrWorkFlow != null && !pcrWorkFlow.IsRequired))
            {
                averageScore = Localization.GetText("CS.Monitoring.NotAvailable");
            }

            if (isPCRPublished == true && (pcrWorkFlow != null && pcrWorkFlow.IsRequired))
            {
                var filteredPCRList = _pcrRepository.GetByCriteria(x => x.Operation.OperationId == operationId &&
                                                                   x.ValidateDate.HasValue).OrderByDescending(x => x.ValidateDate).ToList();

                var currentPCR = filteredPCRList.FirstOrDefault();

                if (currentPCR != null)
                {
                    if (currentPCR.PCRStage == null)
                    {
                        _pcrRepository.Reload(currentPCR, "PCRStage", "PCRValidationStage", "Operation");

                        if (filteredPCRList.Count >= 2)
                        {
                            PCRHelpers.CopyNavigationPropertyToNewPCR(filteredPCRList.ElementAt(1), currentPCR);
                        }
                    }

                    var calculateSummaryByStageDTO = _pcrCalculationService.CalculateSummaryByStage(currentPCR);

                    var category = string.Empty;

                    switch (calculateSummaryByStageDTO.Category)
                    {
                    case OperationScoreCategoryEnum.FullAchievement:
                        category = Localization.GetText("PCR.Summary.CoreCriterion.FullAchievement");
                        break;

                    case OperationScoreCategoryEnum.HighAchievement:
                        category = Localization.GetText("PCR.Summary.CoreCriterion.HighAchievement");
                        break;

                    case OperationScoreCategoryEnum.PartialAchievement:
                        category = Localization.GetText("PCR.Summary.CoreCriterion.PartialAchievement");
                        break;

                    case OperationScoreCategoryEnum.LowAchievement:
                        category = Localization.GetText("PCR.Summary.CoreCriterion.LowAchievement");
                        break;

                    case OperationScoreCategoryEnum.NoAchievement:
                        category = Localization.GetText("PCR.Summary.CoreCriterion.NoAchievement");
                        break;
                    }

                    averageScore = string.Format("{0:0.00}", calculateSummaryByStageDTO.AverageScore) +
                                   (!string.IsNullOrWhiteSpace(category) ? " - " : null) + category;

                    var isTestCaseManagerAviable = ConfigurationServiceFactory.Current.GetApplicationSettings().TestCaseManagerAviable;

                    if (isTestCaseManagerAviable)
                    {
                        averageScore = "0.72 - Partial Achievement";
                    }
                }
            }

            return(averageScore);
        }
        public virtual ActionResult DetailsFindingRecommendation(
            string operationNumber,
            int State          = 0,
            string Dimensions  = "0",
            string Categories  = "0",
            string Stages      = "0",
            string cycleIdList = null)
        {
            if (cycleIdList == "null")
            {
                cycleIdList = null;
            }

            var Model = findingAndRecommendationsRepository.GetFindingAdittional(operationNumber, Language.EN, Dimensions, Categories, Stages, cycleIdList);

            ViewBag.IsCurrentCycleTable = true;

            foreach (var AllValues in Model.FindingRecommendations)
            {
                ViewBag.IsCurrentCycleTable = AllValues.IsCurrentCycle;
            }

            var ListDimensions = findingAndRecommendationsRepository.GetDimensions(Language.EN);
            var ListCategories = findingAndRecommendationsRepository.GetCategories(Language.EN);
            var ListStages     = findingAndRecommendationsRepository.GetStages(Language.EN);
            var ListCycles     = findingAndRecommendationsRepository.GetCycles(Language.EN, operationNumber);

            ListDimensions.Reverse();
            ListDimensions.Add(new MW.Domain.Models.Architecture.MasterDefinitions.ConvergenceMasterDataModel()
            {
                ConvergenceMasterDataId = 0, Name = Localization.GetText("Dimensions")
            });

            ListDimensions.Reverse();
            ListCategories.Reverse();
            ListCategories.Add(new MW.Domain.Models.Architecture.MasterDefinitions.ConvergenceMasterDataModel()
            {
                ConvergenceMasterDataId = 0, Name = Localization.GetText("Categories")
            });

            ListCategories.Reverse();
            ListStages.Reverse();
            ListStages.Add(new MW.Domain.Models.Architecture.MasterDefinitions.ConvergenceMasterDataModel()
            {
                ConvergenceMasterDataId = 0, Name = Localization.GetText("Stages")
            });

            ListStages.Reverse();
            ListCycles.Reverse();
            ListCycles.RemoveAt(0);
            ListCycles.Reverse();
            ListCycles.Add(new FilterItemModel
            {
                ItemId = int.MaxValue, Name = Localization.GetText("All Cycles")
            });

            ListCycles.Add(new FilterItemModel
            {
                ItemId = 0, Name = Localization.GetText("Current Cycle")
            });

            ListCycles.Reverse();

            string[,] CategoriesDimensions = new string[2, ListDimensions.Count];
            int count = 0;

            foreach (var data_ in ListDimensions)
            {
                if (data_.ConvergenceMasterDataId == 0)
                {
                    CategoriesDimensions[0, count]  = data_.ConvergenceMasterDataId.ToString();
                    CategoriesDimensions[1, count] += "<option value='" + data_.ConvergenceMasterDataId + "' selected='selected'>" + Localization.GetText("Categories") + "</option>";
                }
                else
                {
                    CategoriesDimensions[1, count] += "<option value='0' selected='selected'>" + Localization.GetText("Categories") + "</option>";
                    var ListCategoriesFilter = findingAndRecommendationsRepository.GetCategoriesFilter(Language.EN, data_.ConvergenceMasterDataId).ToList();

                    foreach (var data__ in ListCategoriesFilter)
                    {
                        CategoriesDimensions[0, count]  = data_.ConvergenceMasterDataId.ToString();
                        CategoriesDimensions[1, count] += "<option value='" + data__.ConvergenceMasterDataId + "' >" + data__.Name + "</option>";
                    }
                }

                count++;
            }

            ViewBag.ListDimensions       = new SelectList(ListDimensions, "ConvergenceMasterDataID", "Name");
            ViewBag.ListCategories       = new SelectList(ListCategories, "ConvergenceMasterDataID", "Name");
            ViewBag.ListStages           = new SelectList(ListStages, "ConvergenceMasterDataID", "Name");
            ViewBag.ListCycles           = new SelectList(ListCycles, "ItemId", "Name");
            ViewBag.CategoriesDimensions = CategoriesDimensions;

            if (State != 0)
            {
                MessageConfiguration message = MessageHandler.setMessageFindingOverallProjectManagement(State, false, 2);
                ViewData["message"] = message;
            }

            ViewBag.isLessTaskFive = PCRHelpers.IsCurrentTaskLessThanFive(
                ReportsRepository, PCRWorkflowStatusRepository);
            ViewBag.RMAdministrator = IDBContext.Current.HasRole(Role.RM_ADMINISTRATOR);

            return(View(Model));
        }
        public virtual ActionResult DetailsDelays(string operationNumber, int State = 0, string Type = "0", string Name = "Name", string Solved = "null", string cycleIdList = null) //DETAILS: /Delays
        {
            if (cycleIdList == "null")
            {
                cycleIdList = null;
            }

            var ModelDelaysArchitecture = ClientDelayArchievementRepository.GetDelays(operationNumber, Language.EN, Type, Name, Solved, cycleIdList);

            var ListCycles = ClientDelayArchievementRepository.GetCycles(Language.EN, operationNumber);

            ViewBag.IsCurrentCycleTableOne = true;
            ViewBag.IsCurrentCycleTableTwo = true;

            foreach (var itemAchievementDelays in ModelDelaysArchitecture.AchievementDelays)
            {
                itemAchievementDelays.StateIsSolved = itemAchievementDelays.IsSolved == true?Localization.GetText("Yes") : Localization.GetText("No");

                ViewBag.IsCurrentCycleTableOne = itemAchievementDelays.IsCurrentCycle;
            }

            foreach (var itemOtherDelays in ModelDelaysArchitecture.OtherDelays)
            {
                itemOtherDelays.StateIsSolved = itemOtherDelays.IsSolved == true?Localization.GetText("Yes") : Localization.GetText("No");

                ViewBag.IsCurrentCycleTableTwo = itemOtherDelays.IsCurrentCycle;
            }

            if (State != 0)
            {
                MessageConfiguration message = MessageHandler.setMessageFindingDelays(State, false, 2);
                ViewData["message"] = message;
            }

            /*FILTER ELEMENTS*/
            var ListDelaysType = ClientDelayArchievementRepository.GetTypesDelay(Language.EN);
            Dictionary <int, string> ListOutputs  = new Dictionary <int, string>();
            Dictionary <int, string> ListOutcomes = new Dictionary <int, string>();

            ListOutputs.Add(0, Localization.GetText("Name"));
            ListOutcomes.Add(0, Localization.GetText("Name"));
            var ResultOP = ClientDelayArchievementRepository.GetListOutputs(operationNumber);
            var ResultOC = ClientDelayArchievementRepository.GetListOutComes(operationNumber);

            foreach (var data in ResultOP)
            {
                if (data.Key != 0)
                {
                    ListOutputs.Add(data.Key, data.Value);
                }
            }

            foreach (var data in ResultOC)
            {
                if (data.Key != 0)
                {
                    ListOutcomes.Add(data.Key, data.Value);
                }
            }

            var ListIsSolved = new Dictionary <string, string>();
            Dictionary <int, string> ListOutputsss = new Dictionary <int, string>();

            ListDelaysType.Reverse();
            ListDelaysType.Add(new MW.Domain.Models.Architecture.MasterDefinitions.ConvergenceMasterDataModel()
            {
                ParentConvergenceMasterDataId = -1, Name = @Localization.GetText("Type of delay")
            });
            ListDelaysType.Reverse();
            ListIsSolved.Add("null", Localization.GetText("Is the issue solved?"));
            ListIsSolved.Add(true.ToString(), Localization.GetText("Yes"));
            ListIsSolved.Add(false.ToString(), Localization.GetText("No"));
            ListCycles.Reverse();
            ListCycles.RemoveAt(0);
            ListCycles.Reverse();
            ListCycles.Add(new FilterItemModel {
                ItemId = int.MaxValue, Name = Localization.GetText("All Cycles")
            });
            ListCycles.Add(new FilterItemModel {
                ItemId = 0, Name = Localization.GetText("Current Cycle")
            });
            ListCycles.Reverse();
            ViewBag.ListDelaysType = new SelectList(ListDelaysType, "ConvergenceMasterDataID", "Name");
            ViewBag.ListIsSolved   = new SelectList(ListIsSolved, "key", "value");
            ViewBag.ListOutputs    = new SelectList(ListOutputs, "value", "value");
            ViewBag.ListOutcomes   = new SelectList(ListOutcomes, "value", "value");
            ViewBag.ListCycles     = new SelectList(ListCycles, "ItemId", "Name");

            /*FILTER ELEMENTS*/
            ViewBag.isLessTaskFive = PCRHelpers.IsCurrentTaskLessThanFive(
                ReportsRepository, PCRWorkflowStatusRepository);
            ViewBag.RMAdministrator = IDBContext.Current.HasRole(Role.RM_ADMINISTRATOR);

            return(View(ModelDelaysArchitecture));
        }
Exemplo n.º 6
0
        public virtual ActionResult Index(
            string operationNumber,
            int state         = 0,
            int filter        = 0,
            bool showInactive = false)
        {
            SynchronizationHelper.AccessToResources(
                RMIndicatorValues.CANCEL,
                RMIndicatorValues.URL_RM_IMPACTS,
                operationNumber,
                IDBContext.Current.UserLoginName);

            new IDB.Presentation.MVC4.Controllers.CommonDocument().Log(LogType.Debug,
                                                                       "MVC4(IMP_1S) - CALL WCF MODELS EVERNEXT",
                                                                       "FindOneOperationModel -> BEFORE = OPERATION NUMBER:{0} ",
                                                                       operationNumber);

            // Retrieve OperationModel
            var operationModel = _clientResultsMatrix
                                 .FindOneOperationModel(new OperationSpecification()
            {
                OperationNumber = operationNumber
            });

            new IDB.Presentation.MVC4.Controllers.CommonDocument().Log(LogType.Debug,
                                                                       "MVC4(IMP_1E) - CALL WCF MODELS EVERNEXT",
                                                                       "FindOneOperationModel -> AFTER = RESPONSE ",
                                                                       operationModel);

            // Retrieve ResultsMatrix associated to last PMR Cycle
            ResultsMatrixModel resultMatrixModel = null;

            // Get ResultsMatrix associated to last PMR Cycle
            if (operationModel != null)
            {
                operationModel.AccessedByAdministrator =
                    IDBContext.Current.HasRole(Role.RM_ADMINISTRATOR);
                ViewBag.isLessTaskFive = PCRHelpers.IsCurrentTaskLessThanFive(
                    ClientGenericRepository, PCRWorkflowStatusRepository);

                new IDB.Presentation.MVC4.Controllers.CommonDocument().Log(LogType.Debug,
                                                                           "MVC4(IMP_2S) - CALL WCF MODELS SERVICE",
                                                                           "GetResultsMatrixModel -> BEFORE = OPERATION NUMBER:{0} ",
                                                                           operationModel);

                if (!showInactive)
                {
                    resultMatrixModel = _cacheData.Get <ResultsMatrixModel>(_impactsCacheName) ??
                                        _cacheData.Add(_impactsCacheName,
                                                       _clientResultsMatrix.GetResultsMatrixModel(operationModel, showInactive),
                                                       _timeCachingVal);
                    resultMatrixModel.AccessedByAdministrator =
                        operationModel.AccessedByAdministrator;
                }
                else
                {
                    resultMatrixModel = _clientResultsMatrix
                                        .GetResultsMatrixModel(operationModel, showInactive);
                }

                resultMatrixModel.showInactiveImpacts = showInactive;
                PutResultMatrixEopInCache(_resultMatrixEOPCacheName, resultMatrixModel);

                new IDB.Presentation.MVC4.Controllers.CommonDocument().Log(LogType.Debug,
                                                                           "MVC4(IMP_2E) - CALL WCF MODELS SERVICE",
                                                                           "GetResultsMatrixModel -> AFTER = RESPONSE: ",
                                                                           resultMatrixModel);
            }

            ViewData["filter"] = filter;

            if (state != 0)
            {
                MessageConfiguration message = MessageHandler.setMessageRMImpacts(state, false, 1);
                ViewData["message"] = message;
            }

            if (resultMatrixModel != null)
            {
                resultMatrixModel.DEMLockReviewProcessData = _demLockModulesService
                                                             .BuildLockReviewProcessDEMDataModel(operationNumber);
            }

            return(View(resultMatrixModel));
        }
Exemplo n.º 7
0
        public virtual ActionResult Index(
            string operationNumber,
            string cycleIds     = null,
            string sectionIds   = null,
            string changeIds    = null,
            string subChangeIds = null,
            bool editView       = false)
        {
            var operation = _operationRepository.GetOne(o => o.OperationNumber == operationNumber, o => o.ResultsMatrices);

            ViewBag.isLessTaskFive = PCRHelpers.IsCurrentTaskLessThanFive(
                ClientGenericRepository, PCRWorkflowStatusRepository, operation.OperationId);

            ViewBag.RMAdministrator = IDBContext.Current.HasRole(Role.RM_ADMINISTRATOR);
            ViewBag.ModelIndicators = new LinkPredefinesIndicatorViewModel {
                Name = string.Empty
            };
            ResultsMatrixModel searchResults = null;

            if (string.IsNullOrEmpty(cycleIds))
            {
                searchResults = _clientResultsMatrixChanges.GetResultsMatrixModel(new OperationModel()
                {
                    OperationNumber         = operationNumber,
                    AccessedByAdministrator = IDBContext.Current.HasRole(Role.RM_ADMINISTRATOR)
                }, operation);

                if (editView)
                {
                    return(View("Edit", searchResults));
                }

                searchResults.DEMLockReviewProcessData = _demLockModulesService
                                                         .BuildLockReviewProcessDEMDataModel(operationNumber);

                return(View(searchResults));
            }

            List <int> selectedCycles = new List <int>();

            selectedCycles =
                cycleIds.Split(',').Select(x => int.Parse(x)).ToList <int>();
            List <int>             selectedSections = new List <int>();
            List <FilterItemModel> typesBySection   = new List <FilterItemModel>();

            if (!string.IsNullOrEmpty(sectionIds))
            {
                selectedSections =
                    sectionIds.Split(',').Select(x => int.Parse(x)).ToList <int>();
                typesBySection = _clientResultsMatrixChanges
                                 .GetMatrixChangeTypesBySectionId(
                    selectedSections,
                    IDBContext.Current.CurrentLanguage).ToList();
            }

            List <int>             selectedChanges  = new List <int>();
            List <FilterItemModel> subTypesByChange = new List <FilterItemModel>();

            if (!string.IsNullOrEmpty(changeIds))
            {
                selectedChanges =
                    changeIds.Split(',').Select(x => int.Parse(x)).ToList <int>();
                subTypesByChange = _clientResultsMatrixChanges
                                   .GetMatrixChangeSubTypesByChangeTypeId(
                    selectedChanges,
                    IDBContext.Current.CurrentLanguage).ToList();
            }

            List <int> selectedSubChanges = new List <int>();

            if (!string.IsNullOrEmpty(subChangeIds))
            {
                selectedSubChanges =
                    subChangeIds.Split(',').Select(x => int.Parse(x)).ToList <int>();
            }

            searchResults = _clientResultsMatrixChanges.Search(new ResultsMatrixModel()
            {
                OperationNumber         = operationNumber,
                PmrCycleIds             = selectedCycles,
                SectionIds              = selectedSections,
                TypeOfChangeIds         = selectedChanges,
                SubTypeOfChangeIds      = selectedSubChanges,
                AccessedByAdministrator = IDBContext.Current.HasRole(Role.RM_ADMINISTRATOR)
            }, operation);
            searchResults.PmrCycleIds        = selectedCycles;
            searchResults.SectionIds         = selectedSections;
            searchResults.TypeOfChangeIds    = selectedChanges;
            searchResults.SubTypeOfChangeIds = selectedSubChanges;
            searchResults.TypeOfChanges      = typesBySection;
            searchResults.SubtypeOfChanges   = subTypesByChange;
            if (editView)
            {
                return(View("Edit", searchResults));
            }

            searchResults.DEMLockReviewProcessData = _demLockModulesService
                                                     .BuildLockReviewProcessDEMDataModel(operationNumber);

            return(View(searchResults));
        }