public virtual ActionResult DeleteDisaggregation(int resultsMatrixId, int impactDisaggregationId)
        {
            // Define Ajax response
            int code = 0;

            try
            {
                // Retrieve ImpactIndicator
                ImpactDisaggregationModel indicatorModel = ClientResultsMatrix.FindOneImpactDisaggregationModel(new ImpactDisaggregationSpecification()
                {
                    ImpactDisaggregationId = impactDisaggregationId
                });

                if (indicatorModel != null /*&& elementTypeModel != null && matrixChangeTypeModel != null*/)
                {
                    bool deleted = ClientResultsMatrix.DeleteDisaggregation(indicatorModel);

                    ImpactDisaggregationModel deletedModel = ClientResultsMatrix.FindOneImpactDisaggregationModel(new ImpactDisaggregationSpecification()
                    {
                        ImpactDisaggregationId = impactDisaggregationId
                    });

                    if (deleted == true && deletedModel == null)
                    {
                        code = 504;
                    }
                    else
                    {
                        code = 496;
                    }
                }
                else
                {
                    code = 496;
                }
            }
            catch (Exception)
            {
                code = 496;
            }

            var resultsMatrix = ClientResultsMatrix.FindOneModel(new IDB.MW.Domain.Contracts.Specifications.ResultsMatrixSpecification()
            {
                ResultsMatrixId = resultsMatrixId
            });

            return(RedirectToAction("Edit", "Impacts", new { operationId = resultsMatrix.OperationId, resultsMatrixId = resultsMatrixId, code = code }));
        }