Example #1
0
        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));
        }
Example #2
0
        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
            }));
        }