public async Task RunAsync(IRestContext context) { // IUserApi provides all functions for user management IUserApi userApi = context.Factory.CreateUserApi(); // getSession() Session session = await userApi.GetSessionAsync(); Console.WriteLine("Session ID: [{0}...]", session.SessionId.Substring(0, 32)); // getProfile() ProfileResponse profile = await userApi.GetProfileAsync(); Console.WriteLine("Email from your profile: {0}", profile.Email); // register() string guid = Guid.NewGuid().ToString(); Register register = new Register { FirstName = guid.Substring(0, 6), LastName = guid.Substring(0, 6), Email = guid.Substring(0, 6) + "@factory.com", Name = guid.Substring(0, 6), NewPassword = guid.Substring(0, 6) }; bool ok = await userApi.RegisterAsync(register, true); if (ok) { Console.WriteLine("Successfully registered user: {0}", guid.Substring(0,8)); } else { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Unfortunately, something went wrong."); } }
public async Task<bool> RegisterAsync(Register register, bool login = false) { if (register == null) { throw new ArgumentNullException("register"); } var address = baseAddress.WithResource("register"); if (login) { address = address.WithParameter("login", true); } string content = contentSerializer.Serialize(register); IHttpRequest request = new HttpRequest(HttpMethod.Post, address.Build(), baseHeaders, content); IHttpResponse response = await httpFacade.RequestAsync(request); HttpUtils.ThrowOnBadStatus(response, contentSerializer); var success = new { success = false }; success = contentSerializer.Deserialize(response.Body, success); if (success.success && login) { Session session = await GetSessionAsync(); baseHeaders.AddOrUpdate(HttpHeaders.DreamFactorySessionTokenHeader, session.session_id); } return success.success; }
public void RegisterShouldChangeBaseHeadersIfLoginTrue() { // Arrange HttpHeaders headers; IUserApi userApi = CreateUserApi(out headers); Register register = new Register { Email = "*****@*****.**", FirstName = "first", LastName = "last", Name = "display", NewPassword = "******" }; // Act userApi.RegisterAsync(register, true).Wait(); // Assert Dictionary<string, object> dictionary = headers.Build(); dictionary.ContainsKey(HttpHeaders.DreamFactorySessionTokenHeader).ShouldBe(true); }
public async Task<bool> RegisterAsync(Register register, bool login = false) { if (register == null) { throw new ArgumentNullException("register"); } SqlQuery query = new SqlQuery { Fields = null }; query.CustomParameters.Add("login", login); RegisterResponse response = await base.RequestWithPayloadAsync<Register, RegisterResponse>( method: HttpMethod.Post, resource: "register", query: query, payload: register ); if ((response.Success ?? false) && login) { base.BaseHeaders.AddOrUpdate(HttpHeaders.DreamFactorySessionTokenHeader, response.SessionToken); } return response.Success ?? false; }
public void ShouldRegisterAsync() { // Arrange IUserApi userApi = CreateUserApi(); Register register = new Register { Email = "*****@*****.**", FirstName = "first", LastName = "last", Name = "display", NewPassword = "******" }; // Act bool ok = userApi.RegisterAsync(register).Result; // Assert ok.ShouldBe(true); Should.Throw<ArgumentNullException>(() => userApi.RegisterAsync(null)); }
public void ShouldRegisterAsync() { // Arrange IUserApi userApi = CreateUserApi(); Register register = new Register { email = "*****@*****.**", first_name = "first", last_name = "last", display_name = "display", new_password = "******" }; // Act bool ok = userApi.RegisterAsync(register).Result; // Assert ok.ShouldBe(true); }
public async Task<ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { Register register = new Register { Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, Name = model.Name, NewPassword = model.Password }; bool result; try { result = await userApi.RegisterAsync(register); } catch (DreamFactoryException) { result = false; } if (result) { Session session = new Session(); try { session = await userApi.LoginAsync(model.Email, model.Password); } catch (DreamFactoryException) {;} if (string.IsNullOrEmpty(session.SessionId)) { return RedirectToAction("Login", "Account"); } SignIn(session, false); return RedirectToAction("Index", "Home"); } else { ModelState.AddModelError("", "There has been an error registering your account."); } } return View(model); }