public IActionResult Login(string userName, string password) { LoginResponseStruct loginResponse = new LoginResponseStruct(); try { var userLogic = BLFactoryService.GetUserLogic; if (userLogic.IsUserExist(userName) && userLogic.IsUserValid(userName, password) ) { var user = userLogic.GetUser(userName); user.Password = ""; loginResponse.TokenDetails = JwtService.GenerateToken(user); loginResponse.User = user; } else { return(Unauthorized("InvalidUserDetails")); } } catch (SystemException e) { return(StatusCode(500, e)); } catch (Exception) { return(BadRequest()); } return(Ok(loginResponse)); }
public IActionResult RegisterUser([FromBody] NewUserModel userModel) { LoginResponseStruct loginResponse = new LoginResponseStruct(); try { if (ModelState.IsValid) { if (_UserLogic.IsUserExist(userModel.UserName)) { return(BadRequest("User with this user name already exist.")); } if (HttpContext.Request.Headers.TryGetValue("TimezoneOffset", out StringValues timezoneOffset)) { if (int.TryParse(timezoneOffset.ToString(), out int offset)) { UserEntity user = userModel.Map <UserEntity>(); user.Person = userModel.Person.Map <PersonEntity>(); user = PrepareUser(user, offset); user = _UserLogic.AddUser(user); user.Password = ""; loginResponse.TokenDetails = JwtService.GenerateToken(user); loginResponse.User = user; return(Ok(loginResponse)); } else { return(BadRequest("Header TimezoneOffset is not typeof number.")); } } else { return(BadRequest("Header must container TimezoneOffset.")); } } else { return(BadRequest(ModelState)); } } catch (Exception e) { return(StatusCode(500, e)); } }