Esempio n. 1
0
        public async Task <ActionResult <HttpResponseMessage> > Login([FromBody] User user)
        {
            try
            {
                User dbUser = await _context.Users.Where(u => u.Email == user.Email).FirstOrDefaultAsync();

                if (dbUser == null)
                {
                    return(Conflict("Użytkownik o takim adresie email nie istnieje"));
                }
                if (!dbUser.IsActivated)
                {
                    return(Conflict("Konto nie zostało aktywowane"));
                }
                var crypt = new CryptPassword();
                if (dbUser.Password != crypt.EncodeText(user.Password))
                {
                    return(Conflict("Niepoprawne hasło, spróbuj ponownie"));
                }

                return(Ok(GenerateToken(dbUser)));
            }
            catch (Exception e)
            {
                var objectError = new {
                    Client = "Wystąpił błąd po stronie serwera, prosimy skontaktować się z administratorem lub spróbować ponownie później",
                    Error  = e
                };
                return(Conflict(objectError));
            }
        }
        public async Task <ActionResult <HttpResponseMessage> > UserRegister([FromBody] User user)
        {
            try
            {
                User dbUser = _context.Users.Where(u => u.Email == user.Email).FirstOrDefault();
                if (dbUser != null)
                {
                    return(Conflict("Użytkownik o takim adresie email już istnieje"));
                }
                var crypt = new CryptPassword();
                user.Role           = "user";
                user.Password       = crypt.EncodeText(user.Password);
                user.CreatedDate    = DateTime.Now;
                user.ActivationDate = DateTime.Now.AddMinutes(60);
                _context.Users.Add(user);
                await _context.SaveChangesAsync();

                var userId = await _context.Users.Where(u => u.Email == user.Email).Select(e => e.Id).FirstOrDefaultAsync();

                try
                {
                    var email = new EmailController();
                    email.SendEmail(user.Email, "aktywacja konta", userId);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
                return(Ok("Rejestracja przebiegła pomyślnie, na email wysłano potwierdzenie rejestracji"));
            }
            catch (Exception e)
            {
                return(Conflict(e));
            }
        }
        public async Task <ActionResult <HttpResponseMessage> > EditData([FromBody] User users)
        {
            try
            {
                var  crypt  = new CryptPassword();
                Guid userId = new Guid(User.FindFirst(ClaimTypes.NameIdentifier)?.Value);
                User userDb = await _context.Users.Where(u => u.Id == userId).FirstOrDefaultAsync();

                userDb.Name         = users.Name;
                userDb.Surname      = users.Surname;
                userDb.Password     = crypt.EncodeText(users.Password);
                userDb.PhoneNumber  = users.PhoneNumber;
                userDb.UpdatedDate  = DateTime.Now;
                userDb.DefaultPlate = users.DefaultPlate;

                _context.Users.Update(userDb);
                await _context.SaveChangesAsync();

                return(Ok("Udało się zaktualizować dane użytkownika"));
            }

            catch (Exception e)
            {
                var objectError = new
                {
                    User  = "******",
                    Error = e
                };
                return(Conflict(objectError));
            }
        }