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)); } }