Ejemplo n.º 1
0
        public async Task <ActionResult <string> > Login(Common.Api.Request.User loginUser)
        {
            var usersFound = await context.Users.Where(u => u.Email == loginUser.Email).ToListAsync();

            switch (usersFound.Count)
            {
            case 0:
                return(NotFound($"Can't find user with email: {loginUser.Email}."));

            case 1:
                if (usersFound.First().Password == EncryptPassword(loginUser.Password))
                {
                    usersFound.First().Logged = true;
                    await context.SaveChangesAsync();

                    return(Ok(token.Generate(usersFound.First().UserId, usersFound.First().Email, usersFound.First().Role)));
                }
                else
                {
                    return(Unauthorized());
                }

            default:
                var admin = await context.Users.SingleOrDefaultAsync(u => u.Role == Common.User.UserRole.Admin);

                return(Conflict($"Multiple accounts error for email {loginUser.Email}. Please report this to {admin?.Email}."));
            }
        }
Ejemplo n.º 2
0
        public async Task <bool> LoginAsync(Common.Api.Request.User user)
        {
            var response = await HttpClient.PostAsJsonAsync(Common.ApiRoutes.Admin.Login, user);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                SetToken(await response.Content.ReadAsStringAsync());
                return(true);
            }
            else
            {
                return(false);
            }
        }