public static List <CriteriaMatch> GetRecommendedMatches(LineArgs source, LineArgs target) { var result = new List <CriteriaMatch>(); var sourceMessage = XmlDal.CacheModel.GetFile(source.Path).GetNetworkMessage(source.iLine); if (sourceMessage == null) { return(new List <CriteriaMatch>()); } var targetMessage = XmlDal.CacheModel.GetFile(target.Path).GetNetworkMessage(target.iLine); if (targetMessage == null) { return(result); } foreach (var sourceValues in sourceMessage.Source.Values) { foreach (var targetValues in targetMessage.Source.Values) { if (sourceValues.Name == targetValues.Name || (sourceValues.Value == targetValues.Value && !string.IsNullOrEmpty(sourceValues.Value) && !string.IsNullOrEmpty(targetValues.Value))) { var model = new CriteriaMatch { SourceName = sourceValues.Name, SourceType = "N/A", SourceValue = sourceValues.Value, TargetName = targetValues.Name, TargetType = "N/A", TargetValue = targetValues.Value }; var exist = result.Any(item => String.Equals(item.SourceName, model.SourceName, StringComparison.CurrentCultureIgnoreCase) && String.Equals(item.SourceType, model.SourceType, StringComparison.CurrentCultureIgnoreCase) && String.Equals(item.SourceValue, model.SourceValue, StringComparison.CurrentCultureIgnoreCase) && String.Equals(item.TargetName, model.TargetName, StringComparison.CurrentCultureIgnoreCase) && String.Equals(item.TargetType, model.TargetType, StringComparison.CurrentCultureIgnoreCase) && String.Equals(item.TargetValue, model.TargetValue, StringComparison.CurrentCultureIgnoreCase)); if (!exist) { result.Add(model); } } } } return(result); }
protected void Page_Load(object sender, EventArgs e) { try { Response.ContentType = "image/png"; string SitePath = ConfigurationManager.AppSettings["SitePath"].ToString(); if (Request.QueryString["OtherUserID"] != null && Request.QueryString["Type"] != null) { if (HttpContext.Current.User.Identity.Name != "") { int _UserID = Convert.ToInt32(HttpContext.Current.User.Identity.Name); int OtherUserID = Convert.ToInt32(Request.QueryString["OtherUserID"]); decimal _CriteriaMatch = new CriteriaMatchPercentage().GetMatchPercentage(_UserID, OtherUserID); imgCriteriaTotal.Src = SitePath + "web/service/OverallMatchImage?p=" + _CriteriaMatch.ToString(); decimal _CriteriaTheyMatchYou = new CriteriaMatch()._GetCriteriaSinglePercentage(OtherUserID, _UserID); imgCriteriaTheyMatchYou.Src = SitePath + "web/service/OverallMatchImage?p=" + _CriteriaTheyMatchYou.ToString(); decimal _CriteriaYouMatchThem = new CriteriaMatch()._GetCriteriaSinglePercentage(_UserID, OtherUserID); imgCriteriaYouMatchThem.Src = SitePath + "web/service/OverallMatchImage?p=" + _CriteriaYouMatchThem.ToString(); decimal _PhilosophyMatch = new QuestionsMatchPercentage().GetMatchPercentage(_UserID, OtherUserID); imgPhilosophyTotal.Src = SitePath + "web/service/OverallMatchImage?p=" + _PhilosophyMatch.ToString(); decimal _PhilosophyTheyMatchYou = new QuestionsMatch()._GetQuestionsSinglePercentage(OtherUserID, _UserID); imgPhilosophyTheyMatchYou.Src = SitePath + "web/service/OverallMatchImage?p=" + _PhilosophyTheyMatchYou.ToString(); decimal _PhilosophyYouMatchThem = new QuestionsMatch()._GetQuestionsSinglePercentage(_UserID, OtherUserID); imgPhilosophyYouMatchThem.Src = SitePath + "web/service/OverallMatchImage?p=" + _PhilosophyYouMatchThem.ToString(); //bind userpics User _GetUser = new User().GetUserDetails(_UserID); User _GetOtherUser = new User().GetUserDetails(OtherUserID); DivThisUserName.InnerHtml = _GetUser.LoginName; DivOtherUserNane.InnerHtml = _GetOtherUser.LoginName; if (_GetUser != null && _GetOtherUser != null) { if (_GetUser.ProfilePhoto != null) { UserPic.Src = new Utils().GetPhotoPCTPath(_GetUser.ProfilePhoto.PhotoID, Page.Request); } else { if (_GetUser.Gender == 1) { UserPic.Src = SitePath + "web/images/M.png"; } else { UserPic.Src = SitePath + "web/images/F.png"; } } if (_GetOtherUser.ProfilePhoto != null) { OtherUserPic.Src = new Utils().GetPhotoPCTPath(_GetOtherUser.ProfilePhoto.PhotoID, Page.Request); } else { if (_GetOtherUser.Gender == 1) { OtherUserPic.Src = SitePath + "web/images/M.png"; } else { OtherUserPic.Src = SitePath + "web/images/F.png"; } } } //show and Hide criteria or questions string _Type = Request.QueryString["Type"].ToString(); if (_Type == "c") { divCriteria.Visible = true; } else { divQuestions.Visible = true; } } } } catch (Exception ex) { } }
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() + "%"; }