예제 #1
0
        public void Add(int UserId, string ToId, int CharNumber, int SMSFreeLimit, string Message, bool IsBirthday)
        {
            UserSms obj = new UserSms();

            obj.UserId       = UserId.ToString();
            obj.ToId         = ToId;
            obj.Message      = "-";
            obj.CharNumber   = CharNumber;
            obj.SMSFreeLimit = SMSFreeLimit;
            obj.IsBirthday   = IsBirthday;
            repository.Save(obj);

            repository.Commit();
        }
예제 #2
0
 public void Add(int UserId, IEnumerable <string> arrFriendIds, int CharNumber, int SMSFreeLimit, string Message, bool IsBirthday)
 {
     foreach (var item in arrFriendIds)
     {
         UserSms obj = new UserSms();
         obj.UserId       = UserId.ToString();
         obj.ToId         = item;
         obj.Message      = "-";
         obj.CharNumber   = CharNumber;
         obj.SMSFreeLimit = SMSFreeLimit;
         obj.IsBirthday   = IsBirthday;
         repository.Save(obj);
     }
     repository.Commit();
 }
예제 #3
0
        public async Task <bool> SendUserSms(User user, SmsType smsType)
        {
            var approvalCode = GetRandomApprovalCode();
            var userSms      = new UserSms
            {
                UserId       = user.UserId,
                PhoneNumber  = user.PhoneNumber,
                ApprovalCode = approvalCode,
                Text         = GetSmsText(approvalCode),
                Status       = (int)SmsStatus.Unapproved,
                SmsType      = (int)smsType,
                IsSent       = 0
            };

            #region
            //email for test purpose only. it should be replaced to send SMS
            SendSimpleMessage(userSms.Text);
            #endregion
            return(await _userSmsRepository.AddUserSms(userSms));
        }
예제 #4
0
        public ActionResult Default(UserSms entity, string ToIds, string ToMsisdns)
        {
            try
            {
                bool ServiceRequestStatus      = true;
                bool multipleSendContainErrors = false;

                //WebSMS Servis Cagrisi.
                WebSmsHandler handler          = new WebSmsHandler();
                string[]      recipientMsisdns = ToMsisdns.Split(',');

                foreach (var recipient in recipientMsisdns)
                {
                    WebSms smsSendResult = handler.PrepareData(UserFb.Data.Msisdn, recipient, entity.Message);
                    if (smsSendResult.Error != null)
                    {
                        multipleSendContainErrors = true;
                    }
                }

                //BURADA ASLINDA BASARILI OLMA - KISMEN BASARILI OLMA VE TAMAMEN HATALI OLMA DURUMLARI VAR
                //BU IFI GENISLETMEK GEREKIYOR.
                if (ServiceRequestStatus == true && multipleSendContainErrors == false)
                {
                    ToIds = ToIds.Remove(0, 1);
                    ToIds = ToIds.Remove((int)ToIds.Length - 1, 1);
                    service.Add(UserFb.Data.Id, ToIds.Split(',').ToArray(), entity.CharNumber, entity.SMSFreeLimit, entity.Message, false);
                    return(PartialResultSuccess("RequestSuccess"));
                }
                else
                {
                    return(PartialResultError("SentSMSError"));
                }
            }
            catch (Exception)
            {
                return(PartialResultError());
            }
        }
예제 #5
0
        public ActionResult Default(UserSms entity, string ToIds, string ToMsisdns)
        {
            try
            {
                WebSmsModel model = new WebSmsModel();

                //WebSMS Servis Cagrisi.
                WebSmsHandler handler          = new WebSmsHandler();
                string[]      recipientMsisdns = ToMsisdns.Split(',');

                if (recipientMsisdns.Length > 1)
                {
                    //COKLU SMS GONDERIMI
                    model.serviceData = handler.PrepareData(UserFb.Data.Msisdn, recipientMsisdns, entity.Message);
                }
                else
                {
                    //TEK KISIYE SMS GONDERIMI
                    model.serviceData = handler.PrepareData(UserFb.Data.Msisdn, recipientMsisdns[0], entity.Message);
                }

                if (model.serviceData.Error != null)
                {
                    //Eger servisten Error parametresi dolu gelmis ise zaten temel bir hata olusmustur
                    //bu sebepten hiçbir mesaj gönderilememistir. Dogrudan error gösterilebilir.
                    return(PartialResultError("SentSMSError"));
                }
                else
                {
                    //Error gelmedi ise, dönen result set içerisinde gönderim yapılan numaralar mutlaka var.
                    //bunlari arkadaslar ile join edip birlestiriyoruz.
                    var joinResult = (from u in model.serviceData.Recipients
                                      join p in UserFb.Friends on u.Msisdn equals p.Msisdn
                                      into a
                                      from f in a.DefaultIfEmpty(new UserFbFriendModel())
                                      select new SmsGonderResultModel
                    {
                        FbId = f.FbId,
                        UserId = f.UserId,
                        PictureLink = f.PictureLink,
                        FirstNameView = f.FirstNameView,
                        LastNameView = f.LastNameView,

                        Msisdn = u.Msisdn,
                        Charge = u.Charge,
                        Status = u.Status
                    }).ToList();

                    //Mesut Müdür, Bu joinResult senin view tarafında basacağın arkadaş eşleştirmeli sms gönderim sonuçlarını içeriyor.
                    //SmsGonderResultModel'i inceleyerek hangi alanların geldiğini görebilirsin.

                    ToIds = ToIds.Remove(0, 1);
                    ToIds = ToIds.Remove((int)ToIds.Length - 1, 1);
                    service.Add(UserFb.Data.Id, ToIds.Split(',').ToArray(), entity.CharNumber, entity.SMSFreeLimit, String.Empty, false);
                    //return PartialResultSuccess("RequestSuccess");

                    return(PartialView("SmsResult", joinResult.ToList()));
                }
            }
            catch (Exception)
            {
                return(PartialResultError("SentSMSError"));
            }
        }