コード例 #1
0
        public async Task <ActionResult> ListUnfilledAlternativeComparisons()
        {
            ViewBag.Title = "Unfilled alternative comparisons";

            var caltcomps = await _alternativeComparisonService.GetUnfilledAsync((Guid)Session["ChoiceID"]);

            var _caltcomps = new List <AlternativeComparisonMvcModel>();
            IDictionary <Guid, string> CritNames = (IDictionary <Guid, string>)Session["CriteriaNames"];
            IDictionary <Guid, string> AltNames  = (IDictionary <Guid, string>)Session["AlternativesNames"];

            foreach (IAlternativeComparisonModel altcomp in caltcomps)
            {
                Guid altID1 = altcomp.AlternativeID1;
                Guid altID2 = altcomp.AlternativeID2;

                double newaltratio = 0;

                AlternativeComparisonMvcModel ac = new AlternativeComparisonMvcModel
                {
                    CriteriaID       = altcomp.CriteriaID,
                    CriteriaName     = CritNames[altcomp.CriteriaID],
                    AlternativeID1   = altID1,
                    AlternativeName1 = AltNames[altID1],
                    AlternativeID2   = altID2,
                    AlternativeName2 = AltNames[altID2],
                    Flipped          = false,
                    AlternativeRatio = newaltratio
                };

                _caltcomps.Add(ac);
            }
            if (!_caltcomps.Any())
            {
                return(RedirectToAction("ListAlternatives", "Alternative", new { page = Session["Page"] }));
            }

            return(View(_caltcomps));
        }
コード例 #2
0
        public async Task <ActionResult> ListAlternativeComparisons(int page)
        {
            ViewBag.Title = "Alternative comparisons";
            if (page < 1)
            {
                page = 1;
            }
            Session["Page"] = page;

            var caltcomps = await _alternativeComparisonService.GetByAlternativeIdAsync((Guid)Session["AlternativeID"], page);

            var  _caltcomps = new List <AlternativeComparisonMvcModel>();
            Guid altID      = (Guid)Session["AlternativeID"];
            IDictionary <Guid, string> CritNames = (IDictionary <Guid, string>)Session["CriteriaNames"];
            IDictionary <Guid, string> AltNames  = (IDictionary <Guid, string>)Session["AlternativesNames"];

            foreach (IAlternativeComparisonModel altcomp in caltcomps)
            {
                Guid altID1 = altcomp.AlternativeID1;
                Guid altID2 = altcomp.AlternativeID2;
                Guid critID = altcomp.CriteriaID;

                if (altID1 == altID)
                {
                    //OVO S NUOOM je samo za test
                    double newaltratio;
                    if (altcomp.AlternativeRatio != 0)
                    {
                        newaltratio = altcomp.AlternativeRatio;
                        //Pretvara u oblik koji je prihvatljiv sliderima
                        if (newaltratio < 1)
                        {
                            newaltratio = -(Math.Round((1 / altcomp.AlternativeRatio)) - 1);
                        }
                        else
                        {
                            newaltratio -= 1;
                        }
                    }
                    else
                    {
                        newaltratio = 0;
                    }
                    AlternativeComparisonMvcModel ac = new AlternativeComparisonMvcModel
                    {
                        CriteriaID       = altcomp.CriteriaID,
                        CriteriaName     = CritNames[critID],
                        AlternativeID1   = altID1,
                        AlternativeName1 = AltNames[altID1],
                        AlternativeID2   = altID2,
                        AlternativeName2 = AltNames[altID2],
                        Flipped          = false,
                        AlternativeRatio = newaltratio
                    };

                    _caltcomps.Add(ac);
                }
                else
                {
                    double newaltratio;
                    if (altcomp.AlternativeRatio != 0)
                    {
                        newaltratio = 1 / altcomp.AlternativeRatio;
                        //OVO SA NULOM POSLJE OBRISAT
                        //Pretvara u oblik koji je prihvatljiv sliderima
                        if (newaltratio < 1)
                        {
                            newaltratio = -(Math.Round(1 / newaltratio) - 1);
                        }
                        else
                        {
                            newaltratio -= 1;
                        }
                    }
                    else
                    {
                        newaltratio = 0;
                    }

                    AlternativeComparisonMvcModel ac = new AlternativeComparisonMvcModel
                    {
                        CriteriaID       = altcomp.CriteriaID,
                        CriteriaName     = CritNames[critID],
                        AlternativeID1   = altID2,
                        AlternativeName1 = AltNames[altID2],
                        AlternativeID2   = altID1,
                        AlternativeName2 = AltNames[altID1],
                        Flipped          = true,
                        AlternativeRatio = newaltratio
                    };

                    _caltcomps.Add(ac);
                }
            }
            if (!_caltcomps.Any() && page > 1)
            {
                Session["Page"] = page - 1;
                return(RedirectToAction("ListAlternativeComparisons", "AlternativeComparison", new { page = Session["Page"] }));
            }

            return(View(_caltcomps));
        }