Beispiel #1
0
        public ActionResult SendSmS(SendSmsModel model, int?[] groups)
        {
            if (_workerContext.CurrentUserPersonalInformation.UserId != null)
            {
                var sendType = _genservice.GetAllSendType();
                var importname = _genservice.GetImportEntityPerUserID(_workerContext.CurrentUserPersonalInformation.UserId);
                BindCombo(model, importname);
                ComposeSms sms = new ComposeSms();
                if (model != null)
                {

                    List<string> numbers = model.receipientNumber.Split(',').ToList();

                    if (!string.IsNullOrEmpty(model.countryCode))
                    {
                        var num = _genservice.Numbers(numbers, model.countryCode);

                        if (num.Contains("Please Correct"))
                        {
                            model.merge.Add(new SelectListItem() { Text = "-Select-", Value = "-1", Selected = (model.mergestring == null) });
                            foreach (ImportEntity s in importname)
                                model.merge.Add(new SelectListItem() { Text = s.BatchName, Value = s.BatchName, Selected = (s.BatchName == model.mergestring) });

                            //model.Sendtype.Add(new SelectListItem() { Text = "-Select Send type-", Value = "-1", Selected = (model.Sendtype == null) });
                            foreach (SenderType s in sendType)
                                model.Sendtype.Add(new SelectListItem() { Text = s.Sendtype, Value = s.Id.ToString(), Selected = (s.Id == model.SendtypeId) });
                            TempData["line"] = string.Join(" ", num.ToArray()); ;
                            return View(model);
                        }

                        #region
                        if (model.DontSave == true)
                        {

                            var person = EngineContext.Resolve<IAuthenticationService>().GetAuthenticatedUser().UserId;
                            sms.SenderId = model.SenderId;
                            sms.message = model.message;
                            sms.UserId = _workerContext.CurrentUserPersonalInformation.UserId;
                            sms.SMSDate = DateTime.Now;
                            if (model.SendLaterDate > DateTime.Now)
                            {
                                sms.SendLaterDate = model.SendLaterDate;
                                sms.SendLaterTime = model.SendLaterTime;
                            }
                            else
                            {
                                sms.SendLaterDate = null;
                                sms.SendLaterTime = null;
                            }
                            if (model.SendtypeId >= 1)
                            {
                                sms.SendTypeId = model.SendtypeId;
                            }
                            else
                            {
                                TempData["warning"] = "Please Select send type";
                            }
                            if (groups != null)
                            {
                                var phonebook = _genservice.SendFromPhoneBook(groups);
                                foreach (string pnum in phonebook)
                                {
                                    num.Add(pnum);
                                }
                            }
                            foreach (string s_numbers in num.Distinct())
                            {
                                if (model.SendLaterDate > DateTime.Now)
                                {
                                    sms.NumberId = s_numbers;
                                    sms.MessageStatusId = (int)SystemEnums.MessageStatus.Pending;
                                    _genservice.numbers(sms);
                                }
                                sms.NumberId = s_numbers;
                                sms.MessageStatusId = (int)SystemEnums.MessageStatus.Waiting;
                                _genservice.numbers(sms);
                            }
                            //_smsService.SendSms(sms);
                            //_genservice.Savenumbers(sms.NumberId);
                            //_genservice.SaveMessagenumbers()
                            //doing the actuall sending
                            //if (sms.SendTypeId == 1)
                            //{
                            //    foreach (string x in sms.r.Split(','))
                            //    {
                            //        string pattern = @"\d{11}";

                            //        if (Regex.Match(x.Trim(), pattern).Success)
                            //        {

                            //        }
                            //        else
                            //        {
                            //            TempData["rollback"] = string.Format("{0},Is not in correct format", x);
                            //        }

                            //    }
                            //    TempData["Success"] = "Sent Succefully";
                            //}
                            if (sms.SendTypeId == 2)
                            {
                                TempData["Success"] = "Sucessfully saved as Draft";
                            }
                            if (sms.SendTypeId == 3)
                            {
                                TempData["Success"] = "Your message will be sent at the stipulated time";
                            }

                        }
                        #endregion
                        #region
                        if (model.SaveAs == true)
                        {
                            //checking if the batchName already exist for that user
                            var existingbook = _genservice.GetBatchNameForUser(model.newGroup, _workerContext.CurrentUserPersonalInformation.UserId);
                            if (!string.IsNullOrEmpty(existingbook))
                            {
                                ImportEntity import = new ImportEntity();
                                import.BatchName = model.newGroup;
                                import.BatchCount = num.Count();
                                import.countryCode = model.countryCode;
                                import.Numbers = String.Join(",", num);
                                import.UserId = _workerContext.CurrentUserPersonalInformation.UserId;
                                _genservice.saveBulk(import);
                                TempData["success"] = "Sucessfully Updated";

                                var person = EngineContext.Resolve<IAuthenticationService>().GetAuthenticatedUser().UserId;
                                sms.SenderId = model.SenderId;
                                sms.message = model.message;
                                sms.UserId = _workerContext.CurrentUserPersonalInformation.UserId;
                                sms.SMSDate = DateTime.Now;
                                if (model.SendLaterDate > DateTime.Now)
                                {
                                    sms.SendLaterDate = model.SendLaterDate;
                                    sms.SendLaterTime = model.SendLaterTime;
                                }
                                else
                                {
                                    sms.SendLaterDate = null;
                                    sms.SendLaterTime = null;
                                }
                                if (model.SendtypeId >= 1)
                                {
                                    sms.SendTypeId = model.SendtypeId;
                                }
                                else
                                {
                                    TempData["warning"] = "Please Select send type";
                                }

                                if (groups != null)
                                {
                                    var phonebook = _genservice.SendFromPhoneBook(groups);
                                    foreach (string pnum in phonebook)
                                    {
                                        num.Add(pnum);
                                    }
                                }
                                foreach (string s_numbers in num.Distinct())
                                {
                                    if (model.SendLaterDate > DateTime.Now)
                                    {
                                        sms.NumberId = s_numbers;
                                        sms.MessageStatusId = (int)SystemEnums.MessageStatus.Pending;
                                        _genservice.numbers(sms);
                                    }
                                    sms.NumberId = s_numbers;
                                    sms.MessageStatusId = (int)SystemEnums.MessageStatus.Waiting;
                                    _genservice.numbers(sms);
                                }
                                //doing the actual sending
                                //if (sms.SendTypeId == 1)
                                //{
                                //    foreach (string x in sms.receipientNumber.Split(','))
                                //    {
                                //        string pattern = @"\d{11}";

                                //        if (Regex.Match(x.Trim(), pattern).Success)
                                //        {

                                //        }
                                //        else
                                //        {
                                //            TempData["rollback"] = string.Format("{0},Is not in correct format", x);
                                //        }

                                //    }
                                //    TempData["Success"] = "Sent Succefully";
                                //}
                                if (sms.SendTypeId == 2)
                                {
                                    TempData["Success"] = "Sucessfully saved as Draft";
                                }
                                if (sms.SendTypeId == 3)
                                {
                                    TempData["Success"] = "Your message will be sent at the stipulated time";
                                }
                            }
                        }
                        #endregion
                        #region
                        if (model.MergeInto == true)
                        {
                            var oldgroupNum = _genservice.GetBatchNumbersWithUserId(_workerContext.CurrentUserPersonalInformation.UserId, model.mergestring);
                            List<string> mergeWith = oldgroupNum.Numbers.Split(',').ToList<string>();

                            List<string> lst = model.receipientNumber.Split(',').ToList();
                            var newNum = _genservice.Numbers(lst, model.countryCode);

                            if (newNum.Contains("Please Correct"))
                            {
                                model.merge.Add(new SelectListItem() { Text = "-Select-", Value = "-1", Selected = (model.mergestring == null) });
                                foreach (ImportEntity s in importname)
                                    model.merge.Add(new SelectListItem() { Text = s.BatchName, Value = s.BatchName, Selected = (s.BatchName == model.mergestring) });

                                //model.Sendtype.Add(new SelectListItem() { Text = "-Select Send type-", Value = "-1", Selected = (model.Sendtype == null) });
                                foreach (SenderType s in sendType)
                                    model.Sendtype.Add(new SelectListItem() { Text = s.Sendtype, Value = s.Id.ToString(), Selected = (s.Id == model.SendtypeId) });
                                TempData["line"] = string.Join(" ", num.ToArray()); ;
                                return View(model);
                            }
                            foreach (string merge in mergeWith)
                            {
                                newNum.Add(merge);
                            }

                            newNum.Count();
                            //ImportEntity import = new ImportEntity();
                            oldgroupNum.BatchName = model.mergestring;
                            oldgroupNum.BatchCount = newNum.Count();
                            oldgroupNum.countryCode = model.countryCode;
                            oldgroupNum.Numbers = String.Join(",", newNum);
                            oldgroupNum.UserId = _workerContext.CurrentUserPersonalInformation.UserId;
                            _genservice.saveBulk(oldgroupNum);
                            TempData["success"] = "Sucessfully Updated";
                            foreach (string addto in newNum)
                            {
                                num.Add(addto);
                            }
                            var person = EngineContext.Resolve<IAuthenticationService>().GetAuthenticatedUser().UserId;
                            sms.SenderId = model.SenderId;
                            sms.message = model.message;
                            sms.UserId = _workerContext.CurrentUserPersonalInformation.UserId;
                            sms.SMSDate = DateTime.Now;
                            if (model.SendLaterDate > DateTime.Now)
                            {
                                sms.SendLaterDate = model.SendLaterDate;
                                sms.SendLaterTime = model.SendLaterTime;
                            }
                            else
                            {
                                sms.SendLaterDate = null;
                                sms.SendLaterTime = null;
                            }
                            if (model.SendtypeId >= 1)
                            {
                                sms.SendTypeId = model.SendtypeId;
                            }
                            else
                            {
                                TempData["warning"] = "Please Select send type";
                            }
                            if (groups != null)
                            {
                                var phonebook = _genservice.SendFromPhoneBook(groups);
                                foreach (string pnum in phonebook)
                                {
                                    num.Add(pnum);
                                }
                            }
                            foreach (string s_numbers in num.Distinct())
                            {
                                if (model.SendLaterDate > DateTime.Now)
                                {
                                    sms.NumberId = s_numbers;
                                    sms.MessageStatusId = (int)SystemEnums.MessageStatus.Pending;
                                    _genservice.numbers(sms);
                                }
                                sms.NumberId = s_numbers;
                                sms.MessageStatusId = (int)SystemEnums.MessageStatus.Waiting;
                                _genservice.numbers(sms);
                            }
                            //doing the actual sending
                            //if (sms.SendTypeId == 1)
                            //{
                            //    foreach (string x in sms.receipientNumber.Split(','))
                            //    {
                            //        string pattern = @"\d{11}";

                            //        if (Regex.Match(x.Trim(), pattern).Success)
                            //        {

                            //        }
                            //        else
                            //        {
                            //            TempData["rollback"] = string.Format("{0},Is not in correct format", x);
                            //        }

                            //    }
                            //    TempData["Success"] = "Sent Succefully";
                            //}
                            if (sms.SendTypeId == 2)
                            {
                                TempData["Success"] = "Sucessfully saved as Draft";
                            }
                            if (sms.SendTypeId == 3)
                            {
                                TempData["Success"] = "Your message will be sent at the stipulated time";
                            }

                        }
                        #endregion

                    }
                }

                model.merge.Add(new SelectListItem() { Text = "-Select-", Value = "-1", Selected = (model.mergestring == null) });
                foreach (ImportEntity s in importname)
                    model.merge.Add(new SelectListItem() { Text = s.BatchName, Value = s.BatchName, Selected = (s.BatchName == model.mergestring) });

                //model.Sendtype.Add(new SelectListItem() { Text = "-Select Send type-", Value = "-1", Selected = (model.Sendtype == null) });
                foreach (SenderType s in sendType)
                    model.Sendtype.Add(new SelectListItem() { Text = s.Sendtype, Value = s.Id.ToString(), Selected = (s.Id == model.SendtypeId) });
                return RedirectToAction("SuccessPages", "Home");
            }
            else return RedirectToAction("Default", "Default");
        }
