public virtual ActionResult UpdateDetail(CustomEditOutcomeIndicatorModel updatedModel) { var indicatorModel = ClientResultsMatrix.FindOneOutcomeIndicatorModel( new OutcomeIndicatorSpecification { OutcomeIndicatorId = updatedModel.impactIndicator.OutcomeIndicatorId }); var impactModel = ClientResultsMatrix.FindOneOutcomeModel( new OutcomeSpecification { OutcomeId = indicatorModel.OutcomeId }); updatedModel.impactIndicator.AccessedByAdministrator = IDBContext.Current.HasRole(Role.RM_ADMINISTRATOR); updatedModel.impactIndicator.IsThirdInterval = updatedModel.IsThirdInterval; updatedModel.impactIndicator.IntervalId = updatedModel.IntervalId; ClientResultsMatrix.UpdateImpactIndicator( updatedModel.impactIndicator, IDBContext.Current.UserName); _cacheData.Remove(_outcomeIndicatorCacheName, System.Web.Caching.CacheItemRemovedReason.Removed); return(RedirectToAction( "Detail", "OutcomeIndicator", new { resultsMatrixId = impactModel.ResultsMatrixId, impactId = impactModel.OutcomeId, impactIndicatorId = updatedModel.impactIndicator.OutcomeIndicatorId })); }
public virtual ActionResult ReassignIndicator(CustomReassignOutcomeIndicatorModel reassignModel) { int code = 0; try { OutcomeIndicatorModel indicatorModel = ClientResultsMatrix.FindOneOutcomeIndicatorModel( new OutcomeIndicatorSpecification { OutcomeIndicatorId = reassignModel.OutcomeIndicatorId }); indicatorModel.AccessedByAdministrator = IDBContext.Current.HasRole(Role.RM_ADMINISTRATOR); indicatorModel.IsThirdInterval = reassignModel.IsThirdInterval; indicatorModel.IntervalId = reassignModel.IntervalId; OutcomeModel currentImpactModel = ClientResultsMatrix.FindOneOutcomeModel( new OutcomeSpecification { OutcomeId = indicatorModel.OutcomeId }); OutcomeModel newImpactModel = ClientResultsMatrix.FindOneOutcomeModel( new OutcomeSpecification { OutcomeId = reassignModel.ImpactId }); if (indicatorModel != null & currentImpactModel != null && newImpactModel != null) { ClientResultsMatrix.ReassignIndicator( currentImpactModel, newImpactModel, indicatorModel, IDBContext.Current.UserName); code = 503; } } catch (Exception) { code = 497; } _cacheData.Remove(_outcomeIndicatorCacheName, System.Web.Caching.CacheItemRemovedReason.Removed); _cacheData.Remove(_outcomesCacheName, System.Web.Caching.CacheItemRemovedReason.DependencyChanged); var resultsMatrix = ClientResultsMatrix.FindOneModel( new ResultsMatrixSpecification { ResultsMatrixId = reassignModel.ResultsMatrixId }); return(RedirectToAction( "Edit", "Outcomes", new { operationId = resultsMatrix.OperationId, resultsMatrixId = resultsMatrix.ResultsMatrixId, code = code })); }
public virtual ActionResult Reassign(int resultsMatrixId, int impactId, int impactIndicatorId) { // Check if the administrator is accessing var accessedByAdministrator = IDBContext.Current.HasRole(Role.RM_ADMINISTRATOR); // Get results matrix with interval data associated to administrator var lightResultModel = ClientResultsMatrix.GetLightResultsMatrixModel(new ResultsMatrixModel() { ResultsMatrixId = resultsMatrixId, AccessedByAdministrator = accessedByAdministrator }); // Set impact data OutcomeModel currentImpact = ClientResultsMatrix.FindOneOutcomeModel(new OutcomeSpecification() { OutcomeId = impactId }); // Get outcomes IDB.MW.Domain.Models.Architecture.ResultMatrix.Outcomes.ResultsMatrixModel resultModel = ClientResultsMatrix.FindOneModel(new ResultsMatrixSpecification() { ResultsMatrixId = resultsMatrixId }); List <OutcomeModel> outcomes = resultModel.Outcomes; // Remove current outcome outcomes.RemoveAll(i => i.OutcomeId == impactId); // Set reassign model properties CustomReassignOutcomeIndicatorModel reassignModel = new CustomReassignOutcomeIndicatorModel() { Statement = currentImpact.Statement, Definition = currentImpact.OutcomeIndicators.Where(ii => ii.OutcomeIndicatorId == impactIndicatorId).SingleOrDefault <OutcomeIndicatorModel>().Definition, OutcomeIndicatorId = impactIndicatorId, ResultsMatrixId = lightResultModel.ResultsMatrixId, AccessedByAdministrator = accessedByAdministrator, IsThirdInterval = lightResultModel.IsThirdInterval, ImpactId = impactId, Outcomes = outcomes, IntervalId = lightResultModel.Interval.IntervalId }; return(PartialView(reassignModel)); }
public virtual ActionResult EditDetail(int impactIndicatorId) { OutcomeIndicatorModel indicatorModel = ClientResultsMatrix.FindOneOutcomeIndicatorModel(new OutcomeIndicatorSpecification() { OutcomeIndicatorId = impactIndicatorId }); OutcomeModel impactModel = ClientResultsMatrix.FindOneOutcomeModel(new OutcomeSpecification() { OutcomeId = indicatorModel.OutcomeId }); bool isLinked = (indicatorModel.PredefinedIndicator == null) ? false : true; // Start third interval validation var operationNumber = ClientResultsMatrix.FindOneModel(new ResultsMatrixSpecification() { ResultsMatrixId = impactModel.ResultsMatrixId }).Operation.OperationNumber; // Check if the administrator is accessing var accessedByAdministrator = IDBContext.Current.HasRole(Role.RM_ADMINISTRATOR); var resultsMatrix = ClientResultsMatrix.GetResultsMatrixModel(new OperationModel() { OperationNumber = operationNumber, AccessedByAdministrator = accessedByAdministrator }); // End third interval validation CustomEditOutcomeIndicatorModel editImpactIndicatoModel = new CustomEditOutcomeIndicatorModel { impact = impactModel, impactIndicator = indicatorModel, IsLinkedToPredefinedIndicator = isLinked, IntervalId = resultsMatrix.Interval.IntervalId, AccessedByAdministrator = accessedByAdministrator, IsThirdInterval = resultsMatrix.IsThirdInterval, OperationNumber = operationNumber, IsTcmModule = false }; return(View(editImpactIndicatoModel)); }
public virtual ActionResult Detail(int resultsMatrixId, int impactId, int impactIndicatorId) { OutcomeModel impactModel = ClientResultsMatrix.FindOneOutcomeModel(new OutcomeSpecification() { OutcomeId = impactId }); var impactIndicatorModel = impactModel.OutcomeIndicators.Where(ii => ii.OutcomeIndicatorId == impactIndicatorId).SingleOrDefault <OutcomeIndicatorModel>(); var resultModel = ClientResultsMatrix.FindOneModel(new ResultsMatrixSpecification() { ResultsMatrixId = resultsMatrixId }); impactModel.OutcomeIndicators.Clear(); impactModel.OutcomeIndicators.Add(impactIndicatorModel); ViewData["operationNumber"] = resultModel.Operation.OperationNumber; var StateDraftId = ClientConvergenceMasterData.GetMasterDataId("VALIDATION_STAGE", "PMI_DRAFT"); var isDraft = false; if (resultModel.ValidationStageId == StateDraftId) { isDraft = true; } ViewBag.isDraft = isDraft; ViewBag.isEditable = ClientResultsMatrix.GetLightResultsMatrixModel(new ResultsMatrixModel() { ResultsMatrixId = resultModel.ResultsMatrixId }).isEditable; return(View(impactModel)); }