コード例 #1
0
 public static Common.ScheduledSms Load(Guid scheduledSmsGuid)
 {
     Business.ScheduledSms scheduledSmsController = new Business.ScheduledSms();
     Common.ScheduledSms   scheduledSms           = new Common.ScheduledSms();
     scheduledSmsController.Load(scheduledSmsGuid, scheduledSms);
     return(scheduledSms);
 }
コード例 #2
0
 public static bool InsertGradualSms(Common.ScheduledSms scheduledSms, List <string> lstNumbers)
 {
     Business.ScheduledSms scheduledSmsController = new Business.ScheduledSms();
     scheduledSms.ScheduledSmsGuid = Guid.NewGuid();
     scheduledSms.TypeSend         = (int)SmsSendType.SendGradualSms;
     return(scheduledSmsController.InsertGradualSms(scheduledSms, string.Join(",", lstNumbers.ToArray())));
 }
コード例 #3
0
 public static bool InsertFormatSms(Common.ScheduledSms scheduledSms, ref string formatInfo)
 {
     Business.ScheduledSms scheduledSmsController = new Business.ScheduledSms();
     scheduledSms.ScheduledSmsGuid = Guid.NewGuid();
     Transaction.GetSendFormatPrice(scheduledSms.UserGuid, Helper.GetGuid(scheduledSms.ReferenceGuid), scheduledSms.PrivateNumberGuid, ref formatInfo);
     scheduledSms.TypeSend = (int)SmsSendType.SendFormatSms;
     return(scheduledSmsController.InsertFormatSms(scheduledSms));
 }
コード例 #4
0
        private void SaveToDB(BatchMessage messages)
        {
            Common.ScheduledSms scheduledSms;
            List <string>       lstReceivers;

            scheduledSms = new Common.ScheduledSms();
            lstReceivers = new List <string>();

            LogController <ServiceLogs> .LogInFile(ServiceLogs.WebAPI, string.Format("\r\n-------------------------------------------------------------------------"));

            scheduledSms.ScheduledSmsGuid  = messages.Guid;
            scheduledSms.PrivateNumberGuid = messages.PrivateNumberGuid;
            scheduledSms.SmsText           = messages.SmsText;
            scheduledSms.SmsLen            = messages.SmsLen;
            scheduledSms.PresentType       = messages.IsFlash ? (int)Business.Messageclass.Flash : (int)Business.Messageclass.Normal;
            scheduledSms.Encoding          = messages.IsUnicode ? (int)Business.Encoding.Utf8 : (int)Business.Encoding.Default;
            scheduledSms.UserGuid          = messages.UserGuid;
            scheduledSms.Status            = (int)ScheduledSmsStatus.Stored;
            scheduledSms.DateTimeFuture    = DateTime.Now;
            scheduledSms.TypeSend          = messages.SmsSendType;

            LogController <ServiceLogs> .LogInFile(ServiceLogs.WebAPI, string.Format(@"batchMessage.ServiceId : {0},ScheduledSmsGuid : {1},PrivateNumberGuid: {2}", messages.ServiceId, scheduledSms.ScheduledSmsGuid, scheduledSms.PrivateNumberGuid));

            if (messages.ServiceId == null)
            {
                LogController <ServiceLogs> .LogInFile(ServiceLogs.WebAPI, string.Format("batchMessage.sendernumber : {0},batchMessage.UserGuid:{1}", messages.SenderNumber, messages.UserGuid));

                scheduledSms.PrivateNumberGuid = Facade.PrivateNumber.GetUserNumberGuid(messages.SenderNumber, messages.UserGuid);
                LogController <ServiceLogs> .LogInFile(ServiceLogs.WebAPI, string.Format("scheduledSms.PrivateNumberGuid : {0} SendType : {1}", scheduledSms.PrivateNumberGuid, (SmsSendType)messages.SmsSendType));

                if (messages.SmsSendType == (int)SmsSendType.SendSmsFromAPI)
                {
                    lstReceivers = messages.Receivers.Select <InProgressSms, string>(receiver => receiver.RecipientNumber).DefaultIfEmpty().ToList();
                    Facade.ScheduledSms.InsertSms(scheduledSms, lstReceivers);
                }
                else if (messages.SmsSendType == (int)SmsSendType.SendGroupSmsFromAPI)
                {
                    scheduledSms.ReferenceGuid = string.Join(",", messages.ReferenceGuid);
                    Facade.ScheduledSms.InsertGroupSms(scheduledSms);
                }
            }
            else
            {
                if (messages.Receivers.Count > 0)
                {
                    lstReceivers = messages.Receivers.Select <InProgressSms, string>(receiver => receiver.RecipientNumber).ToList();
                    Facade.ScheduledSms.InsertSms(scheduledSms, lstReceivers);
                }
                else
                {
                    scheduledSms.ReferenceGuid = messages.ReferenceGuid.ToString();
                    scheduledSms.TypeSend      = (int)SmsSendType.SendGroupSmsFromAPI;
                    Facade.ScheduledSms.InsertGroupSms(scheduledSms);
                }
            }
        }
