Beispiel #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));
        }
Beispiel #2
0
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                ImpactModel impactModel = new ImpactModel();
                TryUpdateModel(impactModel, collection);

                var impact = Mapper.Map <ImpactModel, IImpact>(impactModel);
                _service.CreateImpact(impact);
                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
        public virtual ActionResult Reassign(int resultsMatrixId, int impactId, int impactIndicatorId, int intervalId, bool accessedByAdmin, bool isThirInterval)
        {
            ResultsMatrixModel resultModel = ClientResultsMatrix.FindOneModel(new IDB.MW.Domain.Contracts.Specifications.ResultsMatrixSpecification()
            {
                ResultsMatrixId = resultsMatrixId
            });

            // Get Interval
            var interval = ClientResultsMatrix.GetResultsMatrixModel(new OperationModel()
            {
                OperationNumber = resultModel.Operation.OperationNumber
            }).Interval;

            // Get all impacts associated to the current ResultsMatrix
            List <ImpactModel> impacts = resultModel.Impacts;

            // Set statement data
            ImpactModel currentImpact = impacts.Where(i => i.ImpactId == impactId).SingleOrDefault <ImpactModel>();

            // Remove current impact
            impacts.RemoveAll(i => i.ImpactId == impactId);

            ViewData["Statement"] = currentImpact.Statement;

            ViewData["Definition"] = currentImpact.ImpactIndicators.Where(ii => ii.ImpactIndicatorId == impactIndicatorId).SingleOrDefault <ImpactIndicatorModel>().Definition;

            ViewData["impactIndicatorId"] = impactIndicatorId;

            ViewData["resultsMatrixId"] = resultsMatrixId;

            ViewData["thirdIntervalReassignIndicatorMessage"] = Localization.GetText("TCM.RCMW.RegisterChangesMany.TextMessage");

            ViewData["accessedByAdmin"] = accessedByAdmin;

            ViewData["isThirInterval"] = isThirInterval;

            ViewData["intervalCategory"] = intervalId;

            resultModel.Impacts = null;

            // Set the imapcts to set in listbox
            resultModel.Impacts = impacts;

            return(PartialView(impacts));
        }
        public virtual ActionResult EditDetail(int impactIndicatorId)
        {
            ImpactIndicatorModel indicatorModel = ClientResultsMatrix.FindOneImpactIndicatorModel(new ImpactIndicatorSpecification()
            {
                ImpactIndicatorId = impactIndicatorId
            });

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

            bool isLinked = (indicatorModel.PredefinedIndicator == null) ? false : true;

            // Start third interval validation
            var operationNumber = ClientResultsMatrix.FindOneModel(new IDB.MW.Domain.Contracts.Specifications.ResultsMatrixSpecification()
            {
                ResultsMatrixId = impactModel.ResultsMatrixId
            }).Operation.OperationNumber;

            // Check if the administrator is accessing
            var accessedByAdministrator = true;

            var resultsMatrix = ClientResultsMatrix.GetResultsMatrixModel(new OperationModel()
            {
                OperationNumber = operationNumber, AccessedByAdministrator = accessedByAdministrator
            });

            // End third interval validation
            CustomEditImpactIndicatoModel editImpactIndicatoModel = new CustomEditImpactIndicatoModel
            {
                impact          = impactModel,
                impactIndicator = indicatorModel,
                IsLinkedToPredefinedIndicator = isLinked,
                IntervalId = resultsMatrix.Interval.IntervalId,
                AccessedByAdministrator = accessedByAdministrator,
                IsThirdInterval         = resultsMatrix.IsThirdInterval,
                OperationNumber         = operationNumber
            };

            return(View(editImpactIndicatoModel));
        }
        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 }));
        }