private void FillCriteriaMatch() { int _UserID = Convert.ToInt32(HttpContext.Current.User.Identity.Name); List <CriteriaMatch> _CriteriaMatch = new List <CriteriaMatch>(); _CriteriaMatch = new CriteriaMatch().GetCriteriaMatch(_UserID, Convert.ToInt32(OtherUserID)).ToList(); _CriteriaMatch = _CriteriaMatch.OrderByDescending(x => x.PointsAssigned).ToList(); foreach (CriteriaMatch _EachMatch in _CriteriaMatch) { if (_EachMatch.CriteriaType == 9) { //set distance range string PostCodeA = _EachMatch.OtherUser.ZipCode; string PostCodeB = _EachMatch.User.ZipCode; double?DistanceFrom = Distance.BetweenTwoPostCodesInMiles(PostCodeA, PostCodeB); if (DistanceFrom != null) { string _distance = string.Format("{0:0.00}", DistanceFrom); _EachMatch.OtherUserValue = _distance + " miles."; } else { _EachMatch.OtherUserValue = ""; } } if (_EachMatch.UserPreferences == "") { _EachMatch.UserPreferences = "No Answer"; } } decimal _TotalPointsAssigned = 0; decimal _TotalPointsAwarded = 0; foreach (var item in _CriteriaMatch) { _TotalPointsAssigned = _TotalPointsAssigned + item.PointsAssigned; _TotalPointsAwarded = _TotalPointsAwarded + item.PointsAwarded; } _CriteriaMatch = _CriteriaMatch.OrderBy(x => x.CriteriaName).OrderByDescending(x => x.PointsAssigned).ToList(); //.GroupBy(x => x.CriteriaName).OrderBy(x => x.First().CriteriaName).SelectMany(x => x).ToList(); // _CriteriaMatch.Add(new CriteriaMatch { Criteria_id = "", CriteriaName = "", CriteriaQuestion = "", CriteriaType = 0, UserPreferences = "", OtherUserValue = "", PointsAwarded = _TotalPointsAwarded, PointsAssigned = _TotalPointsAssigned, IsMatch = true }); dgCriteriaTable.DataSource = _CriteriaMatch; dgCriteriaTable.DataBind(); List <CriteriaMatch> _OtherUserCriteriaMatch = new List <CriteriaMatch>(); _OtherUserCriteriaMatch = new CriteriaMatch().GetCriteriaMatch(Convert.ToInt32(OtherUserID), _UserID).ToList(); _OtherUserCriteriaMatch = _OtherUserCriteriaMatch.OrderByDescending(x => x.PointsAssignedByOtherUser).ToList(); _OtherUserCriteriaMatchNew = new List <CriteriaMatch>(); foreach (CriteriaMatch _EachMatch in _OtherUserCriteriaMatch) { if (_EachMatch.CriteriaType == 9) { //set distance range string PostCodeA = _EachMatch.OtherUser.ZipCode; string PostCodeB = _EachMatch.User.ZipCode; double?DistanceFrom = Distance.BetweenTwoPostCodesInMiles(PostCodeA, PostCodeB); if (DistanceFrom != null) { string _distance = string.Format("{0:0.00}", DistanceFrom); _EachMatch.OtherUserValue = _distance + " miles."; } else { _EachMatch.OtherUserValue = ""; } } if (_EachMatch.OtherUserValue == "") { _EachMatch.OtherUserValue = "No Answer"; } bool _Isadd = false; if (_EachMatch.CriteriaName.ToLower().IndexOf("race/ethnicity") != -1) { _Isadd = true; } if (_EachMatch.CriteriaName.ToLower().IndexOf("hair color") != -1) { _Isadd = true; } if (_EachMatch.CriteriaName.ToLower().IndexOf("eye color") != -1) { _Isadd = true; } if (_EachMatch.CriteriaName.ToLower().IndexOf("salary") != -1 || _EachMatch.CriteriaName.ToLower().IndexOf("income") != -1) { _Isadd = true; } if (!_Isadd) { _OtherUserCriteriaMatchNew.Add(_EachMatch); } } decimal _TotalPointsAssigned2 = 0; decimal _TotalPointsAwarded2 = 0; foreach (var item in _OtherUserCriteriaMatch) { _TotalPointsAssigned2 = _TotalPointsAssigned2 + item.PointsAssigned; _TotalPointsAwarded2 = _TotalPointsAwarded2 + item.PointsAwarded; } _OtherUserCriteriaMatchNew = _OtherUserCriteriaMatchNew.OrderBy(x => x.CriteriaName).OrderByDescending(x => x.PointsAssigned).ToList(); _OtherUserCriteriaMatchNew.Add(new CriteriaMatch { Criteria_id = "", CriteriaName = "", CriteriaQuestion = "", CriteriaType = 0, UserPreferences = "", OtherUserValue = "", PointsAwarded = _TotalPointsAwarded2, PointsAssigned = _TotalPointsAssigned2, IsMatch = true, ShowMatch = true }); dgOtherUserCriteriaTable.DataSource = _OtherUserCriteriaMatchNew; dgOtherUserCriteriaTable.DataBind(); lblMutualMatch.InnerText = "Mutual Match: " + ((_TotalPointsAwarded + _TotalPointsAwarded2) / 2).ToString() + "%"; }