private static SendServiceCallEntity GetSendBatch(AccountEntity account) { using (var dataBinding = new MessageDataAccessor()) { var settings = dataBinding.GetSendSettings(); if (settings != null) { DateTime cutoffTime = TypeSafety.GetValue<DateTime>(ConfigurationManager.AppSettings["CutoffTime"], DateTime.Parse("20:00")); DateTime startTime = TypeSafety.GetValue<DateTime>(ConfigurationManager.AppSettings["StartTime"], DateTime.Parse("08:00")); if (DateTime.Compare(DateTime.Now, cutoffTime) > 0) { settings.DefaultTime = startTime.ToString("HH:mm"); } } SendServiceCallEntity data = new SendServiceCallEntity() { Account = account, Settings = settings }; return data; } }
private static void AddMessagesToServiceCallList(List<SendServiceCallEntity> dataList, SendServiceCallEntity data, List<MessageEntity> entries) { // Only add item to list if it contains messages. if (entries.Count() > 0) { foreach (var entry in entries) { data.Entries.Add(entry); } dataList.Add(data); } }
private static void ProcessMessagesToServiceCall(List<SendServiceCallEntity> dataList, AccountEntity account, ref SendServiceCallEntity data, ref int counter, ref List<MessageEntity> entries, MessageEntity message) { message.HasPrefix = true; entries.Add(message); if (++counter == 1000) { AddMessagesToServiceCallList(dataList, data, entries); entries = new List<MessageEntity>(); counter = 0; data = GetSendBatch(account); } }
private static DataSet CreateSendSettings(SendServiceCallEntity account) { DataSet tempDataSet = null; DataTable tempDataTable = null; DataSet dataSet = null; try { tempDataSet = new DataSet("senddata"); tempDataTable = new DataTable("settings"); tempDataTable.Columns.Add("live"); // OPTIONAL - True/False (default - true) tempDataTable.Columns.Add("return_credits"); // OPTIONAL - True/False tempDataTable.Columns.Add("return_msgs_success_count"); // OPTIONAL - True/False (default - false) tempDataTable.Columns.Add("return_msgs_failed_count"); // OPTIONAL - True/False (default - false) tempDataTable.Columns.Add("return_entries_success_status"); // OPTIONAL - True/False (default - false) tempDataTable.Columns.Add("return_entries_failed_status"); // OPTIONAL - True/False (default - false) tempDataTable.Columns.Add("default_senderid"); // OPTIONAL - 11 Char alphanumeric or 15 char numeric (default - Repliable) tempDataTable.Columns.Add("default_date"); // REQUIRED - dd/MMM/yyyy tempDataTable.Columns.Add("default_time"); // REQUIRED - HH:mm tempDataTable.Columns.Add("default_data1"); // OPTIONAL - "" tempDataTable.Columns.Add("default_data2"); // OPTIONAL - "" tempDataTable.Columns.Add("default_flash"); // OPTIONAL - True/False (default - false) tempDataTable.Columns.Add("default_type"); // OPTIONAL - SMS / WPUSH / VCARD / PORT (default - SMS) tempDataTable.Columns.Add("default_costcentre"); // OPTIONAL - "" DataRow mainRow = tempDataTable.NewRow(); mainRow["live"] = account.Settings.IsLive; mainRow["return_credits"] = account.Settings.ReturnCredits; mainRow["return_msgs_success_count"] = account.Settings.ReturnMessageSuccessCount; mainRow["return_msgs_failed_count"] = account.Settings.ReturnMessageFailedCount; mainRow["return_entries_success_status"] = account.Settings.ReturnEntriesSuccessStatus; mainRow["return_entries_failed_status"] = account.Settings.ReturnEntriesFailedStatus; mainRow["default_senderid"] = account.Settings.DefaultSender; mainRow["default_date"] = account.Settings.DefaultDate; mainRow["default_time"] = account.Settings.DefaultTime; mainRow["default_data1"] = account.Settings.DefaultText1; mainRow["default_data2"] = account.Settings.DefaultText2; mainRow["default_flash"] = account.Settings.Flash; mainRow["default_type"] = account.Settings.Type; mainRow["default_costcentre"] = account.Settings.CostCentre; tempDataTable.Rows.Add(mainRow); tempDataSet.Tables.Add(tempDataTable); dataSet = tempDataSet; tempDataTable = null; tempDataSet = null; } finally { if (tempDataTable != null) { tempDataTable.Dispose(); } if (tempDataSet != null) { tempDataSet.Dispose(); } } return dataSet; }