Example #1
0
        public async Task <Result> SendSmsCodeAsync(string phoneNumber, string countryCode)
        {
            var isExist = await _userQueryRepository.IsExistPhoneAsync(phoneNumber);

            if (!isExist)
            {
                return(Result.Fail(EC.PhoneNotFound, ET.PhoneNotFound));
            }

            var code = SecurityCode.Create(ProviderType.Phone, phoneNumber, CodeActionType.ForgotPasswordByPhone);

            await _securityCodesRepository.CreateAsync(code);

            await _unitOfWorks.CommitAsync();

            var smsSender = new SmsSender(_globalSettings);
            var result    = await smsSender.SendSmsAsync(phoneNumber, $"{code.Code} is your verification code.");

            if (result == null)
            {
                return(Result.Fail(EC.SmsServiceFailed, ET.SmsServiceFailed));
            }

            return(Result.Ok());
        }
Example #2
0
 public void SmsSendSuccess()
 {
     using (SmsSender sender = new SmsSender("petforaweek", "1d0aa72cdd149", "petforaweek"))
     {
         sender.Send("79260353551", "1234");
     }
 }
    protected override void onMessage(MoSmsReq moSmsReq)
    {
        MtSmsResp mtSmsResp = null;

        try
        {
            SmsSender smsSender = new SmsSender("http://127.0.0.1:7007/service");

            List <String> address = new List <String>();
            address.Add(moSmsReq.sourceAddress);

            MtSmsReq mtSmsReq = new MtSmsReq();
            mtSmsReq.applicationId        = moSmsReq.applicationID;
            mtSmsReq.password             = "******";
            mtSmsReq.destinationAddresses = address;

            mtSmsReq.message = "Message Received. Thanks you.";

            mtSmsResp = smsSender.sendSMSReq(mtSmsReq);
        }
        catch (SdpException ex)
        {
            Console.WriteLine(ex.StackTrace);
        }
    }
Example #4
0
        /// <summary>
        /// Send sms to user
        /// </summary>
        /// <param name="userAddress">Address of the message recevier</param>
        /// <param name="message">Text message</param>
        /// <returns>True if message send successful otherwise false.</returns>
        public static bool Send(string userAddress, string message)
        {
            try
            {
                MtSmsReq mtSmsReq = new MtSmsReq();
                mtSmsReq.applicationId        = _appId;
                mtSmsReq.password             = _password;
                mtSmsReq.destinationAddresses = new string[] { userAddress };
                mtSmsReq.message = message;
                mtSmsReq.version = "1.0";

                //Log.Data("MtSmsReq ", mtSmsReq);

                SmsSender smsSender = new SmsSender(string.Concat(_baseUrl, Consts.URL_SMS_SEND));
                MtSmsResp mtSmsResp = smsSender.SendSMSReq(mtSmsReq);

                return(true);
            }
            catch (SdpException ex)
            {
                Log.Error(string.Format(Resources.Error_SendSmsFailed, userAddress));
                Log.Exception(ex);
                return(false);
            }
        }
