Exemplo n.º 1
0
        public async void SendMatchSms(List <MatchSms> Ids)
        {
            List <SmsContainer> message = new List <SmsContainer>();

            foreach (var m in Ids)
            {
                bool shoulSendSms = LocalDefault.ShouldSendSms(Configuration, m.DateLastSms, m.MatchedDate);

                if (shoulSendSms)
                {
                    var    txtmsgTemplate = string.Empty;
                    string othersCount    = string.Empty;

                    PaymentRepository _pay = new PaymentRepository(Configuration);
                    _pay.GetPaymentInfo(m.PaymentId.ToString());

                    //Language lang = _pay.Language.ToLower() == "en" || _pay.Language.ToLower() == "english" || _pay.Language.ToLower() == "primary" ? Language.Primary : Language.Secondary;
                    ImisSms sms = new ImisSms(Configuration, WebRootPath, ContentRootPath, _pay.Language);

                    if (_pay.PaymentId != null)
                    {
                        if (_pay.InsureeProducts.Count > 1)
                        {
                            txtmsgTemplate = sms.GetMessage("PaidAndNotMatchedV2");
                            othersCount    = Convert.ToString(_pay.InsureeProducts.Count - 1);
                        }
                        else
                        {
                            txtmsgTemplate = sms.GetMessage("PaidAndNotMatched");
                        }
                        var familyproduct = _pay.InsureeProducts.FirstOrDefault();
                        var txtmsg        = string.Format(txtmsgTemplate,
                                                          _pay.PaidAmount,
                                                          DateTime.UtcNow.ToLongDateString(),
                                                          _pay.ControlNum,
                                                          familyproduct.InsureeNumber,
                                                          familyproduct.InsureeName,
                                                          familyproduct.ProductCode,
                                                          familyproduct.ProductName,
                                                          othersCount);


                        message.Add(new SmsContainer()
                        {
                            Message = txtmsg, Recipient = _pay.PhoneNumber
                        });
                        _pay.UnMatchedSmsSent(m.PaymentId);
                    }
                    else
                    {
                        throw new Exception();
                    }

                    var    fileName = "PayNotMatched_";
                    string test     = await sms.SendSMS(message, fileName);
                }
            }
        }