Esempio n. 1
0
        static void Main(string[] args)
        {
            var nowHour         = DateTime.Now.Hour;
            var excellReminder1 = 10;
            var excellReminder2 = 16;
            var postSmsReminder = 21;
            var numbers         = new List <string>()
            {
                "09354047788", "09124254257", "09122196672", "09128639319", "09122010861", "09126046937", "09124598925", "09126904936", "09361604970"
            };

            //if (nowHour == postSmsReminder)
            //{
            //    Console.WriteLine("Time Is Correct");
            //    NikSmsWebServiceClient.SendSmsNik("لطفا کدهای رهگیری مرسولات پستی گالری کیا را به شماره 09903160575 ارسال بفرمایید. باتشکر", "09122400802");
            //}
            //if (nowHour == excellReminder1)
            //{
            //    Console.WriteLine("Time Is Correct");
            //    NikSmsWebServiceClient.SendSmsNik("همکار گرامی لطفا فایل اکسل موجودی شعبه را در پورتال وارد نماید.", numbers);
            //}

            //if (nowHour == excellReminder2)
            //{
            //    Console.WriteLine("Time Is Correct");
            //    NikSmsWebServiceClient.SendSmsNik("همکار گرامی لطفا فایل اکسل موجودی شعبه را در پورتال وارد نماید.", numbers);
            //}

            using (var db = new KiaGalleryMainEntities())
            {
                var todayDate        = DateTime.Now.Date;
                var yesterday        = DateTime.Now.AddDays(-1);
                var DayOfWeek        = DateTime.Today.DayOfWeek;
                var DayOfMonth       = DateUtility.GetPersianDay(DateTime.Now);
                var todayTime        = DateTime.Now.TimeOfDay;
                var currentHour      = DateTime.Now.Hour;
                var timeOfDayMinutes = (int)todayTime.TotalMinutes;
                var ticks            = DateTime.Now.Ticks;
                var list             = db.Sms.Where(x => x.TimeTotalMinutes == timeOfDayMinutes && x.CreateDate > yesterday).Select(x => new
                {
                    id                = x.Id,
                    time              = x.Time,
                    sendingDate       = x.SendingDate,
                    timeTotalMinutes  = x.TimeTotalMinutes,
                    text              = x.Text,
                    destinationNumber = x.DestinationNumber,
                    userId            = x.UserId,
                    branchId          = x.BranchId,
                    sent              = x.Sent,
                    sendingTimeMethod = x.SendingTimeMethod,
                    dayOfWeek         = x.DayOfWeek,
                    dayOfMonth        = x.DayOfMonth,
                }).ToList();

                if (list.Count > 0 && list != null)
                {
                    foreach (var item in list)
                    {
                        var entity = db.Sms.Where(x => x.Id == item.id).Single();
                        if (item.sendingTimeMethod == 0)
                        {
                            if (!string.IsNullOrEmpty(item.branchId))
                            {
                                var        branchId       = item.branchId.Split('-');
                                List <int> branchIdList   = branchId.Select(int.Parse).ToList();
                                var        personelNumber = db.UserProfile.Where(y => branchIdList.Contains(y.BranchId.Value) && y.PhoneNumber != null && y.PhoneNumber != "").Select(y => y.PhoneNumber).ToList();
                                NikSmsWebServiceClient.SendSmsNik(item.text, personelNumber);
                                entity.Sent = true;
                                db.SaveChanges();
                            }
                            if (!string.IsNullOrEmpty(item.userId))
                            {
                                var        userId         = item.userId.Split('-');
                                List <int> userIdList     = userId.Select(int.Parse).ToList();
                                var        personelNumber = db.UserProfile.Where(y => userIdList.Contains(y.Id) && y.PhoneNumber != null && y.PhoneNumber != "").Select(y => y.PhoneNumber).ToList();
                                NikSmsWebServiceClient.SendSmsNik(item.text, personelNumber);
                                entity.Sent = true;
                                db.SaveChanges();
                            }
                            if (item.destinationNumber != null && item.destinationNumber != "" && !item.destinationNumber.Contains('-'))
                            {
                                NikSmsWebServiceClient.SendSmsNik(item.text, item.destinationNumber);
                                entity.Sent = true;
                                db.SaveChanges();
                            }
                            if (item.destinationNumber != null && item.destinationNumber != "" && item.destinationNumber.Contains('-'))
                            {
                                Console.WriteLine(string.Format("Sending DaGgte is {0} SendingTime Is {1}", item.sendingDate.Date, item.time));
                                var numberList         = item.destinationNumber.Split('-');
                                var destinationNumbers = new List <string>();
                                destinationNumbers.AddRange(numberList);
                                NikSmsWebServiceClient.SendSmsNik(item.text, destinationNumbers);
                                Console.WriteLine("Message Sent");
                                entity.Sent = true;
                                db.SaveChanges();
                            }
                        }
                        if (item.sendingTimeMethod == 1 && DayOfWeek.ToString() == item.dayOfWeek)
                        {
                            if (!string.IsNullOrEmpty(item.branchId))
                            {
                                var        branchId       = item.branchId.Split('-');
                                List <int> branchIdList   = branchId.Select(int.Parse).ToList();
                                var        personelNumber = db.UserProfile.Where(y => branchIdList.Contains(y.BranchId.Value) && y.PhoneNumber != null && y.PhoneNumber != "").Select(y => y.PhoneNumber).ToList();
                                NikSmsWebServiceClient.SendSmsNik(item.text, personelNumber);
                            }
                            if (!string.IsNullOrEmpty(item.userId))
                            {
                                var        userId         = item.userId.Split('-');
                                List <int> userIdList     = userId.Select(int.Parse).ToList();
                                var        personelNumber = db.UserProfile.Where(y => userIdList.Contains(y.Id) && y.PhoneNumber != null && y.PhoneNumber != "").Select(y => y.PhoneNumber).ToList();
                                NikSmsWebServiceClient.SendSmsNik(item.text, personelNumber);
                            }
                            if (item.destinationNumber != null && item.destinationNumber != "" && !item.destinationNumber.Contains('-'))
                            {
                                NikSmsWebServiceClient.SendSmsNik(item.text, item.destinationNumber);
                            }
                            if (item.destinationNumber != null && item.destinationNumber != "" && item.destinationNumber.Contains('-'))
                            {
                                Console.WriteLine(string.Format("Sending DaGgte is {0} SendingTime Is {1}", item.sendingDate.Date, item.time));
                                var numberList         = item.destinationNumber.Split('-');
                                var destinationNumbers = new List <string>();
                                destinationNumbers.AddRange(numberList);
                                NikSmsWebServiceClient.SendSmsNik(item.text, destinationNumbers);
                                Console.WriteLine("Message Sent");
                            }
                            entity.Sent = true;
                            db.SaveChanges();
                        }

                        if (item.sendingTimeMethod == 2 && item.dayOfMonth == DayOfMonth)
                        {
                            var newSms = new Sms()
                            {
                                Text              = item.text,
                                DayOfMonth        = item.dayOfMonth,
                                DayOfWeek         = item.dayOfWeek,
                                SendingTimeMethod = item.sendingTimeMethod,
                                Sent              = false,
                                DestinationNumber = item.destinationNumber,
                                UserId            = item.userId,
                                BranchId          = item.branchId,
                                SendingDate       = DateTime.Now,
                                TimeTotalMinutes  = (int)TimeSpan.Parse(item.time).TotalMinutes,
                                Time              = item.time,
                                CreateUserId      = 1,
                                ModifyUserId      = 1,
                            };
                            if (!string.IsNullOrEmpty(item.branchId))
                            {
                                var        branchId       = item.branchId.Split('-');
                                List <int> branchIdList   = branchId.Select(int.Parse).ToList();
                                var        personelNumber = db.UserProfile.Where(y => branchIdList.Contains(y.BranchId.Value) && y.PhoneNumber != null && y.PhoneNumber != "").Select(y => y.PhoneNumber).ToList();
                                NikSmsWebServiceClient.SendSmsNik(item.text, personelNumber);
                            }
                            if (!string.IsNullOrEmpty(item.userId))
                            {
                                var        userId         = item.userId.Split('-');
                                List <int> userIdList     = userId.Select(int.Parse).ToList();
                                var        personelNumber = db.UserProfile.Where(y => userIdList.Contains(y.Id) && y.PhoneNumber != null && y.PhoneNumber != "").Select(y => y.PhoneNumber).ToList();
                                NikSmsWebServiceClient.SendSmsNik(item.text, personelNumber);
                            }
                            if (item.destinationNumber != null && item.destinationNumber != "" && !item.destinationNumber.Contains('-'))
                            {
                                NikSmsWebServiceClient.SendSmsNik(item.text, item.destinationNumber);
                            }
                            if (item.destinationNumber != null && item.destinationNumber != "" && item.destinationNumber.Contains('-'))
                            {
                                Console.WriteLine(string.Format("Sending DaGgte is {0} SendingTime Is {1}", item.sendingDate.Date, item.time));
                                var numberList         = item.destinationNumber.Split('-');
                                var destinationNumbers = new List <string>();
                                destinationNumbers.AddRange(numberList);
                                NikSmsWebServiceClient.SendSmsNik(item.text, destinationNumbers);
                                Console.WriteLine("Message Sent");
                            }
                            entity.Sent = true;
                            db.Sms.Add(newSms);
                            db.SaveChanges();
                        }
                        if (item.sendingTimeMethod == 3 && todayDate == item.sendingDate)
                        {
                            if (!string.IsNullOrEmpty(item.branchId))
                            {
                                var        branchId       = item.branchId.Split('-');
                                List <int> branchIdList   = branchId.Select(int.Parse).ToList();
                                var        personelNumber = db.UserProfile.Where(y => branchIdList.Contains(y.BranchId.Value) && y.PhoneNumber != null && y.PhoneNumber != "").Select(y => y.PhoneNumber).ToList();
                                NikSmsWebServiceClient.SendSmsNik(item.text, personelNumber);
                            }
                            if (!string.IsNullOrEmpty(item.userId))
                            {
                                var        userId         = item.userId.Split('-');
                                List <int> userIdList     = userId.Select(int.Parse).ToList();
                                var        personelNumber = db.UserProfile.Where(y => userIdList.Contains(y.Id) && y.PhoneNumber != null && y.PhoneNumber != "").Select(y => y.PhoneNumber).ToList();
                                NikSmsWebServiceClient.SendSmsNik(item.text, personelNumber);
                            }
                            if (item.destinationNumber != null && item.destinationNumber != "" && !item.destinationNumber.Contains('-'))
                            {
                                NikSmsWebServiceClient.SendSmsNik(item.text, item.destinationNumber);
                            }
                            if (item.destinationNumber != null && item.destinationNumber != "" && item.destinationNumber.Contains('-'))
                            {
                                Console.WriteLine(string.Format("Sending DaGgte is {0} SendingTime Is {1}", item.sendingDate.Date, item.time));
                                var numberList         = item.destinationNumber.Split('-');
                                var destinationNumbers = new List <string>();
                                destinationNumbers.AddRange(numberList);
                                NikSmsWebServiceClient.SendSmsNik(item.text, destinationNumbers);
                                Console.WriteLine("Message Sent");
                            }
                            entity.Sent = true;
                            db.SaveChanges();
                        }
                    }
                    Console.WriteLine("Task Complete");
                }
                else
                {
                    Console.WriteLine("No Data");
                }
            }
        }