public virtual ActionResult Delete( int impactId, int intervalId, bool accessedByAdmin, bool isThirInterval) { string user = IDBContext.Current.UserLoginName; Logger.GetLogger().WriteMessage( "OutcomesController", string.Format("I am {0}, accessAdmin: {1}", user, accessedByAdmin)); CustomDeleteOutcomeModel deleteImpactModel = new CustomDeleteOutcomeModel(); int totalRows = 0; OutcomeModel currentImpact = _clientResultsMatrix.FindOneOutcomeModel( new OutcomeSpecification() { OutcomeId = impactId }); var existingImpacts = _clientResultsMatrix.FindAllOutcomeModelsBySpecification( totalRows, new OutcomeSpecification() { ResultsMatrixId = currentImpact.ResultsMatrixId }, int.MaxValue, 0, null).ToList <OutcomeModel>(); existingImpacts.Where(x => x.OutcomeId == currentImpact.OutcomeId).ForEach(x => x.Statement = "Delete"); existingImpacts.Sort((x, y) => x.Statement.CompareTo(y.Statement)); deleteImpactModel.currentImpact = currentImpact; deleteImpactModel.existingImpacts = existingImpacts.ToList <OutcomeModel>(); deleteImpactModel.intervalId = intervalId; deleteImpactModel.resultsMatrixId = currentImpact.ResultsMatrixId; if (intervalId == ResultsMatrixCodes.ThirdInterval || (accessedByAdmin && isThirInterval)) { deleteImpactModel.AccessedByAdministrator = accessedByAdmin; deleteImpactModel.IsThirdInterval = isThirInterval; ViewData["message"] = Localization.GetText("TCM.RCMW.RegisterChangesMany.TextMessage"); } else { deleteImpactModel.AccessedByAdministrator = accessedByAdmin; deleteImpactModel.IsThirdInterval = false; } deleteImpactModel.IsValidated = ClientResultsMatrix.IsValidateOutcomeBYOutcomeIndicatorYearPlans(impactId); return(PartialView(deleteImpactModel)); }
public virtual ActionResult DeleteOutcome(CustomDeleteOutcomeModel deleteModel) { var code = 0; var impact = _clientResultsMatrix.FindOneOutcomeModel( new OutcomeSpecification { OutcomeId = deleteModel.currentImpact.OutcomeId }); var operation = _clientResultsMatrix.FindOneModel( new ResultsMatrixSpecification { ResultsMatrixId = impact.ResultsMatrixId }); try { List <OutcomeIndicatorModel> outcomes = new List <OutcomeIndicatorModel>(); foreach (var outcomeIndicator in deleteModel.currentImpact.OutcomeIndicators) { var currentOutcome = this._clientResultsMatrix.FindOneOutcomeIndicatorModel( new OutcomeIndicatorSpecification { OutcomeIndicatorId = outcomeIndicator.OutcomeIndicatorId }); if (currentOutcome != null) { currentOutcome.ReassignToImpact = outcomeIndicator.ReassignToImpact; outcomes.Add(currentOutcome); } } deleteModel.currentImpact.OutcomeIndicators = outcomes; _clientResultsMatrix.DeleteImpact( new ResultsMatrixModel { ResultsMatrixId = deleteModel.resultsMatrixId, AccessedByAdministrator = deleteModel.AccessedByAdministrator, IsThirdInterval = deleteModel.IsThirdInterval }, deleteModel.currentImpact, new IntervalModel { IntervalId = deleteModel.intervalId }, IDBContext.Current.UserName); _cacheData.Remove(_outcomesCacheName, System.Web.Caching.CacheItemRemovedReason.Removed); code = 505; } catch (Exception) { code = 495; } return(RedirectToAction( "Index", "Outcomes", new { operationNumber = operation.Operation.OperationNumber, state = code, filter = 0 })); }