Example #5
0
        public Form1()
        {
            InitializeComponent();

            #region Display all available COM Ports
            string[] ports = SerialPort.GetPortNames();

            // Add all port names to the combo box:
            foreach (string port in ports)
            {
                cboPort.Items.Add(port);
            }
            #endregion

            MySms = new SmsSender();


            var isRedirect = false;
            isRedirect = Dll.Settings.Get("RedirectSMS", "0") == "1" ? true : false;

            if (isRedirect)
            {
                _redirectedSmsNumber = Dll.Settings.Get("RedirectSmsNumber", "");
            }
        }
        [Create(@"{code}", false, false)] //NOTE: this method doesn't requires auth!!!  //NOTE: this method doesn't check payment!!!
        public AuthenticationTokenData AuthenticateMe(string userName, string password, string provider, string accessToken, string code)
        {
            bool viaEmail;
            var  user = GetUser(userName, password, provider, accessToken, out viaEmail);

            try
            {
                SmsManager.ValidateSmsCode(user, code);

                var token = SecurityContext.AuthenticateMe(user.ID);

                MessageService.Send(Request, MessageAction.LoginSuccessViaApiSms);

                var tenant  = CoreContext.TenantManager.GetCurrentTenant().TenantId;
                var expires = TenantCookieSettings.GetExpiresTime(tenant);

                return(new AuthenticationTokenData
                {
                    Token = token,
                    Expires = new ApiDateTime(expires),
                    Sms = true,
                    PhoneNoise = SmsSender.BuildPhoneNoise(user.MobilePhone)
                });
            }
            catch
            {
                MessageService.Send(Request, user.DisplayUserName(false), MessageAction.LoginFailViaApiSms, MessageTarget.Create(user.ID));
                throw new AuthenticationException("User authentication failed");
            }
            finally
            {
                SecurityContext.Logout();
            }
        }
Example #7
0
        public void addOrder(Order order)
        {
            DataAccess dataAccess = new DataAccess();

            dataAccess.insertOrder(order);

            int customerId  = order.getCustomerId();
            int ordersCount = dataAccess.getOrdersCount(customerId);

            if (ordersCount == 1)
            {
                Customer  orderCustomer = dataAccess.getCustomerById(customerId);
                SmsSender smsSender     = new SmsSender();
                string    smsMessage    = orderCustomer.FirstName + " ,Welcome to our store!!";
                smsSender.sendSms(orderCustomer.MobileNumber, smsMessage);
            }
            EmailSender emailSender = new EmailSender();

            emailSender.sendOrderEmail(order);

            double orderAmount = order.getAmount();

            if (orderAmount > 200)
            {
                dataAccess.addPointsToCustomer(customerId, 10);
            }
        }