コード例 #5
0
 public bool InsertFormatSms(Common.ScheduledSms scheduledSms)
 {
     return(ExecuteSPCommand("InsertFormatSms",
                             "@Guid", scheduledSms.ScheduledSmsGuid,
                             "@PrivateNumberGuid", scheduledSms.PrivateNumberGuid,
                             "@ReferenceGuid", scheduledSms.ReferenceGuid,
                             "@TypeSend", scheduledSms.TypeSend,
                             "@Status", scheduledSms.Status,
                             "@DateTimeFuture", scheduledSms.DateTimeFuture,
                             "@UserGuid", scheduledSms.UserGuid,
                             "@IPAddress", scheduledSms.IP,
                             "@Browser", scheduledSms.Browser));
 }
コード例 #6
0
        protected void btnSendTestSms_Click(object sender, EventArgs e)
        {
            Common.ScheduledSms scheduledSms = new Common.ScheduledSms();
            List <string>       lstNumbers   = new List <string>();

            try
            {
                if (Helper.GetGuid(drpSenderNumber.SelectedValue.Split(';')[0]) == Guid.Empty)
                {
                    throw new Exception(Language.GetString("InvalidSenderNumber"));
                }

                if (string.IsNullOrEmpty(txtSmsBody.Text))
                {
                    throw new Exception(Language.GetString("BlankMessage"));
                }

                scheduledSms.PrivateNumberGuid = Helper.GetGuid(drpSenderNumber.SelectedValue.Split(';')[0]);
                lstNumbers = txtTestRecievers.Text.Split(new string[] { "\n", "\r\n", ",", " ", ";" }, StringSplitOptions.RemoveEmptyEntries).ToList();
                Dictionary <int, int> operatorNumberCount = Facade.Outbox.GetCountNumberOfOperators(ref lstNumbers);

                if (operatorNumberCount.Values.Sum() == 0)
                {
                    throw new Exception(Language.GetString("RecieverListIsEmpty"));
                }

                scheduledSms.SmsText          = txtSmsBody.Text;
                scheduledSms.SmsLen           = Helper.GetSmsCount(txtSmsBody.Text);
                scheduledSms.PresentType      = txtSmsBody.IsFlashSms ? (int)Messageclass.Flash : (int)Messageclass.Normal;
                scheduledSms.Encoding         = Helper.HasUniCodeCharacter(txtSmsBody.Text) ? (int)Encoding.Utf8 : (int)Encoding.Default;
                scheduledSms.DateTimeFuture   = DateTime.Now;
                scheduledSms.UserGuid         = UserGuid;
                scheduledSms.Status           = (int)ScheduledSmsStatus.Stored;
                scheduledSms.TypeSend         = (int)SmsSendType.SendSms;
                scheduledSms.IP               = Ip;
                scheduledSms.Browser          = Browser;
                scheduledSms.ScheduledSmsGuid = Guid.NewGuid();


                if (!Facade.ScheduledSms.InsertSms(scheduledSms, lstNumbers))
                {
                    throw new Exception(Language.GetString("ErrorRecord"));
                }

                ClientSideScript = string.Format("result('step1','OK','{0}')", Language.GetString("SendSmsSuccessful"));
            }
            catch (Exception ex)
            {
                ClientSideScript = string.Format("result('step1','Error','{0}')", ex.Message);
            }
        }
コード例 #7
0
 public bool InsertP2PSms(Common.ScheduledSms scheduledSms)
 {
     return(ExecuteSPCommand("InsertP2PSms",
                             "@Guid", scheduledSms.ScheduledSmsGuid,
                             "@PrivateNumberGuid", scheduledSms.PrivateNumberGuid,
                             "@FilePath", scheduledSms.FilePath,
                             "@SmsPattern", scheduledSms.SmsPattern,
                             "@TypeSend", scheduledSms.TypeSend,
                             "@Status", scheduledSms.Status,
                             "@DateTimeFuture", scheduledSms.DateTimeFuture,
                             "@UserGuid", scheduledSms.UserGuid,
                             "@IPAddress", scheduledSms.IP,
                             "@Browser", scheduledSms.Browser));
 }
コード例 #8
0
 public bool InsertGroupSms(Common.ScheduledSms scheduledSms)
 {
     //scheduledSms.ScheduledSmsGuid = Guid.NewGuid();
     return(ExecuteSPCommand("InsertGroupSms",
                             "@Guid", scheduledSms.ScheduledSmsGuid,
                             "@PrivateNumberGuid", scheduledSms.PrivateNumberGuid,
                             "@ReferenceGuid", scheduledSms.ReferenceGuid,
                             "@SmsText", scheduledSms.SmsText,
                             "@SmsLen", scheduledSms.SmsLen,
                             "@PresentType", scheduledSms.PresentType,
                             "@Encoding", scheduledSms.Encoding,
                             "@TypeSend", scheduledSms.TypeSend,
                             "@Status", scheduledSms.Status,
                             "@DateTimeFuture", scheduledSms.DateTimeFuture,
                             "@UserGuid", scheduledSms.UserGuid,
                             "@IPAddress", scheduledSms.IP,
                             "@Browser", scheduledSms.Browser));
 }
