示例#1
0
        public static async Task CreateUserRoles(IServiceProvider serviceProvider)
        {
            var            RoleManager = serviceProvider.GetRequiredService <RoleManager <IdentityRole> >();
            var            UserManager = serviceProvider.GetRequiredService <UserManager <FinalUser> >();
            IdentityResult roleResult;
            //Add Admin Role
            var roleCheck = await RoleManager.RoleExistsAsync("Admin");

            if (!roleCheck)
            {
                roleResult = await RoleManager.CreateAsync(new IdentityRole("Admin"));
            }
            FinalUser user = await UserManager.FindByEmailAsync("*****@*****.**");

            if (user == null)
            {
                var User = new FinalUser();
                User.Email    = "*****@*****.**";
                User.UserName = "******";
                string         userPWD = "Admin123";
                IdentityResult chkUser = await UserManager.CreateAsync(User, userPWD);

                //Add default User to Role Admin
                if (chkUser.Succeeded)
                {
                    var result1 = await UserManager.AddToRoleAsync(User, "Admin");
                }
            }
        }
示例#2
0
        public string Register([FromForm] string json)
        {
            try {
                this.Request = new Request(json);
                FinalUser finalUser = new FinalUser {
                    Name     = this.Request.Get("name"),
                    LastName = this.Request.Get("lastname"),
                    BornDate = Convert.ToDateTime(this.Request.Get("borndate")),
                    Email    = new MailAddress(this.Request.Get("email")).Address,
                    Password = this.Request.Get("password"),
                    Gender   = Convert.ToChar(this.Request.Get("gender")),
                    //ImageSource = this.Request.Get("imageSource"),
                    Nationality = new NationRepository().GetNation("ARG" /*this.Request.Get("nation")*/),
                    Telephone   = this.Request.Get("telephone"),
                    Status      = new StatusRepository().FindStatusByCode("A"),
                    ParentUser  = new FinalUserRepository().FindById(Convert.ToInt32(this.Request.GetOrNull("parentUserId"))),
                };
                new FinalUserRepository().Add(finalUser);

                return(new Response(true, "Usuario creado exitosamente!").ToJson());
            } catch (NullReferenceException) {
                return(new Response(false, "No se han enviado todos los parametros necesarios para crear al usuario.").ToJson());
            } catch (Exception ex) {
                return(new Response(false, ex.Message).ToJson());
            }
        }
示例#3
0
        public IHttpActionResult PutFinalUser(int id, FinalUser finalUser)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != finalUser.Id)
            {
                return(BadRequest());
            }

            db.Entry(finalUser).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!FinalUserExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
示例#4
0
 private object GetUserIdOrNull(FinalUser finalUser)
 {
     try {
         return(finalUser.Id);
     } catch {
         return("(NULL)");
     }
 }
示例#5
0
        public IHttpActionResult GetFinalUser(int id)
        {
            FinalUser finalUser = db.FinalUsers.Find(id);

            if (finalUser == null)
            {
                return(NotFound());
            }

            return(Ok(finalUser));
        }
示例#6
0
        public IHttpActionResult PostFinalUser(FinalUser finalUser)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.FinalUsers.Add(finalUser);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = finalUser.Id }, finalUser));
        }
示例#7
0
        private async Task LoadAsync(FinalUser user)
        {
            var userName = await _userManager.GetUserNameAsync(user);

            var phoneNumber = await _userManager.GetPhoneNumberAsync(user);

            Username = userName;

            Input = new InputModel
            {
                PhoneNumber = phoneNumber
            };
        }
示例#8
0
        public IHttpActionResult DeleteFinalUser(int id)
        {
            FinalUser finalUser = db.FinalUsers.Find(id);

            if (finalUser == null)
            {
                return(NotFound());
            }

            db.FinalUsers.Remove(finalUser);
            db.SaveChanges();

            return(Ok(finalUser));
        }
示例#9
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl ??= Url.Content("~/");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                var user = new FinalUser {
                    UserName = Input.Email, Email = Input.Email
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    _logger.LogInformation("User created a new account with password.");

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                    var callbackUrl = Url.Page(
                        "/Account/ConfirmEmail",
                        pageHandler: null,
                        values: new { area = "Identity", userId = user.Id, code = code, returnUrl = returnUrl },
                        protocol: Request.Scheme);

                    await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                                                      $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                    if (_userManager.Options.SignIn.RequireConfirmedAccount)
                    {
                        return(RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl }));
                    }
                    else
                    {
                        await _signInManager.SignInAsync(user, isPersistent : false);

                        return(LocalRedirect(returnUrl));
                    }
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }
示例#10
0
 public void Add(FinalUser finalUser)
 {
     try {
         int    lastID        = this.Add((AbstractUser)finalUser);
         String QueryTemplate = "INSERT INTO {0} (Id, ImageSource, Telephone, ParentUser) " +
                                "VALUES ({1}, '{2}', '{3}', {4})";
         String Query = String.Format(QueryTemplate, this.Table,
                                      lastID,
                                      //finalUser.ImageSource,
                                      "",
                                      finalUser.Telephone,
                                      this.GetUserIdOrNull(finalUser.ParentUser));
         this.ExecInsert(Query);
         EmailSender.UserAdd((AbstractUser)finalUser);
     } catch (SqlException ex) {
         throw new SqlParsedException(ex.Number, ex.Message);
     } catch (Exception ex) {
         throw ex;
     } finally {
         this.SqlConnection.Close();
     }
 }