Example #1
0
        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;
        }