public async Task <RepositoryResponse <AccessTokenViewModel> > Register([FromBody] BEUserViewModel model) { RepositoryResponse <AccessTokenViewModel> result = new RepositoryResponse <AccessTokenViewModel>(); if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Username, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, JoinDate = DateTime.UtcNow }; var createResult = await _userManager.CreateAsync(user, password : model.Password).ConfigureAwait(false); if (createResult.Succeeded) { _logger.LogInformation("User created a new account with password."); user = await _userManager.FindByEmailAsync(model.Email).ConfigureAwait(false); model.Id = user.Id; model.CreatedDateTime = DateTime.UtcNow; // Save to cms db context await model.SaveModelAsync(); if (_userManager.Users.Count() == 1) { await _userManager.AddToRoleAsync(user, "SuperAdmin"); } var token = await GenerateAccessTokenAsync(user, true); if (token != null) { result.IsSucceed = true; result.Data = token; _logger.LogInformation("User logged in."); return(result); } else { return(result); } } else { foreach (var error in createResult.Errors) { result.Errors.Add(error.Description); } return(result); } } return(result); }
public async Task <JObject> Details(string viewType, string id = null) { switch (viewType) { case "be": if (!string.IsNullOrEmpty(id)) { var beResult = await BEUserViewModel.Repository.GetSingleModelAsync( model => model.Id == id).ConfigureAwait(false); beResult.Data.Specificulture = _lang; return(JObject.FromObject(beResult)); } else { var model = new SiocCmsUser() { Status = (int)SWStatus.Preview }; RepositoryResponse <BEUserViewModel> result = new RepositoryResponse <BEUserViewModel>() { IsSucceed = true, Data = await BEUserViewModel.InitViewAsync(model) }; result.Data.Specificulture = _lang; return(JObject.FromObject(result)); } default: if (!string.IsNullOrEmpty(id)) { var beResult = await InfoUserViewModel.Repository.GetSingleModelAsync( model => model.Id == id).ConfigureAwait(false); beResult.Data.Specificulture = _lang; return(JObject.FromObject(beResult)); } else { var model = new SiocCmsUser() { Status = (int)SWStatus.Preview }; RepositoryResponse <InfoUserViewModel> result = new RepositoryResponse <InfoUserViewModel>() { IsSucceed = true, Data = await InfoUserViewModel.InitViewAsync(model) }; result.Data.Specificulture = _lang; return(JObject.FromObject(result)); } } }