コード例 #1
0
        private static String ActualSmsSend(string mobilenumber, string message, string Gateway, CampaignDTO CampaignDTO, ClientDTO ClientDTO)
        {
            string result = "";

            int SMSMsgCount = GetMessageCount(message);
            message = MsgCorrect(message);

            if (CampaignDTO.MessageCount != SMSMsgCount)
            {
                CampaignDTO.MessageCount = SMSMsgCount;
            }

            if (message != "" && mobilenumber != "")// Check for empty message.
            {

                string Url = ConfigurationManager.AppSettings["TransactionalGateWay"].ToString();
                Url = Url.Replace("%26", "&");
                Url = Url.Replace("[recipient]", mobilenumber);
                Url = Url.Replace("[message]", message);
                if (Gateway != "022751") //if (Gateway.ToLower() != "default")
                {
                    Url = Url.Replace("[gateway]", Gateway); //Gateway = "MSGBLS"
                }
                else
                {
                    Url="";
                    Url = ConfigurationManager.AppSettings["PromotionalGateWay"].ToString();
                    Url = Url.Replace("%26", "&");
                    Url = Url.Replace("[recipient]", mobilenumber);
                    Url = Url.Replace("[message]", message);
                }

                HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(Url);
                myRequest.Method = "GET";
                WebResponse myResponse = myRequest.GetResponse();
                StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8);
                result = sr.ReadToEnd();
                sr.Close();

                string statuscode = "";
                if (result.Contains('|'))
                    statuscode = result.Substring(0, result.IndexOf('|'));
                else
                    statuscode = result;

                string SMSReplyMessage = SMSResult(statuscode) + "-" + result; //result
                myResponse.Close();

                CampaignLogDTO CampaignLogDTO = new CampaignLogDTO();
                CampaignLogDTO.CampaignId = CampaignDTO.Id;
                CampaignLogDTO.RecipientsNumber = mobilenumber;
                CampaignLogDTO.MessageStatus = SMSReplyMessage;
                CampaignLogDTO.Message = message;
                CampaignLogDTO.GatewayID = Gateway;
                CampaignLogDTO.SentDateTime = System.DateTime.Now;

                CampaignLogDTO.MessageID = statuscode;
                CampaignLogDTO.MessageCount = SMSMsgCount;

                if (statuscode == "1701")
                {
                    CampaignLogDTO.IsSuccess = true;
                }
                else if (statuscode != "1701")
                {
                    CampaignLogDTO.IsSuccess = false;
                }

                CampaignLogService.Create(CampaignLogDTO);

                // Reduce SMS Credits From Clients List
                ClientDTO.SMSCredit = ClientDTO.SMSCredit - SMSMsgCount;// CampaignDTO.MessageCount;
                ClientService.Edit(ClientDTO);

            }

            return result;
        }