コード例 #9
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            Common.ScheduledSms scheduledSms = new Common.ScheduledSms();
            try
            {
                int numberType = Helper.GetInt(drpSenderNumber.SelectedValue.Split(';')[1]);

                if (Helper.GetGuid(drpSenderNumber.SelectedValue.Split(';')[0]) == Guid.Empty)
                {
                    throw new Exception(Language.GetString("InvalidSenderNumber"));
                }

                if (string.IsNullOrEmpty(txtSmsBody.Text))
                {
                    throw new Exception(Language.GetString("BlankMessage"));
                }

                Facade.PhoneBook.CheckPhoneBookType(numberType, string.Join(",", ListOfPhoneBookGuid));

                scheduledSms.PrivateNumberGuid = Helper.GetGuid(drpSenderNumber.SelectedValue.Split(';')[0]);
                scheduledSms.ReferenceGuid     = PhoneBookGuids;
                scheduledSms.SmsText           = txtSmsBody.Text;
                scheduledSms.SmsLen            = Helper.GetSmsCount(txtSmsBody.Text);
                scheduledSms.PresentType       = txtSmsBody.IsFlashSms ? (int)Messageclass.Flash : (int)Messageclass.Normal;
                scheduledSms.Encoding          = Helper.HasUniCodeCharacter(txtSmsBody.Text) ? (int)Encoding.Utf8 : (int)Encoding.Default;
                scheduledSms.DateTimeFuture    = DateManager.GetChristianDateTimeForDB(dtpSendDateTime.FullDateTime);
                scheduledSms.UserGuid          = UserGuid;
                scheduledSms.Status            = (int)ScheduledSmsStatus.Stored;
                scheduledSms.TypeSend          = (int)SmsSendType.SendGroupSms;
                scheduledSms.IP      = Ip;
                scheduledSms.Browser = Browser;

                if (!Facade.ScheduledSms.InsertGroupSms(scheduledSms))
                {
                    throw new Exception(Language.GetString("ErrorRecord"));
                }

                ShowMessageBox(Language.GetString("InsertRecord"), string.Empty, "success");
            }
            catch (Exception ex)
            {
                ShowMessageBox(ex.Message, string.Empty, "danger");
            }
        }
コード例 #10
0
 public bool InsertBulkRequest(Common.ScheduledSms scheduledSms, DataTable dtRecipients)
 {
     return(ExecuteSPCommand("InsertBulkRequest",
                             "@Guid", scheduledSms.ScheduledSmsGuid,
                             "@PrivateNumberGuid", scheduledSms.PrivateNumberGuid,
                             "@ReferenceGuid", scheduledSms.ReferenceGuid,
                             "@SmsText", scheduledSms.SmsText,
                             "@SmsLen", scheduledSms.SmsLen,
                             "@PresentType", scheduledSms.PresentType,
                             "@Encoding", scheduledSms.Encoding,
                             "@TypeSend", scheduledSms.TypeSend,
                             "@Status", scheduledSms.Status,
                             "@DateTimeFuture", scheduledSms.DateTimeFuture,
                             "@UserGuid", scheduledSms.UserGuid,
                             "@RequestXMl", scheduledSms.RequestXML,
                             "@IPAddress", scheduledSms.IP,
                             "@Browser", scheduledSms.Browser,
                             "@Recipients", dtRecipients));
 }
コード例 #11
0
 public bool InsertPeriodSms(Common.ScheduledSms scheduledSms, string recievers)
 {
     return(ExecuteSPCommand("InsertPeriodSms",
                             "@Guid", scheduledSms.ScheduledSmsGuid,
                             "@PrivateNumberGuid", scheduledSms.PrivateNumberGuid,
                             "@Reciever", recievers,
                             "@ReferenceGuid", scheduledSms.ReferenceGuid,
                             "@SmsText", scheduledSms.SmsText,
                             "@SmsLen", scheduledSms.SmsLen,
                             "@PresentType", scheduledSms.PresentType,
                             "@Encoding", scheduledSms.Encoding,
                             "@TypeSend", scheduledSms.TypeSend,
                             "@Status", scheduledSms.Status,
                             "@Period", scheduledSms.Period,
                             "@PeriodType", scheduledSms.PeriodType,
                             "@StartDateTime", scheduledSms.StartDateTime,
                             "@EndDateTime", scheduledSms.EndDateTime,
                             "@UserGuid", scheduledSms.UserGuid,
                             "@IPAddress", scheduledSms.IP,
                             "@Browser", scheduledSms.Browser));
 }
