public virtual ActionResult Delete( int impactId, int intervalId, bool accessedByAdmin, bool isThirInterval) { CustomDeleteImpactModel deleteImpactModel = new CustomDeleteImpactModel(); int totalRows = 0; ImpactModel currentImpact = _clientResultsMatrix.FindOneImpactModel( new ImpactSpecification() { ImpactId = impactId }); var existingImpacts = _clientResultsMatrix.FindAllImpactModelsBySpecification( totalRows, new ImpactSpecification() { ResultsMatrixId = currentImpact.ResultsMatrixId }, int.MaxValue, 0, null).ToList <ImpactModel>(); existingImpacts.Where(x => x.ImpactId == currentImpact.ImpactId).ForEach(x => x.Statement = "Delete"); existingImpacts.Sort((x, y) => x.Statement.CompareTo(y.Statement)); deleteImpactModel.currentImpact = currentImpact; deleteImpactModel.existingImpacts = existingImpacts.ToList(); deleteImpactModel.intervalId = intervalId; deleteImpactModel.resultsMatrixId = currentImpact.ResultsMatrixId; deleteImpactModel.AccessedByAdministrator = accessedByAdmin; if (intervalId == ResultsMatrixCodes.ThirdInterval || (accessedByAdmin && isThirInterval)) { deleteImpactModel.IsThirdInterval = isThirInterval; ViewData["message"] = Localization.GetText( "This change will be registered on the 'Changes to the Matrix' " + "section and you will be required to explain it. Would you like to proceed?"); } else { deleteImpactModel.IsThirdInterval = false; } deleteImpactModel.IsValidated = _clientResultsMatrix.IsValidateImpactByImpactIndicatorYearPlans(impactId); return(PartialView(deleteImpactModel)); }
public virtual ActionResult DeleteImpact(CustomDeleteImpactModel deleteModel) { int code = 0; var impact = _clientResultsMatrix.FindOneImpactModel( new ImpactSpecification() { ImpactId = deleteModel.currentImpact.ImpactId }); try { List <ImpactIndicatorModel> outcomes = new List <ImpactIndicatorModel>(); foreach (var outcomeIndicator in deleteModel.currentImpact.ImpactIndicators) { var currentOutcome = this._clientResultsMatrix.FindOneImpactIndicatorModel( new ImpactIndicatorSpecification { ImpactIndicatorId = outcomeIndicator.ImpactIndicatorId }); if (currentOutcome != null) { currentOutcome.ReassignToImpact = outcomeIndicator.ReassignToImpact; outcomes.Add(currentOutcome); } } deleteModel.currentImpact.ImpactIndicators = outcomes; _clientResultsMatrix.DeleteImpact( new ResultsMatrixModel { ResultsMatrixId = deleteModel.resultsMatrixId, AccessedByAdministrator = deleteModel.AccessedByAdministrator, IsThirdInterval = deleteModel.IsThirdInterval }, deleteModel.currentImpact, new IntervalModel() { IntervalId = deleteModel.intervalId }, IDBContext.Current.UserName); code = 506; } catch (Exception) { code = 404; throw; } var resultsMatrix = _clientResultsMatrix.FindOneModel( new ResultsMatrixSpecification() { ResultsMatrixId = impact.ResultsMatrixId }); _cacheData.Remove(_impactsCacheName, System.Web.Caching.CacheItemRemovedReason.Removed); return(RedirectToAction( "Edit", "Impacts", new { operationId = resultsMatrix.Operation.OperationId, resultsMatrixId = resultsMatrix.ResultsMatrixId, code = code })); }