コード例 #2
0
        /// <summary>
        ///  Campaign Log Success or Failed count
        /// </summary>
        /// <param name="CampaignId">Campaign Id</param>
        /// <param name="IsSuccessful">TRUE OR False</param>
        /// <param name="pagingInfo">pagingInfo object</param>
        /// <returns>Count of Campaign Log</returns>
        public static int GetCampaignLogXMLPagedCountByCampaignId(int CampaignId, bool IsSuccessful, PagingInfo pagingInfo)
        {
            List<CampaignLogXMLDTO> CampaignLogXMLDTOList = new List<CampaignLogXMLDTO>();

            List<CampaignLogDTO> CampaignLogDTOList = new List<CampaignLogDTO>();

            try
            {
                UnitOfWork uow = new UnitOfWork();
                IEnumerable<CampaignLogXML> CampaignLogXML = uow.CampaignLogXMLRepo.GetAll().Where(e => e.CampaignId == CampaignId).ToList();
                if (CampaignLogXML != null)
                {
                    foreach (var item in CampaignLogXML)
                    {
                        CampaignLogXMLDTOList.Add(Transform.CampaignLogXMLToDTO(item));
                    }

                    if (CampaignLogXMLDTOList != null)
                    {
                        foreach (var item in CampaignLogXMLDTOList)
                        {
                            SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["msgBlasterWebContext"].ToString());
                            con.Open();
                            SqlCommand command = new SqlCommand("Select XMLLog From CampaignLogXMLs WHERE Id=" + item.Id, con);

                            XmlDocument xdoc = new XmlDocument();
                            XmlReader reader = command.ExecuteXmlReader();

                            if (reader.Read())
                            {
                                xdoc.Load(reader);

                                //XmlNodeList msgList = xdoc.SelectNodes("/packet/numbers/message");
                                //XmlNodeList numList = xdoc.SelectNodes("/packet/numbers/number");

                                foreach (XmlNode currentnode in xdoc.DocumentElement.GetElementsByTagName("numbers"))
                                {

                                    //

                                    XmlNodeList numList = xdoc.SelectNodes("/packet/numbers/number");
                                    foreach (XmlNode node in numList)
                                    {
                                        CampaignLogDTO CampaignLogDTO = new CampaignLogDTO();
                                        CampaignLogDTO.RecipientsNumber = node.InnerText;// node.SelectNodes("number").Item(0).InnerText;// node.SelectSingleNode("number").InnerText;
                                        string MsgStatus = null;
                                        string code = null;

                                        if (node.Attributes != null)
                                        {
                                            code = node.Attributes["msgCode"].Value;
                                            CampaignLogDTO.SentDateTime = Convert.ToDateTime(node.Attributes["sentTime"].Value);
                                            CampaignLogDTO.MessageCount = Convert.ToInt32(node.Attributes["msgCount"].Value);
                                            CampaignLogDTO.RequiredCredits = Convert.ToDouble(node.Attributes["msgCredits"].Value);

                                        }

                                        MsgStatus = CodeDescription(code);
                                        CampaignLogDTO.MessageStatus = MsgStatus;
                                        if (IsSuccessful == true)
                                        {
                                            if (code == "1701" || code == "0")
                                            {
                                                CampaignLogDTOList.Add(CampaignLogDTO);
                                            }
                                        }
                                        else if (code != "1701" && code != "0")
                                        {
                                            CampaignLogDTOList.Add(CampaignLogDTO);
                                        }

                                    }
                                }

                            }
                            con.Close();

                            if (pagingInfo.Search != "" && pagingInfo.Search != null)
                            {
                                bool Isdate = CommonService.IsDate(pagingInfo.Search);
                                if (Isdate != true)
                                {
                                    List<CampaignLogDTO> CampaignLogDTOSearchList = new List<CampaignLogDTO>();
                                    //var CampaignLogSearch = CampaignLogDTOList.Where(e => e.MessageStatus.ToLower().Contains(pagingInfo.Search.ToLower()) || e.Message.ToLower().Contains(pagingInfo.Search.ToLower()) || (e.MessageID != null ? (e.MessageID.ToLower().Contains(pagingInfo.Search.ToLower())) : false) || e.RecipientsNumber.Contains(pagingInfo.Search) || (e.GatewayID != null ? (e.GatewayID.ToLower().Contains(pagingInfo.Search.ToLower())) : false)).OrderByDescending(e => e.SentDateTime);
                                    var CampaignLogSearch = CampaignLogDTOList.Where(e => e.MessageStatus.ToLower().Contains(pagingInfo.Search.ToLower()) || e.RecipientsNumber.Contains(pagingInfo.Search) || (e.SentDateTime.ToString() != null ? (Convert.ToDateTime(e.SentDateTime).ToString("dd-MMM-yyyy").ToLower().Contains(pagingInfo.Search.ToLower())) : false)).OrderByDescending(e => e.SentDateTime); //|| (e.GatewayID != null ? (e.GatewayID.ToLower().Contains(pagingInfo.Search.ToLower())) : false)|| e.Message.ToLower().Contains(pagingInfo.Search.ToLower())|| (e.MessageID != null ? (e.MessageID.ToLower().Contains(pagingInfo.Search.ToLower())) : false)|| (e.CampaignName != null ? (e.CampaignName.ToLower().Contains(search.ToLower())) : false)

                                    if (CampaignLogSearch != null)
                                    {
                                        foreach (var itemsearch in CampaignLogSearch)
                                        {

                                            CampaignLogDTOSearchList.Add(itemsearch);
                                        }
                                    }
                                    return CampaignLogDTOSearchList.Count();

                                }
                                else
                                {
                                    List<CampaignLogDTO> CampaignLogDTOSearchList = new List<CampaignLogDTO>();
                                    DateTime date = Convert.ToDateTime(pagingInfo.Search);
                                    var CampaignLogSearch = CampaignLogDTOList.Where(e => e.SentDateTime >= date && e.SentDateTime < date.AddDays(1)).OrderByDescending(e => e.SentDateTime);
                                    if (CampaignLogSearch != null)
                                    {
                                        foreach (var itemsearch in CampaignLogSearch)
                                        {

                                            CampaignLogDTOSearchList.Add(itemsearch);
                                        }
                                    }
                                    return CampaignLogDTOSearchList.Count();

                                }
                            }

                        }

                    }
                    //List<CampaignLogXMLDTO> CampaignLogXMLDTOSearchList = new List<CampaignLogXMLDTO>();
                }
                return CampaignLogDTOList.Count();
            }
            catch (Exception)
            {
                throw;
            }
        }