public IEnumerable <AbTestMessage> GetRunningAbTestMessages(string query, string sortArgument, int startRows, int maxRows) { if (!sortArgument.StartsWith("StartTime")) { sortArgument = "StartTime DESC"; } List <MessageItem> messages = this.GetMessages(query); if ((messages == null) || !messages.Any <MessageItem>()) { return(new List <AbTestMessage>()); } messages = messages.Sort <MessageItem>(sortArgument).Skip <MessageItem>(startRows).Take <MessageItem>(maxRows).ToList <MessageItem>(); Guid[] messageCampaigns = messages.Where <MessageItem>(delegate(MessageItem message) { return(!message.CampaignId.IsNull); }).Select <MessageItem, Guid>(delegate(MessageItem message) { return(message.CampaignId.ToGuid()); }).ToArray <Guid>(); List <AbnTestResult> source = this.analyticsDataGateway.GetAbnTestWinners(messageCampaigns) ?? new List <AbnTestResult>(); Guid bestCampaignId = this.GetBestCampaignId(); List <AbTestMessage> list3 = new List <AbTestMessage>(); using (List <MessageItem> .Enumerator enumerator = messages.GetEnumerator()) { Func <AbnTestResult, bool> predicate = null; MessageItem message; while (enumerator.MoveNext()) { message = enumerator.Current; if (predicate == null) { predicate = delegate(AbnTestResult e) { return(e.CampaignId == message.CampaignId.ToGuid()); }; } AbnTestResult result = (source.Count > 0) ? source.FirstOrDefault <AbnTestResult>(predicate) : null; AbTestMessage message2 = new AbTestMessage(); message2.ID = message.ID; message2.Name = message.InnerItem.DisplayName; message2.CurrentlyWinning = this.GetTestValueIndex(message, (result == null) ? 0 : result.TestCandidateIndex); message2.Value = (result == null) ? 0 : result.Value; message2.StartTime = message.StartTime; AbTestMessage item = message2; bool flag = (message.CampaignId.ToGuid() == bestCampaignId) && (item.Value > 0); item.IsBest = flag; List <string> list4 = new List <string>(); list4.Add("Value"); item.IsBestFieldsNames = flag ? list4 : new List <string>(); list3.Add(item); } } return(list3); }
public IEnumerable<AbTestMessage> GetRunningAbTestMessages(string query, string sortArgument, int startRows, int maxRows) { if (!sortArgument.StartsWith("StartTime")) { sortArgument = "StartTime DESC"; } List<MessageItem> messages = this.GetMessages(query); if ((messages == null) || !messages.Any<MessageItem>()) { return new List<AbTestMessage>(); } messages = messages.Sort<MessageItem>(sortArgument).Skip<MessageItem>(startRows).Take<MessageItem>(maxRows).ToList<MessageItem>(); Guid[] messageCampaigns = messages.Where<MessageItem>(delegate(MessageItem message) { return !message.CampaignId.IsNull; }).Select<MessageItem, Guid>(delegate(MessageItem message) { return message.CampaignId.ToGuid(); }).ToArray<Guid>(); List<AbnTestResult> source = this.analyticsDataGateway.GetAbnTestWinners(messageCampaigns) ?? new List<AbnTestResult>(); Guid bestCampaignId = this.GetBestCampaignId(); List<AbTestMessage> list3 = new List<AbTestMessage>(); using (List<MessageItem>.Enumerator enumerator = messages.GetEnumerator()) { Func<AbnTestResult, bool> predicate = null; MessageItem message; while (enumerator.MoveNext()) { message = enumerator.Current; if (predicate == null) { predicate = delegate(AbnTestResult e) { return e.CampaignId == message.CampaignId.ToGuid(); }; } AbnTestResult result = (source.Count > 0) ? source.FirstOrDefault<AbnTestResult>(predicate) : null; AbTestMessage message2 = new AbTestMessage(); message2.ID = message.ID; message2.Name = message.InnerItem.DisplayName; message2.CurrentlyWinning = this.GetTestValueIndex(message, (result == null) ? 0 : result.TestCandidateIndex); message2.Value = (result == null) ? 0 : result.Value; message2.StartTime = message.StartTime; AbTestMessage item = message2; bool flag = (message.CampaignId.ToGuid() == bestCampaignId) && (item.Value > 0); item.IsBest = flag; List<string> list4 = new List<string>(); list4.Add("Value"); item.IsBestFieldsNames = flag ? list4 : new List<string>(); list3.Add(item); } } return list3; }