using framework_business;
using framework_library;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace scheduler
{
class Program
{
private static StreamWriter _LogWriter;
private static string LogPath = String.Empty;
private static string LogFile = String.Empty;
static void Main(string[] args)
{
framework_library.EnvBootstrap.Load(AppDomain.CurrentDomain.BaseDirectory);
if (args != null && args.Length >0)
{
if (args[0].Contains("googlesheetimport"))
{
var googleSheetImports = new GoogleSheetImports();
googleSheetImports.ExecuteGoogleSheetImportMethods(args);
LogWriter.DeleteOldLog("GoogleSheetImport", -14);
return;
}
}
else
{
HandlePaletteScheduler();
}
}
private static void HandlePaletteScheduler()
{
try
{
//setup culture and settigns
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(ConfigurationManager.AppSettings["Locale"], true);
System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern = ConfigurationManager.AppSettings["ShortDateFormat"];
System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();
nfi.CurrencySymbol = ConfigurationManager.AppSettings["CurrencySymbol"];
nfi.CurrencyPositivePattern = 2;
nfi.CurrencyNegativePattern = 9;
nfi.CurrencyDecimalDigits = 2;
nfi.CurrencyDecimalSeparator = ConfigurationManager.AppSettings["DecimalSeparator"];
nfi.CurrencyGroupSeparator = ConfigurationManager.AppSettings["GroupSeparator"];
System.Threading.Thread.CurrentThread.CurrentCulture.NumberFormat = nfi;
if (!Directory.Exists(Application.StartupPath + "\\logs\\"))
Directory.CreateDirectory(Application.StartupPath + "\\logs\\");
LogPath = Application.StartupPath + "\\logs\\";
// Delete files older than 14 days in folder
LogWriter.DeleteOldLog("", -14);
LogFile = "Scheduler_Log" + DateTime.Now.ToString("yyyyMMdd HH-mm-ss") + ".txt";
_LogWriter = new StreamWriter(LogPath + LogFile);
LogStatus("Starting of Palette scheduler...");
//handle instance creation
//TO DO
//handle campaigns
//if (ConfigurationManager.AppSettings["campaignHour"] != null)
//{
// int thisHour = DateTime.Now.Hour;
// int configHour = Convert.ToInt32(ConfigurationManager.AppSettings["campaignHour"].ToString());
// if (thisHour == configHour)
// {
LogStatus("campaign process started... ");
HandleCampaigns();
// }
//}
//handle loyalty
if (ConfigurationManager.AppSettings["loyaltyEmailHour"] != null)
{
int thisHour = DateTime.Now.Hour;
int thisMinute = DateTime.Now.Minute;
int configHour = Convert.ToInt32(ConfigurationManager.AppSettings["loyaltyEmailHour"].ToString());
if (thisHour == configHour && thisMinute < 5)
{
LogStatus("loyalty process started... ");
HandleLoyalty();
}
}
//handle transaction lock
LogStatus("transaction lock check started... ");
HandleTransactionLock();
//handle mediswitch queued responses
LogStatus("mediswitch queued responses process started... ");
HandleMediswitch();
//CVH 2019-06-05 Surface Data Import
//handle surface data import
LogStatus("surface data import process started... ");
HandleSurfaceDataImport();
}
catch (Exception ex)
{
LogStatus(ex.Message);
}
finally
{
LogStatus("Palette scheduler complete.. ");
_LogWriter.Close();
}
}
///
/// handle transaction lock
///
private static void HandleTransactionLock()
{
try
{
DataTable databases = GetPaletteDatabases();
//enumerate eacgh palette database
foreach (DataRow dbrow in databases.Rows)
{
string dbName = dbrow["name"].ToString();
oSetup _setup = new oSetup();
foreach (oSetup setup in utils.ConvertDataTableToList(GetSetup(dbName), typeof(oSetup)))
{
_setup = setup;
break;
}
if (_setup.GetType().GetProperty("isTransactionLock") != null
&& _setup.isTransactionLock
&& _setup.GetType().GetProperty("transactionLockDay") != null
&& _setup.transactionLockDay == DateTime.Now.Day)
{
LogStatus("processing transaction lock for " + dbName + ".. ");
TransactionLock transactionLock = new TransactionLock(dbName);
LogStatus(transactionLock.LockTransactions());
}
}
}
catch (Exception ex)
{
LogStatus(ex.Message);
}
}
///
/// handle mediswitch queued responces
///
private static void HandleMediswitch()
{
try
{
DataTable databases = GetPaletteDatabases();
//enumerate eacgh palette database
foreach (DataRow dbrow in databases.Rows)
{
string dbName = dbrow["name"].ToString();
oSetup _setup = new oSetup();
foreach (oSetup setup in utils.ConvertDataTableToList(GetSetup(dbName), typeof(oSetup)))
{
_setup = setup;
break;
}
if (_setup.GetType().GetProperty("isMediswitch") != null && _setup.isMediswitch)
{
LogStatus("processing mediswitch queued responses for " + dbName + ".. ");
//CVH 2018-02-19 Add additional logging, doesn't seem to be processing delayed responses.
MediSwitch mediswitch = new MediSwitch(dbName);
if (mediswitch.isOnline())
{
LogStatus("mediswitch is online.");
mediswitch.ProcessDelayed(_LogWriter);
LogStatus("mediswitch processing complete.");
}
else
{
LogStatus("mediswitch is NOT online.");
}
}
}
}
catch (Exception ex)
{
LogStatus(ex.Message);
}
}
///
/// handle loyalty emails
///
private static void HandleLoyalty()
{
try
{
DataTable databases = GetPaletteDatabases();
//enumerate each palette database
foreach (DataRow dbrow in databases.Rows)
{
string dbName = dbrow["name"].ToString();
oSetup _setup = new oSetup();
foreach (oSetup setup in utils.ConvertDataTableToList(GetSetup(dbName), typeof(oSetup)))
{
_setup = setup;
break;
}
if (_setup.GetType().GetProperty("isLoyalty") != null && _setup.isLoyalty &&
_setup.GetType().GetProperty("loyaltyEmailRecipients") != null && !string.IsNullOrEmpty(_setup.loyaltyEmailRecipients))
{
LogStatus("processing loyalty email for " + dbName + ".. ");
Loyalty loyalty = new Loyalty(dbName);
LogStatus(loyalty.SendLoyaltyMembers(_setup.loyaltyEmailRecipients));
}
}
}
catch (Exception ex)
{
LogStatus(ex.Message);
}
}
///
/// handle surface data import
///
private static void HandleSurfaceDataImport()
{
try
{
DataTable databases = GetPaletteDatabases();
//enumerate eacgh palette database
foreach (DataRow dbrow in databases.Rows)
{
try
{
string dbName = dbrow["name"].ToString();
//TEMPORARY REMOVE FOR LIVE
//if (dbName != "Framework_CAPI-1_Demo")
// continue;
oSetup _setup = new oSetup();
foreach (oSetup setup in utils.ConvertDataTableToList(GetSetup(dbName), typeof(oSetup)))
{
_setup = setup;
break;
}
LogStatus("processing surface data import for " + dbName + ".. ");
if (!Directory.Exists(Application.StartupPath + "\\SurfaceDataImport\\" + _setup.code))
continue;
SurfaceDataImport import = new SurfaceDataImport(dbName, _setup);
LogStatus(import.Process(Application.StartupPath + "\\SurfaceDataImport\\" + _setup.code));
}
catch (Exception ex)
{
LogStatus(ex.Message);
}
}
}
catch (Exception ex)
{
LogStatus(ex.Message);
}
}
///
/// Method to handle campaigns for each palette intance
///
public static void HandleCampaigns()
{
try
{
DataTable databases = GetPaletteDatabases();
//enumerate each palette database
foreach (DataRow dbrow in databases.Rows)
{
string dbName = dbrow["name"].ToString();
oSetup _setup = new oSetup();
foreach (oSetup setup in utils.ConvertDataTableToList(GetSetup(dbName), typeof(oSetup)))
{
_setup = setup;
break;
}
string webPath = String.Empty;
if (_setup.securePath != string.Empty)
webPath = _setup.securePath;
else
webPath = "http://" + _setup.code + ".mypalette.co.za";
LogStatus("processing campaigns for " + dbName + ".. ");
Campaigns campaigns = new Campaigns(dbName, _setup, webPath);
//process campaigns
campaigns.Process();
//DataTable campaignTable = GetCampaigns(dbName);
////enumerate each campaign
//foreach (oCampaign campaign in utils.ConvertDataTableToList(campaignTable, typeof(oCampaign)))
//{
// bool useCampaign = false;
// if (campaign.nextSend.Date < DateTime.Now.AddDays(1).Date)
// {
// if (campaign.isRecurring && campaign.lastSent.Date < DateTime.Now.Date)
// useCampaign = true;
// else if (campaign.lastSent.Year < 2016)//not recurrign but never sent before so lets send it
// {
// useCampaign = true;
// }
// }
// if (useCampaign)
// {
// LogStatus("processing campaign " + campaign.campaignTitle + ".. ");
// switch (campaign.campaignType)
// {
// #region subscriber communications
// case 0://subscriber communication
// switch (campaign.messageType)
// {
// case 1://email
// foreach (oSubscriber sub in utils.ConvertDataTableToList(GetSubcribers(dbName), typeof(oSubscriber)))
// {
// LogStatus("Sending email to " + sub.name + "...");
// oEmail email = new oEmail();
// email.fromAddress = _setup.communicationEmail;
// email.toAddress = sub.email;
// email.Body = campaign.campaignBody;
// email.Subject = campaign.campaignTitle;
// email.Body = email.Body.Replace("{name}", sub.name);
// email.Body = email.Body.Replace("src=\"/images", "src=\"" + webPath + "/images");
// email.Body = email.Body.Replace("{WebAddress}", webPath);
// oCampaignMessage msg = new oCampaignMessage();
// msg.campaignId = campaign.recId;
// msg.message = email.Body;
// msg.messageType = 1;
// msg.mobile = "";
// msg.dateSent = DateTime.Now;
// if (communication.SendAnEmail(email))
// {
// msg.status = 1;
// msg.statusCode = 0;
// msg.statusDisplay = "email sent OK";
// }
// else
// {
// msg.status = -1;
// msg.statusCode = -1;
// msg.statusDisplay = "failed to send the email";
// }
// LogStatus(msg.statusDisplay);
// SaveCampaignMessage(dbName, msg);
// }
// break;
// case 2://sms
// foreach (oSubscriberSMS sub in utils.ConvertDataTableToList(GetSubcribersSMS(dbName), typeof(oSubscriberSMS)))
// {
// LogStatus("Sending sms to " + sub.name + "...");
// string SMSMessage = campaign.campaignBody;
// SMSMessage = SMSMessage.Replace("{name}", sub.name);
// oCampaignMessage msg = new oCampaignMessage();
// msg.campaignId = campaign.recId;
// msg.message = SMSMessage;
// msg.messageType = 2;
// msg.mobile = sub.mobile;
// msg.dateSent = DateTime.Now;
// msg.status = 1;
// long smsResult = xSendEasy.SendSMS(handler.ReturnConfigAppSetting("smsU"), handler.ReturnConfigAppSetting("smsP"), sub.mobile, SMSMessage);
// if (smsResult >= 0)
// {
// msg.statusCode = 0;
// msg.statusDisplay = "sms sent OK";
// }
// else
// {
// msg.statusCode = Convert.ToInt32(smsResult);
// msg.statusDisplay = xSendEasy.ReturnErrorDetail(msg.statusCode);
// }
// LogStatus(msg.statusDisplay);
// SaveCampaignMessage(dbName, msg);
// }
// break;
// }
// break;
// #endregion
// #region appointment reminders
// case 1://appointemnt reminder
// foreach (oCalendarEvent calEvnt in utils.ConvertDataTableToList(GetCalendarEvents(dbName), typeof(oCalendarEvent)))
// {
// //get attendees for this event
// foreach (oUser usr in utils.ConvertDataTableToList(GetUsersForCalendar(calEvnt.calendarId, calEvnt.users, dbName, _setup), typeof(oUser)))
// {
// oCampaignMessage msg = new oCampaignMessage();
// LogStatus("Sending event reminder to " + usr.name + "...");
// switch (campaign.messageType)
// {
// case 1://email
// oEmail email = new oEmail();
// email.fromAddress = _setup.communicationEmail;
// email.toAddress = usr.email;
// email.Body = campaign.campaignBody;
// email.Subject = campaign.campaignTitle;
// email.Body = email.Body.Replace("{name}", usr.name);
// email.Body = email.Body.Replace("src=\"/images", "src=\"" + webPath + "/images");
// email.Body = email.Body.Replace("{WebAddress}", webPath);
// msg.campaignId = campaign.recId;
// msg.message = email.Body;
// msg.messageType = 1;
// msg.mobile = "";
// msg.dateSent = DateTime.Now;
// if (communication.SendAnEmail(email))
// {
// msg.status = 1;
// msg.statusCode = 0;
// msg.statusDisplay = "email sent OK";
// }
// else
// {
// msg.status = -1;
// msg.statusCode = -1;
// msg.statusDisplay = "failed to send the email";
// }
// LogStatus(msg.statusDisplay);
// SaveCampaignMessage(dbName, msg);
// break;
// case 2://sms
// string SMSMessage = campaign.campaignBody;
// SMSMessage = SMSMessage.Replace("{name}", usr.name);
// SMSMessage = SMSMessage.Replace("{startDate}", calEvnt.start.ToString("dd/MM/yyyy"));
// SMSMessage = SMSMessage.Replace("{startTime}", calEvnt.start.ToString("HH:mmtt"));
// SMSMessage = SMSMessage.Replace("{customer}", _setup.customer);
// msg.campaignId = campaign.recId;
// msg.message = SMSMessage;
// msg.messageType = 2;
// msg.mobile = usr.tel;
// msg.dateSent = DateTime.Now;
// msg.status = 1;
// long smsResult = xSendEasy.SendSMS(handler.ReturnConfigAppSetting("smsU"), handler.ReturnConfigAppSetting("smsP"), usr.tel, SMSMessage);
// if (smsResult >= 0)
// {
// msg.statusCode = 0;
// msg.statusDisplay = "sms sent OK";
// }
// else
// {
// msg.statusCode = Convert.ToInt32(smsResult);
// msg.statusDisplay = xSendEasy.ReturnErrorDetail(msg.statusCode);
// }
// LogStatus(msg.statusDisplay);
// SaveCampaignMessage(dbName, msg);
// break;
// }
// }
// }
// break;
// #endregion
// }
// //update campaign after send to all recipients
// campaign.dateUpdated = DateTime.Now;
// campaign.lastSent = DateTime.Now;
// if (campaign.isRecurring)
// {
// switch (campaign.interval)
// {
// case 1://daily
// campaign.nextSend = DateTime.Now.AddDays(1);
// break;
// case 2://monthly
// campaign.nextSend = DateTime.Now.AddMonths(1);
// break;
// }
// }
// //Update Campaign
// if (UpdateCampaign(dbName, campaign))
// {
// LogStatus("campaign " + campaign.campaignTitle + " has been successfully processed.");
// }
// }
//}
}
}
catch (Exception ex)
{
LogStatus(ex.Message);
}
}
///
/// Datatable of Setup
///
///
public static DataTable GetSetup(string dbName)
{
LogStatus("get setup " + dbName);
DataTable result = new DataTable();
SqlCommand command = new SqlCommand();
try
{
string query = "SELECT * FROM pal_Setup ";
command = CreateCommand(dbName, query);
DataSet ds = dataTier.ReturnMethods.ReturnDataSet(ref command);
if (ds.Tables.Count > 0)
result = ds.Tables[0];
}
catch (Exception ex)
{
LogStatus("get setup error: " + ex.Message);
Console.WriteLine(ex.Message);
}
finally
{
dataTier.CommandMethods.CompleteSQLCommand(ref command);
}
return result;
}
/////
///// Datatable of Campigns for a database
/////
/////
//public static DataTable GetCampaigns(string dbName)
//{
// DataTable result = new DataTable();
// SqlCommand command = new SqlCommand();
// try
// {
// string query = "SELECT * FROm pal_Campaign WHERE isActive = '1' AND (isRecurring = '1' OR YEAR(lastSent) < 2015) ";
// command = CreateCommand(dbName, query);
// DataSet ds = dataTier.ReturnMethods.ReturnDataSet(ref command);
// if (ds.Tables.Count > 0)
// result = ds.Tables[0];
// }
// catch (Exception ex)
// {
// Console.WriteLine(ex.Message);
// }
// finally
// {
// dataTier.CommandMethods.CompleteSQLCommand(ref command);
// }
// return result;
//}
///
/// Datatable of Subscribers for Email
///
///
//public static DataTable GetSubcribers(string dbName)
//{
// DataTable result = new DataTable();
// SqlCommand command = new SqlCommand();
// try
// {
// string query = "SELECT * FROm pal_Subscriber WHERE isActive = '1' ";
// command = CreateCommand(dbName, query);
// DataSet ds = dataTier.ReturnMethods.ReturnDataSet(ref command);
// if (ds.Tables.Count > 0)
// result = ds.Tables[0];
// }
// catch (Exception ex)
// {
// Console.WriteLine(ex.Message);
// }
// finally
// {
// dataTier.CommandMethods.CompleteSQLCommand(ref command);
// }
// return result;
//}
///
/// Datatable of Subscribers for SMS
///
///
//public static DataTable GetSubcribersSMS(string dbName)
//{
// DataTable result = new DataTable();
// SqlCommand command = new SqlCommand();
// try
// {
// string query = "SELECT * FROm pal_SubscriberSMS WHERE isActive = '1' ";
// command = CreateCommand(dbName, query);
// DataSet ds = dataTier.ReturnMethods.ReturnDataSet(ref command);
// if (ds.Tables.Count > 0)
// result = ds.Tables[0];
// }
// catch (Exception ex)
// {
// Console.WriteLine(ex.Message);
// }
// finally
// {
// dataTier.CommandMethods.CompleteSQLCommand(ref command);
// }
// return result;
//}
///
/// Datatable of Calendar Events
///
///
//public static DataTable GetCalendarEvents(string dbName)
//{
// DataTable result = new DataTable();
// SqlCommand command = new SqlCommand();
// try
// {
// int eventTypeID = 0;
// string q = "Select recId FROM pal_CalendarEventType Where name LIKE '%Appointment%' ";
// command = CreateCommand(dbName, q);
// eventTypeID = dataTier.ReturnMethods.ReturnIntValue(ref command);
// dataTier.CommandMethods.CompleteSQLCommand(ref command);
// string query = "SELECT * FROm pal_CalendarEvent WHERE calendarEventTypeId = " + eventTypeID + " AND (start > '" + utils.fixDate(DateTime.Now.AddDays(1).Date) + "' AND start < '" + utils.fixDate(DateTime.Now.AddDays(2).Date) + "') ";
// command = CreateCommand(dbName, query);
// DataSet ds = dataTier.ReturnMethods.ReturnDataSet(ref command);
// if (ds.Tables.Count > 0)
// result = ds.Tables[0];
// }
// catch (Exception ex)
// {
// Console.WriteLine(ex.Message);
// }
// finally
// {
// dataTier.CommandMethods.CompleteSQLCommand(ref command);
// }
// return result;
//}
///
/// Datatable of Users
///
///
//public static DataTable GetUsers(string users)
//{
// DataTable result = new DataTable();
// SqlCommand command = new SqlCommand();
// try
// {
// string query = "SELECT * FROm pal_User WHERE recId In (" + users + ") ";
// command = CreateCommand("Framework_EVOL-1", query);
// DataSet ds = dataTier.ReturnMethods.ReturnDataSet(ref command);
// if (ds.Tables.Count > 0)
// result = ds.Tables[0];
// }
// catch (Exception ex)
// {
// Console.WriteLine(ex.Message);
// }
// finally
// {
// dataTier.CommandMethods.CompleteSQLCommand(ref command);
// }
// return result;
//}
///
/// Datatable of Users
///
///
//public static DataTable GetUsersForCalendar(int calendarId, string userIds, string dbName, oSetup _setup)
//{
// DataTable result = new DataTable();
// SqlCommand command = new SqlCommand();
// try
// {
// //get module for this calendar
// string modQ = "Select * FROM pal_CalendarEventModule WHERE calendarId = " + calendarId + " ";
// command = CreateCommand(dbName, modQ);
// DataSet ds = dataTier.ReturnMethods.ReturnDataSet(ref command);
// dataTier.CommandMethods.CompleteSQLCommand(ref command);
// foreach (DataRow row in ds.Tables[0].Rows)
// {
// if (row["moduleId"].ToString() == "3")
// {
// result = GetUsers(userIds);
// }
// else if (row["moduleId"].ToString() == "10")
// {
// command = CreateCommand(dbName, "");
// command.CommandType = CommandType.StoredProcedure;
// command.CommandText = "sp_GetSurfaceCalendarUsersByIDs";
// command.Parameters.Add(new SqlParameter("@SurfaceID", row["entityId"].ToString()));
// command.Parameters.Add(new SqlParameter("@NameField", row["entityNameField"].ToString()));
// command.Parameters.Add(new SqlParameter("@SurnameField", row["entitySurnameField"].ToString()));
// command.Parameters.Add(new SqlParameter("@EmailField", row["entityEmailField"].ToString()));
// command.Parameters.Add(new SqlParameter("@MobileField", row["entityMobileField"].ToString()));
// command.Parameters.Add(new SqlParameter("@ItemIDs", userIds));
// DataSet data = dataTier.ReturnMethods.ReturnDataSet(ref command);
// command.Parameters.Clear();
// ArrayList usrList = new ArrayList();
// if (data.Tables.Count > 0)
// {
// foreach (DataRow uRow in data.Tables[0].Rows)
// {
// oUser usr = new oUser();
// usr.customerCode = _setup.code;
// usr.recId = int.Parse(uRow[0].ToString());
// usr.name = uRow[3].ToString();
// usr.surname = uRow[4].ToString();
// usr.email = uRow[5].ToString();
// usr.tel = uRow[6].ToString();
// usrList.Add(usr);
// }
// }
// result = utils.ConvertListToDataTable(usrList);
// }
// }
// }
// catch (Exception ex)
// {
// Console.WriteLine(ex.Message);
// }
// finally
// {
// dataTier.CommandMethods.CompleteSQLCommand(ref command);
// }
// return result;
//}
///
/// Datatable of Databases
///
///
public static DataTable GetPaletteDatabases()
{
DataTable result = new DataTable();
SqlCommand command = new SqlCommand();
try
{
string query = "SELECT name FROM master.dbo.sysdatabases Where name LIKE 'Framework_%'";
command = CreateCommand("master", query);
DataSet ds = dataTier.ReturnMethods.ReturnDataSet(ref command);
if (ds.Tables.Count > 0)
result = ds.Tables[0];
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
dataTier.CommandMethods.CompleteSQLCommand(ref command);
}
return result;
}
///
/// Create a SQL Commane for a database name
///
///
///
public static SqlCommand CreateCommand(string dbName, string query)
{
string conn = handler.ReturnConfigAppSetting("conn");
conn = conn.Replace("{catalog}", dbName);
SqlConnection con = new SqlConnection(conn);
con.Open();
SqlCommand result = new SqlCommand(query, con);
return result;
}
///
/// Save Campaign Message to database
///
///
///
//public static bool SaveCampaignMessage(string dbName, oCampaignMessage _msg)
//{
// bool result = false;
// string query = String.Empty;
// SqlCommand command = new SqlCommand();
// try
// {
// if (_msg.recId > 0)
// {
// query = "UPDATE [dbo].[pal_CampaignMessage] " +
// "SET [campaignId] = @campaignId " +
// ",[message] = @message " +
// ",[messageType] = @messageType " +
// ",[email] = @email " +
// ",[mobile] = @mobile " +
// ",[dateSent] = @dateSent " +
// ",[status] = @status " +
// ",[statusCode] = @statusCode " +
// ",[statusDisplay] = @statusDisplay " +
// "WHERE [recId] = " + _msg.recId.ToString();
// }
// else
// {
// query = "INSERT INTO [dbo].[pal_CampaignMessage] " +
// "([campaignId] " +
// ",[message] " +
// ",[messageType] " +
// ",[email] " +
// ",[mobile] " +
// ",[dateSent] " +
// ",[status] " +
// ",[statusCode] " +
// ",[statusDisplay]) " +
// "VALUES " +
// "(@campaignId " +
// ",@message " +
// ",@messageType " +
// ",@email " +
// ",@mobile " +
// ",@dateSent " +
// ",@status " +
// ",@statusCode " +
// ",@statusDisplay) ";
// }
// //create command
// command = CreateCommand(dbName, query);
// command.Parameters.Add(new SqlParameter("@campaignId", _msg.campaignId));
// command.Parameters.Add(new SqlParameter("@message", utils.formatSqlString(_msg.message)));
// command.Parameters.Add(new SqlParameter("@messageType", _msg.messageType));
// command.Parameters.Add(new SqlParameter("@email", _msg.email));
// command.Parameters.Add(new SqlParameter("@mobile", _msg.mobile));
// command.Parameters.Add(new SqlParameter("@dateSent", utils.fixDate(_msg.dateSent)));
// command.Parameters.Add(new SqlParameter("@status", _msg.status));
// command.Parameters.Add(new SqlParameter("@statusCode", _msg.statusCode));
// command.Parameters.Add(new SqlParameter("@statusDisplay", utils.formatSqlString(_msg.statusDisplay)));
// //save campaign message
// result = dataTier.SavingMethods.UpdateRecord(ref command);
// command.Parameters.Clear();
// }
// catch (Exception ex)
// {
// Console.WriteLine(ex.Message);
// }
// finally
// {
// dataTier.CommandMethods.CompleteSQLCommand(ref command);
// }
// return result;
//}
///
/// Update a Campaign
///
///
///
///
//public static bool UpdateCampaign(string dbName, oCampaign _campaign)
//{
// bool result = false;
// string query = String.Empty;
// SqlCommand command = new SqlCommand();
// try
// {
// if (_campaign.recId > 0)
// {
// query = "UPDATE [dbo].[pal_Campaign] " +
// "SET [campaignTitle] = @campaignTitle " +
// ",[campaignBody] = @campaignBody " +
// ",[campaignType] = @campaignType " +
// ",[isRecurring] = @isRecurring " +
// ",[interval] = @interval " +
// ",[messageType] = @messageType " +
// ",[lastSent] = @lastSent " +
// ",[nextSend] = @nextSend " +
// ",[dateUpdated] = @dateUpdated " +
// "WHERE [recId] = " + _campaign.recId.ToString();
// //create command
// command = CreateCommand(dbName, query);
// command.Parameters.Add(new SqlParameter("@campaignTitle", _campaign.campaignTitle));
// command.Parameters.Add(new SqlParameter("@campaignBody", utils.formatSqlString(_campaign.campaignBody)));
// command.Parameters.Add(new SqlParameter("@campaignType", _campaign.campaignType));
// command.Parameters.Add(new SqlParameter("@isRecurring", _campaign.isRecurring));
// command.Parameters.Add(new SqlParameter("@interval", _campaign.interval));
// command.Parameters.Add(new SqlParameter("@messageType", _campaign.messageType));
// command.Parameters.Add(new SqlParameter("@lastSent", utils.fixDate(_campaign.lastSent)));
// command.Parameters.Add(new SqlParameter("@nextSend", utils.fixDate(_campaign.nextSend)));
// command.Parameters.Add(new SqlParameter("@dateUpdated", _campaign.dateUpdated));
// //save campaign
// result = dataTier.SavingMethods.UpdateRecord(ref command);
// command.Parameters.Clear();
// }
// }
// catch (Exception ex)
// {
// Console.WriteLine(ex.Message);
// }
// finally
// {
// dataTier.CommandMethods.CompleteSQLCommand(ref command);
// }
// return result;
//}
///
/// Log the status
///
///
public static void LogStatus(string message)
{
_LogWriter.Write(message + Environment.NewLine);
Console.WriteLine(message + Environment.NewLine);
}
}
}