コード例 #12
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            Common.ScheduledSms scheduledSms = new Common.ScheduledSms();
            try
            {
                scheduledSms.ScheduledSmsGuid  = Guid.NewGuid();
                scheduledSms.PrivateNumberGuid = Helper.GetGuid(drpSenderNumber.SelectedValue);
                scheduledSms.SmsText           = txtSmsBody.Text;
                scheduledSms.SmsLen            = txtSmsBody.SmsCount;
                scheduledSms.PresentType       = txtSmsBody.IsFlashSms ? (int)Messageclass.Flash : (int)Messageclass.Normal;
                scheduledSms.Encoding          = Helper.HasUniCodeCharacter(txtSmsBody.Text) ? (int)Encoding.Utf8 : (int)Encoding.Default;
                scheduledSms.UserGuid          = UserGuid;
                scheduledSms.TypeSend          = (int)SmsSendType.SendBulkSms;
                //scheduledSms.DateTimeFuture = DateManager.GetChristianDateTimeForDB(dtpSendDateTime.FullDateTime);
                var dateTime = dtpSendDateTime.FullDateTime;
                if (Session["Language"].ToString() == "fa")
                {
                    scheduledSms.DateTimeFuture = DateManager.GetChristianDateTimeForDB(dateTime);
                }
                else
                {
                    scheduledSms.DateTimeFuture = DateTime.Parse(dateTime);
                }
                scheduledSms.Status  = (int)ScheduledSmsStatus.Stored;
                scheduledSms.IP      = Ip;
                scheduledSms.Browser = Browser;

                if (!Facade.ScheduledSms.InsertBulkRequest(scheduledSms, hdnRecipients.Value))
                {
                    throw new Exception(Language.GetString("ErrorRecord"));
                }

                ShowMessageBox(Language.GetString("InsertRecord"), string.Empty, "success");
            }
            catch (Exception ex)
            {
                ShowMessageBox(ex.Message, string.Empty, "danger");
            }
        }
コード例 #13
0
        protected void btnSendSms_Click(object sender, EventArgs e)
        {
            Common.ScheduledSms scheduledSms = new Common.ScheduledSms();
            string formatInfo = string.Empty;

            try
            {
                scheduledSms.PrivateNumberGuid = Helper.GetGuid(drpSenderNumber.SelectedValue);
                scheduledSms.ReferenceGuid     = drpSmsFormat.SelectedValue;
                //scheduledSms.DateTimeFuture = DateManager.GetChristianDateTimeForDB(dtpSendDateTime.FullDateTime);
                var dateTime = dtpSendDateTime.FullDateTime;
                if (Session["Language"].ToString() == "fa")
                {
                    scheduledSms.DateTimeFuture = DateManager.GetChristianDateTimeForDB(dateTime);
                }
                else
                {
                    scheduledSms.DateTimeFuture = DateTime.Parse(dateTime);
                }
                scheduledSms.UserGuid = UserGuid;
                scheduledSms.Status   = (int)ScheduledSmsStatus.Stored;
                scheduledSms.IP       = Ip;
                scheduledSms.Browser  = Browser;

                if (!Facade.ScheduledSms.InsertFormatSms(scheduledSms, ref formatInfo))
                {
                    throw new Exception(Language.GetString("ErrorRecord"));
                }

                ClientSideScript = string.Format("result('step2','OK','{0}');setSendPriceTableInfo('{1}');", Language.GetString("SendSmsSuccessful"), formatInfo);
            }
            catch (Exception ex)
            {
                ClientSideScript = string.Format("result('step2','Error','{0}');setSendPriceTableInfo('{1}');", ex.Message, formatInfo);
            }
        }
