public FlightUser Verify(string IdAuth0) { Management management = new Management(UnitOfWork.AppServices); User FlightUserAuth0 = Task.Run(() => management.ReadAsync(IdAuth0)).Result; if (FlightUserAuth0 == null) { return(null); } else { try { FlightUser flightUser = ReadByEmail(FlightUserAuth0.Email); Task.Run(() => management.EditAppMetadataAsync(flightUser)); return(flightUser); } catch { FlightUserAdd FlightUserAdd = new FlightUserAdd { Email = FlightUserAuth0.Email, FName = FlightUserAuth0.FirstName ?? String.Empty, LName = FlightUserAuth0.LastName ?? String.Empty, Password = UtilsString.RandomPassword(20) }; return(Add(FlightUserAdd, false, IdAuth0)); } } }
private bool ValidateExist(FlightUserAdd flightUserAdd) { FlightUser flightUser = new FlightUser() { Id = 0, Email = flightUserAdd.Email, }; return(ValidateExist(flightUser)); }
public IActionResult AddUser([FromBody] FlightUserAdd flightUserIncluir) { try { Login.Add(flightUserIncluir, true); IActionResult response = CreatedAtAction("AddUser", true); return(response); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public FlightUser Add(FlightUserAdd flightUserAdd, bool AddAuth0, string IdAuth0 = null) { if (!ValidateExist(flightUserAdd)) { try { // Database UnitOfWork.BeginTransaction(); // Usuário FlightUser flightUser = new FlightUser { Id = 0, BornDate = flightUserAdd.BornDate, Email = flightUserAdd.Email, FName = flightUserAdd.FName, LName = flightUserAdd.LName, }; UnitOfWork.FlightUsers.Add(flightUser); UnitOfWork.SaveChanges(); // Auth0 var management = new Management(UnitOfWork.AppServices); if (AddAuth0) { var FlightUserAuth0 = Task.Run(() => management.IncludeAsync((int)flightUser.Id, flightUser.Email, flightUserAdd.Password, flightUser.FName, flightUser.LName)).Result; if (FlightUserAuth0 == null) { throw new InvalidOperationException("[Login] Some problem while add User in Auth0"); } } else { User FlightUserAuth0 = Task.Run(() => management.ReadAsync(IdAuth0)).Result; if (FlightUserAuth0 == null) { throw new InvalidOperationException("[Usuários] Ocorreu um problema ao Read o usuário em Auth0"); } else if (!(FlightUserAuth0.AppMetadata as Dictionary <string, object>).ContainsKey("IdFlightUser") || (FlightUserAuth0.AppMetadata["IdFlightUser"] == null)) { Task.Run(() => management.EditAppMetadataAsync(flightUser)); } } UnitOfWork.Commit(); return(Read((int)flightUser.Id)); } catch (Exception ex) { UnitOfWork.Rollback(); throw ex; } } else { throw new ArgumentException("[Login] User Already exists"); } }