Ejemplo n.º 1
0
 private async void LoginClicked(object sender, RoutedEventArgs e)
 {
     if (await MobileService.Instance.FacebookLogIn())
     {
         SignedUp?.Invoke(this, EventArgs.Empty);
         SignUpHideRequested?.Invoke(this, EventArgs.Empty);
     }
 }
        public async Task signedup_event_fails_when_user_does_not_have_required_role()
        {
            var userId = Guid.NewGuid();
            var email  = "*****@*****.**";
            var role   = "none";


            var externalEvent = new SignedUp(userId, email, role);

            // Check if exception is thrown

            _eventHandler
            .Awaiting(c => c.HandleAsync(externalEvent))
            .Should().Throw <InvalidRoleException>();
        }
Ejemplo n.º 3
0
 protected static void Initialize()
 {
     ExceptionHandlerMock = new Mock <IExceptionHandler>();
     Handler         = new Handler(ExceptionHandlerMock.Object);
     UserServiceMock = new Mock <IUserService>();
     User            = new UserDto
     {
         Name = "user",
         Role = "user"
     };
     ServiceClient = new Mock <IServiceClient>();
     Event         = new SignedUp(Guid.NewGuid(), Resource.Create("test", "test"),
                                  Guid.NewGuid().ToString("N"), "test", "user", "active");
     ServiceClient.Setup(x => x.GetAsync <UserDto>(Event.Resource))
     .ReturnsAsync(User);
     SignedUpHandler = new SignedUpHandler(Handler, UserServiceMock.Object, ServiceClient.Object);
 }
        public async Task signedup_event_fails_when_user_with_id_already_exists()
        {
            var userId = Guid.NewGuid();
            var email  = "*****@*****.**";
            var role   = "user";

            var user = new User(userId);
            await _usersMongoDbFixture.InsertAsync(user.AsDocument());

            var externalEvent = new SignedUp(userId, email, role);

            // Check if exception is thrown

            _eventHandler
            .Awaiting(c => c.HandleAsync(externalEvent))
            .Should().Throw <UserAlreadyCreatedException>();
        }
        public async Task signedup_event_should_add_user_with_given_data_to_database()
        {
            var userId = Guid.NewGuid();
            var email  = "*****@*****.**";
            var role   = "user";


            var externalEvent = new SignedUp(userId, email, role);

            // Check if exception is thrown

            _eventHandler
            .Awaiting(c => c.HandleAsync(externalEvent))
            .Should().NotThrow();


            var user = await _usersMongoDbFixture.GetAsync(externalEvent.UserId);

            user.Should().NotBeNull();
            user.Id.Should().Be(userId);
        }
Ejemplo n.º 6
0
 private void Apply(SignedUp e)
 {
     Id            = e.Id;
     AccountNumber = new AccountNumber(Id);
     Name          = e.Name;
 }
Ejemplo n.º 7
0
        public async Task <IActionResult> OnPost(string returnurl)
        {
            if (returnurl != null && Request.Form["Register"].Count > 0)
            {
                PendingRegistrationDto otpDetails = new PendingRegistrationDto();
                ApplicationUser        user;

                //Validate if OTP is valid before registering specilist user
                if (Request.Form["Role"] == "Specialist")
                {
                    string otp = Request.Form["Otp"].ToString();

                    otpDetails = await _specialistService.GetRegistrationOTPDetails(otp);

                    if (otpDetails == null)
                    {
                        ModelState.AddModelError("invalis_registration_otp", "The OTP entered is not valid. Please try again.");
                        ReturnURL = returnurl;

                        return(Page());
                    }
                    else
                    {
                        user = new ApplicationUser {
                            UserName = otpDetails.Email, Email = otpDetails.Email, IsAdmin = false, FirstName = otpDetails.FirstName
                        }
                    };
                }
                else
                {
                    user = new ApplicationUser {
                        UserName = Request.Form["Username"], Email = Request.Form["Username"], IsAdmin = false, FirstName = Request.Form["FirstName"]
                    }
                };

                var result = await _userManager.CreateAsync(user, Request.Form["userpassword"]);

                if (result.Succeeded)
                {
                    await _userManager.AddClaimsAsync(user, new Claim[] { new Claim("firstName", user.FirstName), new Claim("identityid", user.IdentityId.ToString()) });

                    if (Request.Form["Role"] == "Patient")
                    {
                        await _userManager.AddClaimsAsync(user, new Claim[] { new Claim("accounttype", "patient") });

                        var newSignUpEvent = new SignedUp(user.IdentityId, Request.Form["FirstName"], Request.Form["LastName"], Request.Form["Username"], Role);

                        //Publish message to RabbitMq
                        await _busPublisher.PublishAsync(newSignUpEvent, CorrelationContext.Empty);
                    }
                    else
                    {
                        await _userManager.AddClaimsAsync(user, new Claim[] { new Claim("accounttype", "specialist") });

                        var newSignUpEvent = new SpecialistSignedUp(user.IdentityId, otpDetails.FirstName, otpDetails.LastName, otpDetails.Email, otpDetails.PracticeId, otpDetails.IsAdmin);

                        //Publish message to RabbitMq
                        await _busPublisher.PublishAsync(newSignUpEvent, CorrelationContext.Empty);
                    }

                    //// For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=532713
                    //// Send an email with this link
                    ////var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
                    ////var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: HttpContext.Request.Scheme);
                    ////await _emailSender.SendEmailAsync(model.Email, "Confirm your account",
                    ////    $"Please confirm your account by clicking this link: <a href='{callbackUrl}'>link</a>");
                    //await _signInManager.PasswordSignInAsync(Request.Form["Username"], Request.Form["userpassword"], true, false);

                    ////_logger.LogInformation(3, "User created a new account with password.");

                    return(Redirect(returnurl));
                }
                else
                {
                    result.Errors.ToList().ForEach(e =>
                    {
                        ModelState.AddModelError(e.Code, e.Description);
                    });

                    ReturnURL = returnurl;
                }
            }
            else
            {
                //Registration canceled
                return(Redirect(returnurl));
            }

            return(Page());
        }
 protected static void InitializeEvent()
 {
     Event = new SignedUp(Guid.NewGuid(), Resource.Create("test", "test"),
                          User?.UserId, "collectively", "user", "active");
 }
Ejemplo n.º 9
0
 public async Task HandleAsync(SignedUp @event)
 => await CompleteAsync(@event);