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; }
/// <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; } }