Example #8
0
        private static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("Gang of Four Design Pattern - Bridge");

            IMessageSender sms        = new SmsSender("871615499");
            IMessageSender email      = new EmailSender("smtp.office365.com");
            IMessageSender msmq       = new MsmqSender("http://my-awesome-service-bus.servicebus.windows.net/queue01/");
            IMessageSender webService = new WebServiceSender("http://fancy-application.contoso.com/");

            var firstMessage = new Message {
                To = "Nolan Arenado", From = "Trevor Story", Subject = "Best Rockies Defense", Body = "Hello World!"
            };
            var secondMessage = new Message {
                To = "Bud Black", From = "The System", Subject = "Scouting Report", Body = "Hello World!"
            };

            var userMessage   = new UserMessage(sms, firstMessage);
            var systemMessage = new SystemMessage(email, secondMessage);

            userMessage.SendMessage();
            Console.WriteLine("*************************************");
            systemMessage.SendMessage();
            Console.WriteLine("*************************************");
            userMessage.UpdateMessageSender(msmq);
            userMessage.SendMessage();
            Console.WriteLine("*************************************");
            systemMessage.UpdateMessageSender(webService);
            systemMessage.SendMessage();
            Console.WriteLine("*************************************");
            Console.ReadKey();
        }
        public async Task <IActionResult> AddTracking(string id, [Bind("Tracking")] Repair repairT)
        {
            try
            {
                var repair = _unitOfWork.Repair.GetFirstOrDefault(x => x.Id == id, includeProperties: "IdentityUser,DeviceType,Address");
                repair.Tracking = repairT.Tracking;
                repair.StatusId = _unitOfWork.Status.GetStatusIdByName(StatusSD.SentCourier);
                _context.Update(repair);
                await _emailSender.SendEmailAsync(repair.IdentityUser.Email, "Sprzęt został wysłany",
                                                  $"{repair.DeviceType.DeviceName} został/a spakowana i wyruszyła w drogę powrotną." +
                                                  $" Dziękujemy za skorzystanie z naszych usług. Mamy nadzieję, że jeszcze do nas wrócisz :)." +
                                                  $" <br> Link do śledznienia: <a href='https://tracktrace.dpd.com.pl/parcelDetails?typ=1&p1={repair.Tracking}+&p2=&p3=&p4=&p5=&p6=&p7=&p8=&p9=&p10='>Śledzenie</a>" +
                                                  $" <br>Nr zgłoszenia: {repair.RepairId}.");

                var send = new SmsSender();
                send.SendSms(repair.Address.PhoneNumber, "Został wprowadzony numer śledzenia. Twój sprzęt wkrótce wyruszy w drogę! Nr zgłoszenia: " + repair.RepairId + ". Link do śledzenia: https://tracktrace.dpd.com.pl/parcelDetails?typ=1&p1=" + repair.Tracking + "+&p2=&p3=&p4=&p5=&p6=&p7=&p8=&p9=&p10=");
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!RepairCostExists(repairT.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> RepairCost(string id, [Bind("Id,FaultDescription,Cost,IsAccepted,IsRejected")] RepairCost repairCost)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var repair = _unitOfWork.Repair.GetFirstOrDefault(x => x.Id == id, includeProperties: "IdentityUser,Address");
                    repair.StatusId = _unitOfWork.Status.GetStatusIdByName(StatusSD.Valuation);
                    _context.Update(repair);
                    _context.Update(repairCost);

                    await _emailSender.SendEmailAsync(repair.IdentityUser.Email, "Wprowadzono koszt naprawy",
                                                      $"Koszt naprawy oraz opis usterki został wprowadzony. Zaloguj się oraz akceptuj lub odrzuć koszt naprawy.<br>Nr zgłoszenia: {repair.RepairId}.");

                    var send = new SmsSender();
                    send.SendSms(repair.Address.PhoneNumber, "Koszt naprawy oraz opis usterki został wprowadzony. Zaloguj się oraz akceptuj lub odrzuć koszt naprawy. Nr zgłoszenia: " + repair.RepairId);

                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!RepairCostExists(repairCost.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(repairCost));
        }
    protected override void onMessage(MoSmsReq moSmsReq)
    {
        MtSmsResp mtSmsResp=null;
        try
        {
            SmsSender smsSender = new SmsSender("http://127.0.0.1:7007/service");

            List<String> address = new List<String>();
            address.Add(moSmsReq.sourceAddress);

            MtSmsReq mtSmsReq = new MtSmsReq();
            mtSmsReq.applicationId = moSmsReq.applicationID;
            mtSmsReq.password = "******";
            mtSmsReq.destinationAddresses = address;

            mtSmsReq.message = "Message Received. Thanks you.";

            mtSmsResp = smsSender.sendSMSReq(mtSmsReq);

        }
        catch (SdpException ex)
        {
            Console.WriteLine(ex.StackTrace);
        }
    }
        public L3_MessageFormatting()
        {
            InitializeComponent();

            Nokia1100.SMSProvider.SMSRecieved += OnSMSReceived;
            SmsSender = new SmsSender(Nokia1100);
        }
Example #13
0
        public async Task <JsonResult> SendSMS(
            [FromQuery(Name = "phone")] string phone,
            [FromQuery(Name = "from")] string from,
            [FromQuery(Name = "content")] string content)
        {
            var customer = new Customer();

            if (!string.IsNullOrEmpty(phone) && !string.IsNullOrEmpty(from) && !string.IsNullOrEmpty(content))
            {
                customer.Phone        = phone;
                customer.Alphanumeric = from;
                customer.Content      = content;

                _context.Customer.Add(customer);
                _context.SaveChanges();
            }
            else
            {
                return(new JsonResult(NotFound()));
            }

            var sms = new SmsSender();

            var response = await sms.Send(customer.Alphanumeric, customer.Phone, customer.Content);

            return(new JsonResult(new { customer, response }));
        }
Example #14
0
 private void ProcessArrivalMessage(PmsAppointment appt, SmsMessage msg)
 {
     if (MessageMatches(msg.message, "arrived", "here", "a"))
     {
         // twilio:
         SmsMessage rmsg = new SmsMessage(msg.phone, TemplateProcessor.processTemplate(MessageTemplate.MSG_ARRIVED_THX, appt, null));
         SmsSender.SendMessage(rmsg);
         LogMsg(OUT, rmsg, "process arrival message", appt);
         // PMS:
         appt.ArrivalStatus = AppointmentStatus.Arrived;
         AppointmentUpdater.SaveAppointmentStatusValue(appt);
         // local storage
         appt.ExternalData.ScreeningMessageResponse = true;
         appt.ExternalData.ArrivalStatus            = AppointmentStatus.Arrived;
         Storage.SaveAppointmentStatus(appt);
     }
     else
     {
         // we haven't understood it
         SmsMessage rmsg = new SmsMessage(msg.phone, TemplateProcessor.processTemplate(MessageTemplate.MSG_DONT_UNDERSTAND_ARRIVING, appt, null));
         SmsSender.SendMessage(rmsg);
         LogMsg(OUT, rmsg, "fail to process arrival message", appt);
         UnprocessableMessages.Add(msg);
     }
 }
Example #15
0
        /// <summary>
        /// Send sms to user
        /// </summary>
        /// <param name="userAddress">Address of the message recevier</param>
        /// <param name="message">Text message</param>
        /// <returns>True if message send successful otherwise false.</returns>
        public static bool Send(string userAddress, string message)
        {
            bool status = false;

            MtSmsReq mtSmsReq = new MtSmsReq();

            mtSmsReq.applicationId      = _appId;
            mtSmsReq.password           = _password;
            mtSmsReq.destinationAddress = userAddress;
            mtSmsReq.message            = message;

            SmsSender smsSender = new SmsSender(string.Concat(_baseUrl, Consts.URL_SMS_SEND));
            MtSmsResp mtSmsResp = smsSender.SendSMSReq(mtSmsReq);

            if (mtSmsResp.statusCode == "SUCCESS")
            {
                status = true;
            }
            else
            {
                Log.Error(string.Format(Resources.Error_SendSmsFailed, userAddress));
            }

            return(status);
        }
Example #16
0
        private void ProcessScreeningResponse(PmsAppointment appt, SmsMessage msg)
        {
            // the patient should respond with "yes" or "no" but they may not bother and just respond with "arrived"
            // of course they might respond with anything else that we can't understand, so we'll explain apologetically if they do
            if (MessageMatches(msg.message, "yes", "y"))
            {
                // twilio:
                SmsMessage rmsg = new SmsMessage(msg.phone, TemplateProcessor.processTemplate(MessageTemplate.MSG_SCREENING_YES, appt, null));
                SmsSender.SendMessage(rmsg);
                LogMsg(OUT, rmsg, "process screening response 'yes'", appt);

                if (IsDoingVideo)
                {
                    // PMS:
                    appt.IsVideoConsultation = true;
                    if (VideoManager.AsksForVideoUrl())
                    {
                        AppointmentUpdater.SaveAppointmentAsVideoMeeting(appt, null, null);
                    }
                    else
                    {
                        var details = VideoManager.getConferenceDetails(appt, false);
                        AppointmentUpdater.SaveAppointmentAsVideoMeeting(appt, "Video URL: " + details, details);
                    }
                }

                // local storage
                appt.ExternalData.ScreeningMessageResponse = true;
                if (IsDoingVideo)
                {
                    appt.ExternalData.IsVideoConsultation = true;
                }
                else
                {
                    appt.IsVideoConsultation = false;
                }
                Storage.SaveAppointmentStatus(appt);
            }
            else if (MessageMatches(msg.message, "no", "n"))
            {
                SmsMessage rmsg = new SmsMessage(msg.phone, TemplateProcessor.processTemplate(MessageTemplate.MSG_SCREENING_NO, appt, null));
                SmsSender.SendMessage(rmsg);
                LogMsg(OUT, rmsg, "process screening response 'no'", appt);
                appt.ExternalData.ScreeningMessageResponse = true;
                appt.IsVideoConsultation = false;
                Storage.SaveAppointmentStatus(appt);
            }
            else if (MessageMatches(msg.message, "arrived", "here", "a"))
            {
                ProcessArrivalMessage(appt, msg);
            }
            else
            {
                // we haven't understood it
                SmsMessage rmsg = new SmsMessage(msg.phone, TemplateProcessor.processTemplate(MessageTemplate.MSG_DONT_UNDERSTAND_SCREENING, appt, null));
                SmsSender.SendMessage(rmsg);
                LogMsg(OUT, rmsg, "fail to process screening response", appt);
                UnprocessableMessages.Add(msg);
            }
        }
Example #17
0
        /// <summary>
        /// This method is called every X minutes to process any changes to the future appointments on the PMS side.
        /// Typically, this covers the next 2 days in the future (not including today, since we don't send the registration message if the appointment is made today)
        ///
        /// </summary>
        /// <param name="stored">The view of the appointments we already had (important, because it remembers what messages we already sent)</param>
        /// <param name="incoming">The current information from the PMS</param>
        public int ProcessUpcomingAppointments(List <PmsAppointment> appointments)
        {
            // pseudo code
            // for each incoming appointment
            //   is it new - send the pre-registration message, and add it to stored
            int t = 0;

            foreach (var appt in appointments.Where(n => IsUseablePhoneNumber(n.PatientMobilePhone) && IsNearFuture(n.AppointmentStartTime) && isNotIgnoreDoctor(n.PractitionerFhirID))) // we only send these messages 2-3 days in the future
            {
                try
                {
                    if (!appt.ExternalData.PostRegistrationMessageSent)
                    {
                        t++;
                        SmsMessage msg = new SmsMessage(NormalisePhoneNumber(appt.PatientMobilePhone), TemplateProcessor.processTemplate(MessageTemplate.MSG_REGISTRATION, appt, null));
                        SmsSender.SendMessage(msg);
                        LogMsg(OUT, msg, "send registration message", appt);
                        appt.ExternalData.PostRegistrationMessageSent = true;
                        Storage.SaveAppointmentStatus(appt);
                    }
                }
                catch (Exception e)
                {
                    Logger.Log(ERR, "Exception processing " + appt.AppointmentFhirID + ": " + e.Message);
                }
            }
            return(t);
        }
Example #18
0
        protected async void SendSms_Click(object sender, EventArgs e)
        {
            var           cid           = Request.QueryString["cid"];
            CustomerModel customer      = new CustomerModel(Convert.ToInt32(cid));
            string        customerPhone = customer.phonNumber;
            string        customername  = customer.firstnmae + " " + customer.lastname;

            string     teratmentID  = Request.QueryString["tid"].ToString();
            RepairJobl repairJob    = new RepairJobl(Convert.ToInt32(teratmentID));
            string     LicensePlate = repairJob.license_Number;


            Garge  garge        = new Garge(Convert.ToInt32(Session["UserID"]));
            string garageName   = garge.GetNameGarga();
            string garageNumber = garge.GetPhone();

            //This Method Sends Using API and its ASYNC (You have to wait until the process ends)
            await SmsSender.SendUsingAPIAsync(
                garageNumber,
                garageName,
                customerPhone,
                customername,
                LicensePlate
                );

            Thread.Sleep(5000); //Sleep for 5 SECOND Until API FINISH His Work
            showmodel();
        }
Example #19
0
    protected void btnResend_Click(object sender, EventArgs e)
    {
        _sms_EMAIL_DB_Entities = new SMS_EMAIL_DB_Entities();
        var smsId = long.Parse(hdnFldSMSId.Value);

        sms = _sms_EMAIL_DB_Entities.tbl_Emails_SMS.Where(x => x.Id == smsId).First();
        var phone           = sms.Mobile_Number;
        var message         = sms.Text;
        var sms_code        = SmsSender.Send(phone, message);
        var sms_code_decode = StringHelper.ConvertResponseCode(sms_code);

        sms.SMS_Code        = sms_code;
        sms.SMS_Code_Decode = sms_code_decode;
        sms.SMS_Sent_At     = DateTime.Now;
        _sms_EMAIL_DB_Entities.SaveChanges();
        tEvent = new tbl_Events {
            Created_At   = DateTime.Now,
            Code         = sms_code,
            Status       = sms_code_decode,
            Email_Sms_Id = sms.Id
        };
        _sms_EMAIL_DB_Entities.AddTotbl_Events(tEvent);
        _sms_EMAIL_DB_Entities.SaveChanges();
        Session["NoticeMessage"] = "Please check SMS status !";
        Response.Redirect("Details.aspx?id=" + smsId.ToString());
    }
        public ActionResult Register(RegisterViewModel register)
        {
            if (ModelState.IsValid)
            {
                string haspass = FormsAuthentication.HashPasswordForStoringInConfigFile(register.Password, "MD5");
                Random rand    = new Random();
                int    mycode  = rand.Next(100000, 900000);


                if (!db.Users.Any(u => u.Mobile == register.Mobile))
                {
                    User user = new User()

                    {
                        Mobile     = register.Mobile,
                        Password   = haspass,
                        RoleId     = db.Roles.Max(r => r.Id),
                        CodeNumber = mycode.ToString()
                    };
                    db.Users.Add(user);
                    db.SaveChanges();

                    SmsSender sms = new SmsSender();
                    sms.Send(register.Mobile, "ثبت نام شما در فروشگاه انجام شد" + Environment.NewLine + "کد فعال سازی شما " + mycode.ToString());
                    return(RedirectToAction(""));
                }

                else
                {
                    ModelState.AddModelError("Mobile", "شما فبلا ثبت نام کردید");
                }
            }
            return(View(register));
        }
Example #21
0
 private PmsAppointment ChooseRelevantAppointment(List <PmsAppointment> candidates, SmsMessage msg)
 {
     if (candidates.Count > 2)
     {
         SmsMessage rmsg = new SmsMessage(msg.phone, TemplateProcessor.processTemplate(MessageTemplate.MSG_TOO_MANY_APPOINTMENTS, candidates[0], null));
         SmsSender.SendMessage(rmsg);
         LogMsg(OUT, rmsg, "Too many candidates", candidates[0]);
         UnprocessableMessages.Add(msg);
     }
     else
     {
         // pseudo code:
         // if the two appointments are at the same time, we only care about the first one
         // otherwise, in principle we are interested in the first one, unless the message response belongs to an earlier cycle ("yes" / "no") and we're waiting for that
         var appt1 = candidates[0].AppointmentStartTime < candidates[1].AppointmentStartTime ? candidates[0] : candidates[1];
         var appt2 = candidates[0].AppointmentStartTime < candidates[1].AppointmentStartTime ? candidates[1] : candidates[0];
         if (MessageMatches(msg.message, "yes", "no"))
         {
             foreach (var appt in candidates)
             {
                 if (appt.ExternalData.ScreeningMessageSent && !appt.ExternalData.ScreeningMessageResponse)
                 {
                     return(appt);
                 }
             }
             return(null);
         }
         else if (MessageMatches(msg.message, "joined", "ready"))
         {
             foreach (var appt in candidates)
             {
                 if (appt.ExternalData.VideoInviteSent)
                 {
                     return(appt);
                 }
             }
             return(null);
         }
         else if (MessageMatches(msg.message, "arrived"))
         {
             foreach (var appt in candidates)
             {
                 if (appt.ArrivalStatus == AppointmentStatus.Booked)
                 {
                     return(appt);
                 }
             }
             return(null);
         }
         else
         {
             SmsMessage rmsg = new SmsMessage(msg.phone, TemplateProcessor.processTemplate(MessageTemplate.MSG_TOO_MANY_APPOINTMENTS, candidates[0], null));
             SmsSender.SendMessage(rmsg);
             LogMsg(OUT, rmsg, "can't choose appointment", appt1);
             UnprocessableMessages.Add(msg);
         }
     }
     return(null);
 }
Example #22
0
        private void ProcessUnexpectedResponse(PmsAppointment appt, SmsMessage msg)
        {
            SmsMessage rmsg = new SmsMessage(msg.phone, TemplateProcessor.processTemplate(MessageTemplate.MSG_UNEXPECTED, appt, null));

            SmsSender.SendMessage(rmsg);
            LogMsg(OUT, rmsg, "unexpected message", appt);
            UnprocessableMessages.Add(msg);
        }
        /// <summary>
        /// 发送短信验证码
        /// </summary>
        /// <param name="templateCode"></param>
        /// <param name="phoneNumber"></param>
        /// <param name="verifyCode"></param>
        /// <returns></returns>
        protected virtual async Task SendPhoneVerifyMessageAsync(string templateCode, string phoneNumber, string verifyCode)
        {
            var sendMessage = new SmsMessage(phoneNumber, "SendSmsMessage");

            sendMessage.Properties.Add("code", verifyCode);
            sendMessage.Properties.Add("TemplateCode", templateCode);
            await SmsSender.SendAsync(sendMessage);
        }
Example #24
0
        private void DoWork(object state)
        {
            _logger.LogInformation("Worker Service method DoWork entrance.");
            if (DateTime.Now.Hour >= 10 && DateTime.Now.Hour <= 14)
            {
                var tomorrowDate = DateTime.Today.AddDays(1);
                var list         = new List <string>();
                using (var scope = _services.CreateScope())
                {
                    var context = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>();
                    var sows    = context.Sow.Where(s => !s.IsRemoved && s.DateBorn == tomorrowDate && !s.IsSmsSend ||
                                                    !s.IsRemoved && s.DateDetachment == tomorrowDate && !s.IsSmsSend ||
                                                    !s.IsRemoved && s.DateInsimination == tomorrowDate && !s.IsSmsSend ||
                                                    !s.IsRemoved && s.VaccineDate == tomorrowDate && !s.IsSmsSend).ToList();

                    foreach (var item in sows)
                    {
                        if (item.User.PhoneNumberConfirmed)
                        {
                            if (!list.Contains(item.UserId))
                            {
                                list.Add(item.UserId);
                                var userSows = sows.Where(u => u.UserId == item.UserId);
                                var message  = "Aplikacja Alocha.\nJutrzejsze wydarzenia:";
                                foreach (var sow in userSows)
                                {
                                    string status = "";
                                    switch (sow.Status)
                                    {
                                    case "Prośna":
                                        status = "Poród";
                                        if (sow.VaccineDate == tomorrowDate)
                                        {
                                            status = "Szczepienie";
                                        }
                                        break;

                                    case "Luźna":
                                        status = "Inseminacja";
                                        break;

                                    case "Laktacja":
                                        status = "Oderwanie prosiąt";
                                        break;
                                    }
                                    message      += string.Format("\nLocha nr {0} - {1}", sow.Number, status);
                                    sow.IsSmsSend = true;
                                    context.SaveChanges();
                                }
                                SmsSender.SendSmsAsync(string.Format("48{0}", item.User.PhoneNumber), message).GetAwaiter().GetResult();
                                _logger.LogInformation(string.Format("The worker service sends a sms to user: {0}, on the number {1}", item.User.Email, item.User.PhoneNumber));
                            }
                        }
                    }
                    ;
                }
            }
        }
Example #25
0
 public string SendSmsBulk(string ticketIdList, string appkey)
 {
     if (appkey == Globals.Settings.AppServiceSecureKey)
     {
         SmsSender.SendSmsBulk(ticketIdList);
         return("OK");
     }
     return("invalid app key");
 }
Example #26
0
        private void HandleUnknownMessage(SmsMessage msg)
        {
            // a future possible enhancement is to ask the user which patient the appointment is for; this will smooth the work flow, but the response
            // processing might be complicated. can it be just a Medicare number and date?
            SmsMessage rmsg = new SmsMessage(msg.phone, TemplateProcessor.processTemplate(MessageTemplate.MSG_UNKNOWN_PH, null, null));

            SmsSender.SendMessage(rmsg);
            LogMsg(OUT, rmsg, "handle unknown message", null);
            UnprocessableMessages.Add(msg);
        }
Example #27
0
        public Status SendSMS(Sms.Domain.Sms sms)
        {
            var sender = new SmsSender();

            Status status = sender.send(sms);

            RegisterSmsTransaction(sms, status);

            return(status);
        }
Example #28
0
        private static ICodeSender GetSmsSender()
        {
            //此处以亿美为例
            string host      = "shmtn.b2m.cn:80";
            string appid     = "11"; //填入亿美appid
            string secretKey = "22"; //填入亿美secretKey
            ISms   sms       = new EmaySms(host, appid, secretKey);
            var    sender    = new SmsSender(GetFormatter(bizFlag), sms);

            return(sender);
        }
Example #29
0
 public MessageSenderJob(NotificationRepository notificationRepository,
                         NotificationReceiverRepository notificationReceiverRepository,
                         NotificationLogRepository notificationLogRepository,
                         EmailSender emailSender, SmsSender smsSender)
 {
     _notificationRepository         = notificationRepository;
     _notificationReceiverRepository = notificationReceiverRepository;
     _notificationLogRepository      = notificationLogRepository;
     _emailSender = emailSender;
     _smsSender   = smsSender;
 }
Example #30
0
        protected override void Seed(RaterPriceContext context)
        {
            SmsSender s = new SmsSender()
            {
                Name = "RaterPrice"
            };

            context.SmsSenders.Add(s);
            //var role = CreateAdmins(context);
            //CreateAdmin(context, role);
        }
        public InnerNotificationController(InnerNotificationRepository innerNotificationRepository,
                                           ISessionContext sessionContext, BranchContext branchContext,
                                           EmailSender emailSender, SmsSender smsSender)
        {
            _innerNotificationRepository = innerNotificationRepository;

            _sessionContext = sessionContext;
            _branchContext  = branchContext;
            _emailSender    = emailSender;
            _smsSender      = smsSender;
        }
        public void GivenAnSmsLongerThan160Characters_WhenSendSmsesIsCalled_MultipleSmsesAreSent()
        {
            var messageRepository = MockRepository.GenerateStub<IMessageRepository>();
            var messageRecepientRepository = MockRepository.GenerateStub<IMessageRecepientRepository>();
            var personRepository = MockRepository.GenerateStub<IPersonRepository>();
            var httpPostService = MockRepository.GenerateStub<IHttpPostService>();
            httpPostService.Expect(h => h.HttpSend(string.Empty)).IgnoreArguments().Return("success").Repeat.Any();
            var sut = new SmsSender(messageRepository, messageRecepientRepository, personRepository, httpPostService);
            var currentPerson = new Person {Church = new Church {Country = "South Africa"}};

            var cellNos = new List<string> {"0826527871"};
            var longSms = "012345789012345789012345789012345789012345789012345789012345789012345789012345789012345789012345789012345789012345789012345789012345789012345789012345789012345789012345789012345789";
            sut.SendSmses(longSms, cellNos, "petermunnings", "sandton2000", currentPerson);
            httpPostService.AssertWasCalled(x => x.HttpSend(Arg<string>.Is.Anything), options => options.Repeat.Once());
        }