Beispiel #2
0
        public void numbers(ComposeSms entry, Numbers num)
        {
            this._smsStatus.SaveOrUpdate(entry);
               if(!string.IsNullOrEmpty(entry.NumberId))
               {

               }
        }
Beispiel #3
0
 public void SaveMessagenumbers(ComposeSms  entry)
 {
     var sendDate = entry.SendLaterDate.HasValue ? entry.SendLaterDate.Value :DateTime.Now.Date;
     var sendTime = entry.SendLaterTime.HasValue ? entry.SendLaterTime.Value : DateTime.Now.ToLocalTime();
     Procedures.Messages(entry.message,entry.MessageStatusId, entry.SenderId, entry.SMSDate, entry.UserId, sendTime, sendDate, entry.SendTypeId, entry.NumberId);
 }
Beispiel #4
0
 public ComposeSms SendSms(ComposeSms entry)
 {
     this._smsStatus.SaveOrUpdate(entry);
        return entry;
 }
Beispiel #5
0
        public void numbers(ComposeSms entry)
        {
            var num = NumbersReused(entry.NumberId);
            if (!string.IsNullOrEmpty(entry.NumberId) && string.IsNullOrEmpty(num))
            {
                try
                {
                    Savenumbers(entry.NumberId);
                    SaveMessagenumbers(entry);
                }
                catch(Exception ex)
                {
                    throw ex;
                }
            }
            else if(!string.IsNullOrEmpty(num))
            {
                SaveMessagenumbers(entry);

            }
        }