コード例 #1
0
        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
            }));
        }
コード例 #2
0
        public virtual ActionResult ReassignIndicator(
            int resultsMatrixId,
            int impactId,
            int impactIndicatorId,
            int intervalId,
            bool accessedByAdmin,
            bool isThirInterval)
        {
            int code = 0;

            try
            {
                ImpactIndicatorModel indicatorModel = ClientResultsMatrix.FindOneImpactIndicatorModel(
                    new ImpactIndicatorSpecification()
                {
                    ImpactIndicatorId = impactIndicatorId
                });

                ImpactModel currentImpactModel = ClientResultsMatrix.FindOneImpactModel(
                    new ImpactSpecification()
                {
                    ImpactId = indicatorModel.ImpactId
                });

                ImpactModel newImpactModel = ClientResultsMatrix.FindOneImpactModel(
                    new ImpactSpecification()
                {
                    ImpactId = impactId
                });

                if (indicatorModel != null && currentImpactModel != null && newImpactModel != null)
                {
                    IntervalModel interval = new IntervalModel()
                    {
                        IntervalId = intervalId
                    };
                    ClientResultsMatrix.ReassignIndicator(
                        new ResultsMatrixModel()
                    {
                        ResultsMatrixId         = resultsMatrixId,
                        AccessedByAdministrator = accessedByAdmin,
                        IsThirdInterval         = isThirInterval,
                        Interval = interval
                    },
                        currentImpactModel,
                        newImpactModel,
                        indicatorModel,
                        IDBContext.Current.UserName);
                    code = 503;
                }
            }
            catch (Exception)
            {
                code = 497;
            }

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

            _cacheData.Remove(_impactsIndicatorCacheName, System.Web.Caching.CacheItemRemovedReason.DependencyChanged);

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