コード例 #14
0
        protected void btnSend_Click(object sender, EventArgs e)
        {
            Common.ScheduledSms scheduledSms = new Common.ScheduledSms();
            List <string>       lstNumbers   = new List <string>();

            try
            {
                int numberType = Helper.GetInt(drpSenderNumber.SelectedValue.Split(';')[1]);

                if (Helper.GetGuid(drpSenderNumber.SelectedValue.Split(';')[0]) == Guid.Empty)
                {
                    throw new Exception(Language.GetString("InvalidSenderNumber"));
                }

                if (string.IsNullOrEmpty(txtSmsBody.Text))
                {
                    throw new Exception(Language.GetString("BlankMessage"));
                }

                Facade.PhoneBook.CheckPhoneBookType(numberType, string.Format("'{0}'", PhoneBookGuid));

                scheduledSms.PrivateNumberGuid = Helper.GetGuid(drpSenderNumber.SelectedValue.Split(';')[0]);
                lstNumbers = txtRecievers.Text.Split(new string[] { "\n", "\r\n", ",", " ", ";" }, StringSplitOptions.RemoveEmptyEntries).ToList();
                Dictionary <int, int> operatorNumberCount = Facade.Outbox.GetCountNumberOfOperators(ref lstNumbers);

                if (operatorNumberCount.Values.Sum() == 0)
                {
                    throw new Exception(Language.GetString("RecieverListIsEmpty"));
                }

                scheduledSms.SmsText     = txtSmsBody.Text;
                scheduledSms.SmsLen      = Helper.GetSmsCount(txtSmsBody.Text);
                scheduledSms.PresentType = txtSmsBody.IsFlashSms ? (int)Messageclass.Flash : (int)Messageclass.Normal;
                scheduledSms.Encoding    = Helper.HasUniCodeCharacter(txtSmsBody.Text) ? (int)Encoding.Utf8 : (int)Encoding.Default;
                var dateTime = dtpSendDateTime.FullDateTime;
                if (Session["Language"].ToString() == "fa")
                {
                    scheduledSms.DateTimeFuture = DateManager.GetChristianDateTimeForDB(dateTime);
                }
                else
                {
                    scheduledSms.DateTimeFuture = DateTime.Parse(dateTime);
                }
                //scheduledSms.DateTimeFuture = DateManager.GetChristianDateTimeForDB(dtpSendDateTime.FullDateTime);
                scheduledSms.UserGuid = UserGuid;
                scheduledSms.TypeSend = (int)SmsSendType.SendSms;
                scheduledSms.Status   = (int)ScheduledSmsStatus.Stored;
                scheduledSms.IP       = Ip;
                scheduledSms.Browser  = Browser;

                if (!Facade.ScheduledSms.InsertSms(scheduledSms, lstNumbers))
                {
                    throw new Exception(Language.GetString("ErrorRecord"));
                }

                ShowMessageBox(Language.GetString("SendSmsSuccessful"), string.Empty, "success");
            }
            catch (Exception ex)
            {
                ClientSideScript = string.Format("sendSmsError('{0}');", ex.Message);
            }
        }
