/// <summary> /// saves ratings for setting AHP /// </summary> /// <param name="list">list of user pairweise ratings</param> /// <param name="issueId">issue id</param> /// <param name="userId">user who is performing operation</param> /// <returns>returns success if save was corrent, else detaild consistency error message for user</returns> public string SaveAHPAlternativeEvaluation(List <PairwiseComparisonRatingModel> list, int issueId, int userId) { PairwiseComparisonRatingModel pcrm = new PairwiseComparisonRatingModel(); List <PairwiseComparisonAC> entityList = pcrm.ToEntityList(list); return(PairwiseComparisonOp.SaveAlternativeComparison(issueId, userId, entityList)); }
/// <summary> /// returns list of pairwise comparisons /// if user has not made any comparisons yet then this method will construct empty comparisons /// else return is the comparisons made /// </summary> /// <param name="issueId">issue id</param> /// <param name="userId">user who is perfomring operation</param> /// <returns>list of pairwise comparisons</returns> public List <PairwiseComparisonRatingModel> GetPairwiseAlternativeRatings(int issueId, int userId) { PairwiseComparisonRatingModel pcacm = new PairwiseComparisonRatingModel(); List <PairwiseComparisonRatingModel> modelList = pcacm.ToModelList(PairwiseComparisonOp.GetAlternativeComparison(issueId, userId), pcacm); List <Criterion> cList = CriterionOp.GetIssueCriterions(issueId, userId); List <Alternative> aList = AlternativeOp.GetIssueAlternatives(issueId, userId); //if user already compared alternatives then return him that if (modelList != null && modelList.Count > 0) { foreach (PairwiseComparisonRatingModel model in modelList) { model.CriterionName = cList.Find(x => x.Id == model.CriterionId).Name; model.LeftAltName = aList.Find(x => x.Id == model.LeftAltId).Name; model.RightAltName = aList.Find(x => x.Id == model.RightAltId).Name; model.Value = model.Value.Replace("important", "preferred"); } return(modelList); } else // else construct the comparisons { modelList = new List <PairwiseComparisonRatingModel>(); foreach (Criterion crit in cList) { for (int i = 0; i < aList.Count; i++) { for (int j = i + 1; j < aList.Count; j++) { pcacm = new PairwiseComparisonRatingModel(); pcacm.CriterionId = crit.Id; pcacm.CriterionName = crit.Name; pcacm.LeftAltId = aList[i].Id; pcacm.LeftAltName = aList[i].Name; pcacm.RightAltId = aList[j].Id; pcacm.RightAltName = aList[j].Name; pcacm.Value = "Equally preferred"; pcacm.UserId = userId; modelList.Add(pcacm); } } } return(modelList); } }