예제 #1
0
        public UsersPage()
        {
            var vm = new UsersViewModel();

            this.BindingContext            = vm;
            vm.DisplaySaveSucessPrompt    += () => DisplayAlert("Success", "New User has been registered successfully", "OK");
            vm.DisplayUserExistPrompt     += () => DisplayAlert("Error", "The username has already been registered", "OK");
            vm.DisplaySaveFailedPrompt    += () => DisplayAlert("Error", "User registration failed, Please try again", "OK");
            vm.DisplayRequriedFieldPrompt += () => DisplayAlert("Error", "User, Password, Firstname and Lastname Fields are required", "OK");
            InitializeComponent();

            Username.Completed += (object sender, EventArgs e) =>
            {
                Password.Focus();
            };

            Password.Completed += (object sender, EventArgs e) =>
            {
                Firstname.Focus();
            };

            Firstname.Completed += (object sender, EventArgs e) =>
            {
                Lastname.Focus();
            };

            Lastname.Completed += (object sender, EventArgs e) =>
            {
                Phonenumber.Focus();
            };
            Phonenumber.Completed += (object sender, EventArgs e) =>
            {
                vm.SubmitCommand.Execute(null);
            };
        }
        public PatientsPage()
        {
            //var vm = new PatientsViewModel();
            //this.BindingContext = vm;
            InitializeComponent();
            BindingContext = _viewModel = new PatientsViewModel();
            _viewModel.DisplayClientAlreadyRegisteredPrompt += () => DisplayAlert("Error", "The Patient is Aready Registered", "OK");
            _viewModel.DisplayRegistrationSuccessPrompt     += () => DisplayAlert("Success", "The Patient has been registered successfully", "OK");
            _viewModel.DisplayRegistrationFailedPrompt      += () => DisplayAlert("Error", "User registration failed, Please try again", "OK");
            _viewModel.DisplayRequiredFieldPrompt           += () => DisplayAlert("Error", "OPD Number, First Name, Last Name and Village Fields are required", "OK");
            _viewModel.activity = activity;

            Opdnumber.Completed += (object sender, EventArgs e) =>
            {
                Firstname.Focus();
            };

            Firstname.Completed += (object sender, EventArgs e) =>
            {
                Lastname.Focus();
            };
            Housenumber.Completed += (object sender, EventArgs e) =>
            {
                Village.Focus();
            };
            Village.Completed += (object sender, EventArgs e) =>
            {
                Phonenumber.Focus();
            };
            Phonenumber.Completed += (object sender, EventArgs e) =>
            {
                _viewModel.SubmitCommand.Execute(null);
            };
        }
예제 #3
0
        public override int GetHashCode()
        {
            int hash = GetType().GetHashCode();

            hash = (hash * 397) ^ Businessentityid.GetHashCode();
            hash = (hash * 397) ^ Phonenumber.GetHashCode();
            hash = (hash * 397) ^ Phonenumbertypeid.GetHashCode();

            return(hash);
        }
예제 #4
0
        public void OnLookupContact(object args)
        {
            LookupContactSource data = new LookupContactSource();

            ObjectPool.Instance.Register <LookupContactSource>().ImplementedBy(data);
            bool?result = DialogService.Instance.ShowDialog <LookupContact>(data);

            if (result.Value == true)
            {
                StringBuilder phone = new StringBuilder();
                foreach (Contact.Contact selected in data.Source)
                {
                    if (selected.IsSelected)
                    {
                        phone.AppendFormat("{0}; ", selected.PhoneNumber);
                    }
                }

                if (phone.Length > 0)
                {
                    if (!string.IsNullOrEmpty(Phonenumber))
                    {
                        if (Phonenumber.Substring(Phonenumber.Length - 1, 1) == ";")
                        {
                            Phonenumber = Phonenumber.Remove(Phonenumber.Length - 1, 1);
                        }
                    }

                    Phonenumber = string.Join(";", Phonenumber, phone.ToString().Substring(0, phone.Length - 1).Replace(" ", string.Empty));
                }
                else
                {
                    Phonenumber = string.Join(";", Phonenumber, phone.ToString());
                }

                if (Phonenumber.Substring(0, 1) == ";")
                {
                    Phonenumber = Phonenumber.Substring(1);
                }

                if (Phonenumber.Substring(Phonenumber.Length - 1, 1) == ";")
                {
                    Phonenumber = Phonenumber.Remove(Phonenumber.Length - 1, 1);
                }
            }
        }