コード例 #15
0
        protected void btnSendSms_Click(object sender, EventArgs e)
        {
            Common.ScheduledSms scheduledSms = new Common.ScheduledSms();
            try
            {
                #region GetSendSmsInfo
                List <string>               recieversNumber     = new List <string>();
                Dictionary <int, int>       operatorNumberCount = new Dictionary <int, int>();
                Dictionary <string, string> dicFileInfo         = new Dictionary <string, string>();
                SmsTypes smsType = Helper.HasUniCodeCharacter(txtSmsBody.Text) ? SmsTypes.Farsi : SmsTypes.Latin;

                if (Helper.GetGuid(hdnGroupGuid.Value.Trim('\'')) != Guid.Empty)
                {
                    scheduledSms.ReferenceGuid = hdnGroupGuid.Value.Trim('\'');
                    operatorNumberCount        = Facade.PhoneNumber.GetCountPhoneBooksNumberOperator(scheduledSms.ReferenceGuid);
                }

                string fileInfo = string.Empty;
                if (!string.IsNullOrEmpty(hdnFilePath.Value))
                {
                    dicFileInfo = Facade.PhoneNumber.GetFileNumberInfo(Server.MapPath("~/Uploads/" + hdnFilePath.Value), recieversNumber);
                    fileInfo    = string.Format(@"<p>عنوان فایل {0}</p>
																		<p>تعداد کل شماره ها {1} عدد</p>
																		<p>تعداد شماره های تکراری {2} عدد</p>
																		<p>تعداد شماره های صحیح {3} عدد</p>"                                                                        , hdnFilePath.Value.Split('/')[1], dicFileInfo["TotalNumberCount"], dicFileInfo["DuplicateNumberCount"], dicFileInfo["CorrectNumberCount"]);
                }
                recieversNumber.AddRange(txtRecievers.Text.Split(new string[] { "\n", "\r\n", ",", " ", ";" }, StringSplitOptions.RemoveEmptyEntries).ToList());

                Facade.Outbox.AddCountNumberOfOperatorsToDictionary(ref recieversNumber, ref operatorNumberCount);

                decimal sendPrice = Facade.Transaction.GetSendPrice(UserGuid, smsType, Helper.GetSmsCount(txtSmsBody.Text), Helper.GetGuid(drpSenderNumber.SelectedValue.Split(';')[0]), operatorNumberCount);

                int numberType = Facade.PrivateNumber.LoadNumber(Helper.GetGuid(drpSenderNumber.SelectedValue.Split(';')[0])).Type;

                string result = "Result{(OK)}TotalCount{(" + operatorNumberCount.Values.Sum() + ")}SendPrice{(" + sendPrice + ")}NumberType{(" + numberType + ")}";

                if (!string.IsNullOrEmpty(fileInfo))
                {
                    result += "FileInfo{(" + fileInfo + ")}FilePath{(" + hdnFilePath.Value + ")}FileCorrectNumberCount{(" + dicFileInfo["CorrectNumberCount"] + ")}";
                }

                foreach (KeyValuePair <int, int> opt in operatorNumberCount)
                {
                    result += opt.Key + "{(" + opt.Value + ")}";
                }
                #endregion

                scheduledSms.PrivateNumberGuid = Helper.GetGuid(drpSenderNumber.SelectedValue.Split(';')[0]);
                if (!string.IsNullOrEmpty(hdnFileSoundPath.Value))
                {
                    scheduledSms.SmsLen = int.Parse(hdnFileSoundLength.Value);
                    //scheduledSms.SmsText = txtVoiceTitle.Text;
                    scheduledSms.VoiceURL       = Server.MapPath("~/Uploads/" + hdnFileSoundPath.Value);
                    scheduledSms.VoiceMessageId = int.Parse(hdnFileSoundID.Value);
                }
                else
                {
                    scheduledSms.SmsText = txtSmsBody.Text;
                    scheduledSms.SmsLen  = Helper.GetSmsCount(txtSmsBody.Text);
                }
                scheduledSms.PresentType      = txtSmsBody.IsFlashSms ? (int)Arad.SMS.Gateway.Business.Messageclass.Flash : (int)Arad.SMS.Gateway.Business.Messageclass.Normal;
                scheduledSms.Encoding         = Helper.HasUniCodeCharacter(txtSmsBody.Text) ? (int)Encoding.Utf8 : (int)Encoding.Default;
                scheduledSms.UserGuid         = UserGuid;
                scheduledSms.Status           = (int)ScheduledSmsStatus.Stored;
                scheduledSms.IP               = Ip;
                scheduledSms.Browser          = Browser;
                scheduledSms.ScheduledSmsGuid = Guid.NewGuid();


                if (operatorNumberCount.Values.Sum() == 0)
                {
                    throw new Exception(Language.GetString("RecieverListIsEmpty"));
                }

                if (rdbSendDateTime.Checked)
                {
                    var dateTime = dtpSendDateTime.FullDateTime;
                    if (Session["Language"].ToString() == "fa")
                    {
                        scheduledSms.DateTimeFuture = DateManager.GetChristianDateTimeForDB(dateTime);
                    }
                    else
                    {
                        scheduledSms.DateTimeFuture = DateTime.Parse(dateTime);
                    }

                    if (scheduledSms.DateTimeFuture < DateTime.Now)
                    {
                        scheduledSms.DateTimeFuture = DateTime.Now.AddSeconds(15);
                    }

                    if (recieversNumber.Count > 0)
                    {
                        scheduledSms.TypeSend = (int)SmsSendType.SendSms;
                        Facade.ScheduledSms.InsertSms(scheduledSms, recieversNumber);
                    }

                    if (!string.IsNullOrEmpty(scheduledSms.ReferenceGuid))
                    {
                        scheduledSms.TypeSend = (int)SmsSendType.SendGroupSms;
                        Facade.ScheduledSms.InsertGroupSms(scheduledSms);
                    }
                }
                else if (rdbSendPeriod.Checked)
                {
                    scheduledSms.PeriodType = Helper.GetInt(drpPeriodType.SelectedValue);
                    scheduledSms.Period     = Helper.GetInt(txtPeriod.Text);
                    //scheduledSms.StartDateTime = DateManager.GetChristianDateTimeForDB(dtpPeriodStart.FullDateTime);
                    //scheduledSms.EndDateTime = DateManager.GetChristianDateTimeForDB(dtpPeriodEnd.FullDateTime);
                    var dateTime    = dtpPeriodStart.FullDateTime;
                    var dateTimeEnd = dtpPeriodEnd.FullDateTime;
                    if (Session["Language"].ToString() == "fa")
                    {
                        scheduledSms.StartDateTime = DateManager.GetChristianDateTimeForDB(dateTime);
                        scheduledSms.EndDateTime   = DateManager.GetChristianDateTimeForDB(dateTimeEnd);
                    }
                    else
                    {
                        scheduledSms.StartDateTime = DateTime.Parse(dateTime);
                        scheduledSms.EndDateTime   = DateTime.Parse(dateTimeEnd);
                    }


                    Facade.ScheduledSms.InsertPeriodSms(scheduledSms, recieversNumber);
                }
                else if (rdbGradual.Checked)
                {
                    scheduledSms.PeriodType     = (int)SmsSentPeriodType.Minute;
                    scheduledSms.Period         = Helper.GetInt(txtGradualPeriod.Text);
                    scheduledSms.SendPageSize   = Helper.GetInt(txtGradualPageSize.Text);
                    scheduledSms.SendPageNo     = 0;
                    scheduledSms.DateTimeFuture = DateTime.Now.AddMinutes(scheduledSms.Period);

                    Facade.ScheduledSms.InsertGradualSms(scheduledSms, recieversNumber);
                }

                ClientSideScript = string.Format("result('step4','OK','{0}');setSendPriceTableInfo('step4','{1}');", Language.GetString("SendSmsSuccessful"), result);
                Response.Redirect(string.Format("/PageLoader.aspx?c={0}", Helper.Encrypt((int)UserControls.UI_SmsReports_ScheduledSms, Session)));
            }
            catch (Exception ex)
            {
                ClientSideScript = string.Format("result('step4','Error','{0}');setSendPriceTableInfo('step4','{1}');", ex.Message, string.Empty);
            }
        }
コード例 #16
0
        public static bool InsertBulkRequest(Common.ScheduledSms scheduledSms, string recipients)
        {
            Business.ScheduledSms scheduledSmsController = new Business.ScheduledSms();
            DataTable             dtRecipients           = new DataTable();

            dtRecipients.Columns.Add("ZoneGuid", typeof(Guid));
            dtRecipients.Columns.Add("ZipCode", typeof(string));
            dtRecipients.Columns.Add("Prefix", typeof(string));
            dtRecipients.Columns.Add("Type", typeof(int));
            dtRecipients.Columns.Add("Operator", typeof(int));
            dtRecipients.Columns.Add("FromIndex", typeof(int));
            dtRecipients.Columns.Add("Count", typeof(int));
            dtRecipients.Columns.Add("ScopeCount", typeof(int));

            try
            {
                if (scheduledSms.HasError)
                {
                    throw new Exception(scheduledSms.ErrorMessage);
                }

                if (scheduledSms.DateTimeFuture < DateTime.Now)
                {
                    scheduledSms.DateTimeFuture = DateTime.Now.AddMinutes(2);
                }

                var receivers = new XElement("Receivers");

                DataRow row;

                for (int counter = 0; counter < Helper.ImportIntData(recipients, "resultCount"); counter++)
                {
                    row = dtRecipients.NewRow();
                    receivers.Add(new XElement("Receiver", new XAttribute("ZoneGuid", Helper.ImportGuidData(recipients, ("ZoneGuid" + counter))),
                                               new XAttribute("ZipCode", Helper.ImportData(recipients, ("ZipCode" + counter))),
                                               new XAttribute("Prefix", Helper.ImportData(recipients, ("Prefix" + counter))),
                                               new XAttribute("Type", Helper.ImportData(recipients, ("Type" + counter))),
                                               new XAttribute("Operator", Helper.ImportData(recipients, ("Operator" + counter))),
                                               new XAttribute("FromIndex", Helper.ImportData(recipients, ("FromIndex" + counter))),
                                               new XAttribute("Count", Helper.ImportData(recipients, ("Count" + counter))),
                                               new XAttribute("ScopeCount", Helper.ImportData(recipients, ("ScopeCount" + counter))),
                                               new XAttribute("Title", Helper.ImportData(recipients, ("Title" + counter))),
                                               new XAttribute("Price", Helper.ImportData(recipients, ("SendPrice" + counter)))));

                    row["ZoneGuid"]   = Helper.ImportGuidData(recipients, ("ZoneGuid" + counter));
                    row["ZipCode"]    = Helper.ImportData(recipients, ("ZipCode" + counter));
                    row["Prefix"]     = Helper.ImportData(recipients, ("Prefix" + counter));
                    row["Type"]       = Helper.ImportIntData(recipients, ("Type" + counter));
                    row["Operator"]   = Helper.ImportIntData(recipients, ("Operator" + counter));
                    row["FromIndex"]  = Helper.ImportIntData(recipients, ("FromIndex" + counter));
                    row["Count"]      = Helper.ImportIntData(recipients, ("Count" + counter));
                    row["ScopeCount"] = Helper.ImportIntData(recipients, ("ScopeCount" + counter));

                    dtRecipients.Rows.Add(row);
                }

                if (dtRecipients.Rows.Count == 0)
                {
                    throw new Exception(Language.GetString("RecieverListIsEmpty"));
                }

                XDocument doc     = new XDocument();
                XElement  root    = new XElement("NewDataSet");
                XElement  element = new XElement("Table");
                element.Add(new XElement("Guid", Guid.NewGuid()));
                element.Add(new XElement("PrivateNumberGuid", scheduledSms.PrivateNumberGuid));
                element.Add(new XElement("SmsText", scheduledSms.SmsText));
                element.Add(new XElement("SmsLen", Helper.GetSmsCount(scheduledSms.SmsText)));
                element.Add(new XElement("PresentType", scheduledSms.PresentType));
                element.Add(new XElement("Encoding", scheduledSms.Encoding));
                element.Add(new XElement("TypeSend", scheduledSms.TypeSend));
                element.Add(new XElement("DateTimeFuture", scheduledSms.DateTimeFuture));
                element.Add(new XElement("UserGuid", scheduledSms.UserGuid));
                element.Add(new XElement("IP", scheduledSms.IP));
                element.Add(new XElement("Browser", scheduledSms.Browser));
                element.Add(receivers);
                root.Add(element);

                doc.Add(root);

                scheduledSms.RequestXML = doc.ToString();

                return(scheduledSmsController.InsertBulkRequest(scheduledSms, dtRecipients));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #17
0
 public static bool InsertSms(Common.ScheduledSms scheduledSms, List <string> lstNumbers)
 {
     Business.ScheduledSms scheduledSmsController = new Business.ScheduledSms();
     return(scheduledSmsController.InsertSms(scheduledSms, string.Join(",", lstNumbers.ToArray())));
 }
コード例 #18
0
 public static bool InsertGroupSms(Common.ScheduledSms scheduledSms)
 {
     Business.ScheduledSms scheduledSmsController = new Business.ScheduledSms();
     return(scheduledSmsController.InsertGroupSms(scheduledSms));
 }
コード例 #19
0
ファイル: APIThread.cs プロジェクト: LavoTP/Arad.SMS.Gateway
        private void Save(List <Message> messages)
        {
            Common.ScheduledSms scheduledSms;
            List <string>       lstReceivers;
            BatchMessage        batchMessage;

            foreach (Message msg in messages)
            {
                batchMessage = new BatchMessage();
                batchMessage = (BatchMessage)msg.Body;
                scheduledSms = new Common.ScheduledSms();
                lstReceivers = new List <string>();

                LogController <ServiceLogs> .LogInFile(ServiceLogs.APIProcessRequest, string.Format("\r\n-------------------------------------------------------------------------"));

                scheduledSms.ScheduledSmsGuid  = batchMessage.Guid;
                scheduledSms.PrivateNumberGuid = batchMessage.PrivateNumberGuid;
                scheduledSms.SmsText           = batchMessage.SmsText;
                scheduledSms.SmsLen            = batchMessage.SmsLen;
                scheduledSms.PresentType       = batchMessage.IsFlash ? (int)Messageclass.Flash : (int)Messageclass.Normal;
                scheduledSms.Encoding          = batchMessage.IsUnicode ? (int)Encoding.Utf8 : (int)Encoding.Default;
                scheduledSms.UserGuid          = batchMessage.UserGuid;
                scheduledSms.Status            = (int)ScheduledSmsStatus.Stored;
                scheduledSms.DateTimeFuture    = DateTime.Now;
                scheduledSms.TypeSend          = batchMessage.SmsSendType;

                LogController <ServiceLogs> .LogInFile(ServiceLogs.APIProcessRequest, string.Format(@"batchMessage.ServiceId : {0},ScheduledSmsGuid : {1},PrivateNumberGuid: {2}", batchMessage.ServiceId, scheduledSms.ScheduledSmsGuid, scheduledSms.PrivateNumberGuid));

                if (batchMessage.ServiceId == null)
                {
                    LogController <ServiceLogs> .LogInFile(ServiceLogs.APIProcessRequest, string.Format("batchMessage.sendernumber : {0},batchMessage.UserGuid:{1}", batchMessage.SenderNumber, batchMessage.UserGuid));

                    scheduledSms.PrivateNumberGuid = Facade.PrivateNumber.GetUserNumberGuid(batchMessage.SenderNumber, batchMessage.UserGuid);

                    LogController <ServiceLogs> .LogInFile(ServiceLogs.APIProcessRequest, string.Format("scheduledSms.PrivateNumberGuid : {0} SendType : {1}", scheduledSms.PrivateNumberGuid, (SmsSendType)batchMessage.SmsSendType));

                    if (batchMessage.SmsSendType == (int)SmsSendType.SendSmsFromAPI)
                    {
                        lstReceivers = batchMessage.Receivers.Select <InProgressSms, string>(receiver => receiver.RecipientNumber).DefaultIfEmpty().ToList();
                        if (Facade.ScheduledSms.InsertSms(scheduledSms, lstReceivers))
                        {
                            ReceiveMessageFromQueue(msg.Id);
                        }
                    }
                    else if (batchMessage.SmsSendType == (int)SmsSendType.SendGroupSmsFromAPI)
                    {
                        scheduledSms.ReferenceGuid = string.Join(",", batchMessage.ReferenceGuid);
                        if (Facade.ScheduledSms.InsertGroupSms(scheduledSms))
                        {
                            ReceiveMessageFromQueue(msg.Id);
                        }
                    }
                }
                else
                {
                    if (batchMessage.Receivers.Count > 0)
                    {
                        lstReceivers = batchMessage.Receivers.Select <InProgressSms, string>(receiver => receiver.RecipientNumber).ToList();
                        if (Facade.ScheduledSms.InsertSms(scheduledSms, lstReceivers))
                        {
                            ReceiveMessageFromQueue(msg.Id);
                        }
                    }
                    else
                    {
                        scheduledSms.ReferenceGuid = batchMessage.ReferenceGuid.ToString();
                        scheduledSms.TypeSend      = (int)SmsSendType.SendGroupSmsFromAPI;
                        if (Facade.ScheduledSms.InsertGroupSms(scheduledSms))
                        {
                            ReceiveMessageFromQueue(msg.Id);
                        }
                    }
                }
            }
        }