public void AddResult(ResultData r) { Boolean match = false; int indx = -1; foreach (MainResults MaRe in results) { //match = (MaRe.Latitude == r.Latitude && MaRe.Longitude == r.Longitude); match = (MaRe.OrganizationLocationID == r.OrganizationLocationID); if (match) { indx = results.IndexOf(MaRe); break; } } if (!match) { MainResults mr = new MainResults(); mr.TaxID = new String[] { r.TaxID }; mr.NPI = new String[] { r.NPI }; mr.PracticeName = r.PracticeName; mr.ProviderName = new String[] { r.ProviderName }; mr.PracticeRangeMin = String.Format("{0:c0}", decimal.Parse(r.RangeMin)); mr.RangeMin = new String[] { r.RangeMin }; mr.PracticeRangeMax = String.Format("{0:c0}", decimal.Parse(r.RangeMax)); mr.RangeMax = new String[] { r.RangeMax }; mr.PracticeYourCostMin = String.Format("{0:c0}", decimal.Parse(r.YourCostMin)); mr.YourCostMin = new String[] { r.YourCostMin }; mr.PracticeYourCostMax = String.Format("{0:c0}", decimal.Parse(r.YourCostMax)); mr.YourCostMax = new String[] { r.YourCostMax }; mr.Latitude = r.Latitude; mr.Longitude = r.Longitude; mr.OrganizationLocationID = r.OrganizationLocationID; mr.LocationAddress1 = r.LocationAddress1; mr.LocationCity = r.LocationCity; mr.LocationState = r.LocationState; mr.LocationZip = r.LocationZip; mr.Distance = r.Distance; mr.NumericDistance = r.NumericDistance; mr.PracticeFairPrice = r.FairPrice; mr.FairPrice = new Boolean[] { r.FairPrice }; mr.HGRecognized = new Int32[] { r.HGRecognized }; switch (r.HGRecognized) { case -1: mr.PracticeHGRecognized = "N/A"; break; case 0: mr.PracticeHGRecognized = "0/1 Physicians"; break; case 1: mr.PracticeHGRecognized = "1/1 Physicians"; break; default: mr.PracticeHGRecognized = "N/A"; break; } mr.PracticeAvgRating = r.HGOverallRating; mr.HGOverallRating = new Double[] { r.HGOverallRating }; mr.HGPatientCount = new int[] { r.HGPatientCount }; results.Add(mr); } else { MainResults mr = results[indx]; String[] s = new String[mr.TaxID.Length + 1]; mr.TaxID.CopyTo(s, 0); s[s.Length - 1] = r.TaxID; mr.TaxID = (String[])s.Clone(); mr.NPI.CopyTo(s, 0); s[s.Length - 1] = r.NPI; mr.NPI = (String[])s.Clone(); mr.ProviderName.CopyTo(s, 0); s[s.Length - 1] = r.ProviderName; mr.ProviderName = (String[])s.Clone(); mr.RangeMin.CopyTo(s, 0); s[s.Length - 1] = r.RangeMin; mr.RangeMin = (String[])s.Clone(); mr.PracticeRangeMin = String.Format("{0:c0}", ((double.Parse(mr.PracticeRangeMin.Replace("$", "")) + double.Parse(r.RangeMin)) / 2.0)); mr.RangeMax.CopyTo(s, 0); s[s.Length - 1] = r.RangeMax; mr.RangeMax = (String[])s.Clone(); mr.PracticeRangeMax = String.Format("{0:c0}", ((double.Parse(mr.PracticeRangeMax.Replace("$", "")) + double.Parse(r.RangeMax)) / 2.0)); mr.YourCostMin.CopyTo(s, 0); s[s.Length - 1] = r.YourCostMin; mr.YourCostMin = (String[])s.Clone(); mr.PracticeYourCostMin = String.Format("{0:c0}", ((double.Parse(mr.PracticeYourCostMin.Replace("$", "")) + double.Parse(r.YourCostMin)) / 2.0)); mr.YourCostMax.CopyTo(s, 0); s[s.Length - 1] = r.YourCostMax; mr.YourCostMax = (String[])s.Clone(); mr.PracticeYourCostMax = String.Format("{0:c0}", ((double.Parse(mr.PracticeYourCostMax.Replace("$", "")) + double.Parse(r.YourCostMax)) / 2.0)); Boolean[] b = new Boolean[mr.FairPrice.Length + 1]; mr.FairPrice.CopyTo(b, 0); b[b.Length - 1] = r.FairPrice; mr.FairPrice = (Boolean[])b.Clone(); if (!mr.PracticeFairPrice && r.FairPrice) { mr.PracticeFairPrice = r.FairPrice; } Int32[] i32 = new Int32[mr.HGRecognized.Length + 1]; mr.HGRecognized.CopyTo(i32, 0); i32[i32.Length - 1] = r.HGRecognized; mr.HGRecognized = (Int32[])i32.Clone(); switch (r.HGRecognized) { case -1: //Do Nothing break; case 0: if (mr.PracticeHGRecognized == "N/A") { mr.PracticeHGRecognized = "0/0 Physicians"; } String[] str0 = mr.PracticeHGRecognized.Replace("Physicians", "").Trim().Split('/'); mr.PracticeHGRecognized = String.Format("{0}/{1} Physicians", str0[0], (Convert.ToInt32(str0[1]) + 1).ToString()); break; case 1: if (mr.PracticeHGRecognized == "N/A") { mr.PracticeHGRecognized = "0/0 Physicians"; } String[] str1 = mr.PracticeHGRecognized.Replace("Physicians", "").Trim().Split('/'); mr.PracticeHGRecognized = String.Format("{0}/{1} Physicians", (Convert.ToInt32(str1[0]) + 1).ToString(), (Convert.ToInt32(str1[1]) + 1).ToString()); break; default: break; } Double[] d = new Double[mr.HGOverallRating.Length + 1]; mr.HGOverallRating.CopyTo(d, 0); d[d.Length - 1] = r.HGOverallRating; mr.HGOverallRating = (Double[])d.Clone(); mr.PracticeAvgRating = ((mr.PracticeAvgRating + r.HGOverallRating) / 2.0); int[] i = new int[mr.HGPatientCount.Length + 1]; mr.HGPatientCount.CopyTo(i, 0); i[i.Length - 1] = r.HGPatientCount; mr.HGPatientCount = (int[])i.Clone(); results[indx] = mr; } }