protected void LoadItems()
        {
            dgLogs.VirtualItemCount = (int)EmailLogController.GetItemCount();
            if (dgLogs.VirtualItemCount == 0)
            {
                phHasItems.Visible   = false;
                phHasNoItems.Visible = true;
            }
            else
            {
                phHasItems.Visible   = true;
                phHasNoItems.Visible = false;

                int CurrentPageIndex = 0;
                if (!int.TryParse(hfCurrentPageIndex_dgLogs.Value, out CurrentPageIndex))
                {
                    CurrentPageIndex = 0;
                }
                if (CurrentPageIndex < 0)
                {
                    CurrentPageIndex = 0;
                }
                dgLogs.CurrentPageIndex = CurrentPageIndex;

                int limit  = dgLogs.PageSize;
                int offset = dgLogs.CurrentPageIndex * dgLogs.PageSize;

                EmailLogCollection items = EmailLogController.GetLogItems(
                    EmailLog.Columns.DeliveryDate, dg.Sql.SortDirection.DESC,
                    limit, offset);

                BindList(items);
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            int CurrentPageIndex = 0;

            if (!int.TryParse(hfCurrentPageIndex_dgLogs.Value, out CurrentPageIndex))
            {
                CurrentPageIndex = 0;
            }
            if (CurrentPageIndex < 0)
            {
                CurrentPageIndex = 0;
            }
            dgLogs.CurrentPageIndex = CurrentPageIndex;

            action = Request.QueryString[@"action"];
            if (action == @"preview")
            {
                Int64 EmailLogId = 0;
                Int64.TryParse(Request.QueryString[@"EmailLogId"], out EmailLogId);
                EmailLog logItem = EmailLogController.GetLogItem(EmailLogId);
                if (logItem != null)
                {
                    Response.Clear();
                    Response.Write(logItem.Body);
                    Response.End();
                    return;
                }
            }

            LoadItems();
        }
 protected void lbDelete_Click(object sender, CommandEventArgs e)
 {
     if (e.CommandName.Equals("doDelete"))
     {
         if (Permissions.UserHasAnyPermissionIn(SessionHelper.UserId(), "sys_edit_emails"))
         {
             Int64 EmailLogId = Convert.ToInt64(e.CommandArgument);
             EmailLogController.DeleteLog(EmailLogId);
             Master.MessageCenter.DisplaySuccessMessage(EmailTemplatesStrings.GetText("MessageLogDeleted"));
         }
         else
         {
             Master.MessageCenter.DisplayWarningMessage(GlobalStrings.GetText(@"NoPermissionsForAction"));
         }
     }
 }
        protected void ExportToExcel(int limit, int offset)
        {
            EmailLogCollection coll = EmailLogController.GetLogItems(EmailLog.Columns.DeliveryDate, dg.Sql.SortDirection.DESC, limit, offset);

            System.Data.DataTable dt = new System.Data.DataTable();

            dt.Columns.Add(new System.Data.DataColumn(EmailTemplatesStrings.GetText("LogNumber"), typeof(Int64)));
            dt.Columns.Add(new System.Data.DataColumn(GlobalStrings.GetText("Date"), typeof(string)));
            dt.Columns.Add(new System.Data.DataColumn(GlobalStrings.GetText("Status"), typeof(string)));
            dt.Columns.Add(new System.Data.DataColumn(EmailTemplatesStrings.GetText("Subject"), typeof(string)));
            dt.Columns.Add(new System.Data.DataColumn(EmailTemplatesStrings.GetText("From"), typeof(string)));
            dt.Columns.Add(new System.Data.DataColumn(EmailTemplatesStrings.GetText("Recipient"), typeof(string)));
            dt.Columns.Add(new System.Data.DataColumn(EmailTemplatesStrings.GetText("CC"), typeof(string)));
            dt.Columns.Add(new System.Data.DataColumn(EmailTemplatesStrings.GetText("BCC"), typeof(string)));
            dt.Columns.Add(new System.Data.DataColumn(EmailTemplatesStrings.GetText("Priority"), typeof(string)));
            dt.Columns.Add(new System.Data.DataColumn(EmailTemplatesStrings.GetText("Content"), typeof(string)));
            dt.Columns.Add(new System.Data.DataColumn(EmailTemplatesStrings.GetText("Exception"), typeof(string)));

            foreach (EmailLog item in coll)
            {
                System.Data.DataRow row = dt.NewRow();
                row[0]  = item.EmailLogId;
                row[1]  = item.DeliveryDate.ToString(@"dd/MM/yyyy HH:mm:ss");
                row[2]  = GetStatus(item.Status);
                row[3]  = item.Subject;
                row[4]  = item.FromEmail + (string.IsNullOrEmpty(item.FromName) ? string.Empty : @" - " + item.FromName);
                row[5]  = item.ToList;
                row[6]  = item.CcList;
                row[7]  = item.BccList;
                row[8]  = GetMailPriority(item.MailPriority);
                row[9]  = item.Body.Replace(@"<br />", "\r\n").StripHtml();
                row[10] = item.Exception;
                dt.Rows.Add(row);
            }

            SpreadsheetWriter ex = SpreadsheetWriter.FromDataTable(dt, true, true);

            Response.Clear();
            Response.AddHeader(@"content-disposition", @"attachment;filename=EmailLogsExport_" + DateTime.UtcNow.ToString(@"yyyy_MM_dd_HH_mm_ss") + "." + ex.FileExtension);
            Response.Charset         = @"UTF-8";
            Response.ContentEncoding = System.Text.Encoding.UTF8;
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.ContentType = ex.FileContentType;
            Response.BinaryWrite(System.Text.Encoding.UTF8.GetPreamble());
            Response.Write(ex.ToString());
            Response.End();
        }