public async Task <IActionResult> LoginAsync([FromBody] Credentials credentials) { var actionResponseBuilder = GetEmptyResponseBuilder <Session>(); try { if (ModelState.IsValid) { var session = await _sessionService.AuthenticateAsync(credentials); actionResponseBuilder.SetData(session); return(Ok(actionResponseBuilder.Build())); } else { return(BadRequest(ModelState)); } } catch (Exception ex) { actionResponseBuilder.AddError(new Common.Utilities.ErrorMessage(Common.Enums.ErrorType.Invalid, ex.Message)); return(Unauthorized(actionResponseBuilder.Build())); } }