/// <summary> /// /// </summary> /// <param name="issueId">issue id</param> /// <param name="userId">user who is performing this operation</param> /// <returns>list of alternatives</returns> public List <AlternativeModel> GetIssueAlternatives(int issueId, int userId) { AlternativeModel am = new AlternativeModel(); List <AlternativeModel> list = am.ToModelList(AlternativeOp.GetIssueAlternatives(issueId, userId), am); return(list); }
/// <summary> /// updates alternatives for an issue /// </summary> /// <param name="updatedAlternatives">existing alternatives</param> /// <param name="deletedAlternatives">deleted alternatives</param> /// <param name="userId">user who is performing this operation</param> public void UpdateAlternatives(List <AlternativeModel> updatedAlternatives, List <int> deletedAlternatives, int userId) { AlternativeModel am = new AlternativeModel(); List <Alternative> updateList = am.ToEntityList(updatedAlternatives.Where(x => x.Id > 0).ToList()); List <Alternative> addedList = am.ToEntityList(updatedAlternatives.Where(x => x.Id == -1).ToList()); AlternativeOp.DeleteAlternatives(deletedAlternatives, userId); AlternativeOp.UpdateAlternatives(updateList, userId); AlternativeOp.AddAlternatives(addedList, userId); }
/// <summary> /// returns a list of alternatives to an issue /// </summary> /// <param name="issueId"></param> /// <param name="userId"></param> /// <returns></returns> public List <AlternativeModel> GetIssueAlternatives(int issueId, int userId) { AlternativeModel am = new AlternativeModel(); List <AlternativeModel> list = am.ToModelList(AlternativeOp.GetIssueAlternatives(issueId, userId), am); List <CommentModel> comments = GetComments(issueId, userId); foreach (AlternativeModel a in list) { a.Comments = comments.Where(x => x.Type == "Alternative" + a.Id).ToList(); } return(list); }
/// <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); } }