private DispatchedMessageInfo BuildDispatchMessageInfo(MessageItem message, PlanData planData, VisitData visitData)
 {
     MessageStateInfo info = new MessageStateInfo(message);
     DispatchedMessageInfo info3 = new DispatchedMessageInfo();
     info3.ID = info.ID;
     info3.Name = info.Name;
     info3.MessageType = info.Type;
     info3.Date = info.StartDate;
     info3.State = info.Status;
     DispatchedMessageInfo info2 = info3;
     if (planData != null)
     {
         DateTime time;
         DateTime time2;
         PlanStatistics planStatistics = AnalyticsFactory.Instance.GetPlanStatistics(planData);
         AnalyticsHelper.TryGetCampaignDates(message.CampaignId.ToGuid(), out time, out time2);
         info2.Sent = (time != time2) ? planStatistics.GetTotal() : 0;
         info2.OpenRate = planStatistics.GetOpenRate();
         info2.ClickRate = planStatistics.GetClickRate();
     }
     if (visitData != null)
     {
         info2.ValuePerVisit = visitData.ValuePerVisit;
         info2.Value = visitData.Value;
     }
     return info2;
 }
 private BestMessageInfo CreateRow(MessageItem message, MessageData data)
 {
     MessageStateInfo info = new MessageStateInfo(message);
     BestMessageInfo info2 = new BestMessageInfo();
     info2.ID = info.ID;
     info2.CleanID = info.CleanID;
     info2.Name = info.Name;
     info2.Value = data.Value;
     info2.ValuePerVisit = data.ValuePerVisit;
     info2.VisitsPerEmail = data.VisitsPerEmail;
     info2.ValuePerEmail = data.ValuePerEmail;
     return info2;
 }
        private bool messageSentByContextUser(MessageStateInfo messageInfo)
        {
            MessageItem message = Factory.GetMessage(messageInfo.ID);
            string currentUserName = Sitecore.Context.User.Name;
            string dispatcherUserName = message.InnerItem.Statistics.CreatedBy;

            if (currentUserName.ToLowerInvariant() == dispatcherUserName.ToLowerInvariant() || Sitecore.Context.User.IsAdministrator)
            {
                return true;
            }
            return false;
        }