예제 #5
0
        private async void OnSubmitClicked(object obj)
        {
            var model = new Users
            {
                Username     = Username,
                Password     = Password,
                Firstname    = Firstname.ToUpper(),
                Lastname     = Lastname.ToUpper(),
                Phonenumber  = Phonenumber.ToUpper(),
                DateCreated  = DateTime.Now,
                DateModified = DateTime.Now,
            };

            if (Username != null && Password != null && Firstname != null && Lastname != null)
            {
                var check = await App.Database.CheckUserAsync(Username);

                if (check)
                {
                    DisplayUserExistPrompt();
                    Clear();
                    await Shell.Current.GoToAsync($"//{nameof(PatientsListPage)}");
                }
                else
                {
                    var responce = await App.Database.CreateUserAsync(model);

                    if (responce)
                    {
                        //();
                        Clear();
                        await Shell.Current.GoToAsync($"//{nameof(PatientsListPage)}");
                    }
                    else
                    {
                        Clear();
                    }
                    DisplaySaveFailedPrompt();
                }
            }
            else
            {
                DisplayRequriedFieldPrompt();
            }
        }
예제 #6
0
        public async Task <IActionResult> UpdateAccount([FromBody] AdminModel model)
        {
            try
            {
                var(firstname, lastname) = Utils.SplitFullname(model.Fullname);
                var admin = await _context.Admins.SingleOrDefaultAsync(o => o.AdminId == Convert.ToInt32(User.Identity.Name));

                admin.Firstname   = firstname;
                admin.Lastname    = lastname;
                admin.Email       = model.EmailAddress;
                admin.Phonenumber = Phonenumber.Parse(model.Phonenumber);
                await _context.SaveChangesAsync();

                return(Ok(admin.AdminId));
            }
            catch (DbUpdateException ex) when(ex.InnerException is SqlException sqlEx && (sqlEx.Number == 2601 || sqlEx.Number == 2627))
            {
                ModelState.AddModelError("EmailAddress", "This email address is already registered");
                return(BadRequest(ModelState));
            }
        }
예제 #7
0
        private void SetupEventHandlers()
        {
            Email.Completed += (sender, e) =>
            {
                Phonenumber.Focus();
            };

            Phonenumber.Completed += (sender, e) =>
            {
                Password.Focus();
            };


            Password.Completed += (sender, e) =>
            {
                RePassword.Focus();
            };

            RePassword.Completed += (sender, e) =>
            {
                SignupBtn.Focus();
            };
        }
예제 #8
0
        public async Task <IActionResult> TwilioIncoming()
        {
            var dictionary           = Request.Form.ToDictionary(o => o.Key, o => o.Value.ToString());
            var messageAuthenticator = Request.Headers.SingleOrDefault(o => o.Key == "X-Twilio-Signature").Value.FirstOrDefault();

            if (!_smsGateway.ValidateMessage(Request.GetDisplayUrl(), dictionary, messageAuthenticator))
            {
                _log.Warn("Invalid message authenticator, check twilio logs");
                return(BadRequest("Invalid message authenticator"));
            }

            // cannot use frombody because then the parameters are not available for validating message authenticator
            var model = new TwilioIncomingSmsModel
            {
                AccountSid = dictionary.SingleOrDefault(o => o.Key == "AccountSid").Value,
                Body       = dictionary.SingleOrDefault(o => o.Key == "Body").Value,
                From       = dictionary.SingleOrDefault(o => o.Key == "From").Value,
                To         = dictionary.SingleOrDefault(o => o.Key == "To").Value,
                MessageSid = dictionary.SingleOrDefault(o => o.Key == "MessageSid").Value,
            };

            _log.Info($"Incoming sms {model.MessageSid} from {model.From} to {model.To}");

            try
            {
                model.From = Phonenumber.Parse(model.From);
                model.To   = Phonenumber.Parse(model.To);

                _flexnetsContext.SmsLogEntries.Add(new SmsLogEntries
                {
                    EventTimestamp     = DateTime.UtcNow,
                    DestinationAddress = model.To,
                    Orgaddr            = model.From,
                    Text         = model.Body,
                    Smsid        = model.MessageSid,
                    Inbound      = true,
                    Status       = "RECEIVED",
                    SmsTimestamp = DateTime.UtcNow
                });
                await _flexnetsContext.SaveChangesAsync();


                _log.Info($"Saved incoming sms with id {model.MessageSid}");
                _log.Info($"Incoming SMS from {model.From} to {model.To} : {model.Body}");

                if (model.Body.ToUpper() == "A" || model.Body.ToUpper() == "\"A\"" || model.Body.ToUpper() == "\'A\'")
                {
                    _log.Info("Handling limit extension");
                    var queueClient = new QueueClient(_serviceBusConnectionString);
                    await queueClient.SendAsync(new Message(Encoding.UTF8.GetBytes(model.From)));
                }
                if (model.Body == "echo?" && model.From == _echoNumber)
                {
                    _log.Info("Sending echo reply");
                    await _smsGateway.SendSmsAsync("echo!", model.From);
                }
            }
            catch (DbUpdateException ex) when(ex.InnerException is SqlException sqlEx && (sqlEx.Number == 2601 || sqlEx.Number == 2627))
            {
                _log.Warn($"Ignoring duplicate sms delivery report for id {model.MessageSid}");
            }
            catch (Exception ex)
            {
                _log.Error("Failed receiving incoming sms", ex);
                return(BadRequest(ex));
            }

            return(new TwiMLResult());
        }