public async Task <IActionResult> OnGetAsync() { var user = await userManager.GetUserAsync(User); if (user == null) { return(NotFound($"Unable to load user with ID '{userManager.GetUserId(User)}'.")); } var userName = await userManager.GetUserNameAsync(user); var name = user.Name; var description = user.Description; var location = user.Location; var website = user.Website; Username = userName; Input = new ProfileInputModel { Name = name, Description = description, Location = location, Website = website, Avatar = null, Cover = null, }; return(Page()); }
public IActionResult Update() { if (HttpContext.Session.GetString(SessionKeyID) != null && HttpContext.Session.GetString(SessionKeyID) != "") { EditProfile data = new EditProfile(); using (var client = new HttpClient()) { client.BaseAddress = new Uri(BaseAPI + "Profile/"); ProfileInputModel filter = new ProfileInputModel(); filter.UserID = Guid.Parse(HttpContext.Session.GetString(SessionKeyID).ToString()); var responseTask = client.PostAsJsonAsync <ProfileInputModel>("GetProfile", filter); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { var content = result.Content.ReadAsStringAsync(); ProfileResponseModel resutl = Newtonsoft.Json.JsonConvert.DeserializeObject <ProfileResponseModel>(content.Result); data.val = resutl.data; } else //web api sent error response { //log response status here.. ModelState.AddModelError(string.Empty, "Terjadi kesalahan server. Hubungi admin."); } } return(View(data)); } else { ModelState.AddModelError(string.Empty, "Terjadi kesalahan server. Hubungi admin."); return(RedirectToAction("Index", "Home")); } }
public ActionResult <ProfileResponseModel> GetProfile([FromBody] ProfileInputModel data) { try { ProfileBL profileBL = new ProfileBL(DbContext); var res = profileBL.GetCompleteProfie(data.UserID); res.PPNDefault = AppSettings.PPNDefault; ProfileResponseModel response = new ProfileResponseModel(); response.data = res; response.Message = "Success"; response.Response = true; return(response); } catch (Exception ex) { ProfileResponseModel logres = new ProfileResponseModel(); logres.Message = ex.Message; logres.Response = false; return(logres); } }
public async Task <IActionResult> AccountAsync(ProfileInputModel input) { if (!ModelState.IsValid) { return(View(input)); } var userId = User.FindFirstValue(ClaimTypes.NameIdentifier); var user = _userService.GetUser(userId); if (!string.IsNullOrEmpty(input.NewPassword)) { var changePasswordResult = await _userManager.ChangePasswordAsync(user, input.OldPassword, input.NewPassword); if (!changePasswordResult.Succeeded) { foreach (var error in changePasswordResult.Errors) { ModelState.AddModelError(string.Empty, error.Description); } return(View(input)); } else { await _signInManager.RefreshSignInAsync(user); _logger.LogInformation("{user} changed password successfully.", user.Email); } } _mapper.Map(input, user); if (input.ProgramIds == null) { user.UserPrograms.Clear(); } else { var currentProgramIds = user.UserPrograms.Select(e => e.ProgramId).ToHashSet(); var programIdsToRemove = currentProgramIds.Except(input.ProgramIds).ToHashSet(); var programIdsToAdd = input.ProgramIds.Except(currentProgramIds).ToList(); user.UserPrograms.RemoveAll(p => programIdsToRemove.Contains(p.ProgramId)); user.UserPrograms.AddRange(programIdsToAdd.Select(id => new UserProgram { UserId = user.Id, ProgramId = id })); } _userService.SaveChanges(); _logger.LogInformation("{user} updated profile info.", user.Email); return(RedirectToAction("Index")); }
private void ValidateUser(ProfileInputModel model, string id = null) { if (string.IsNullOrEmpty(model.Username)) { this.ModelState.AddModelError(nameof(ProfileInputModel.Username), "Username is required!"); } else if (this.profileService.UserExistsByUsername(model.Username, id)) { this.ModelState.AddModelError(nameof(ProfileInputModel.Username), "User with the same 'Username' already exists."); } if (this.profileService.UserExistsByEmail(model.Email, id)) { this.ModelState.AddModelError(nameof(ProfileInputModel.Email), "User with the same 'Email' already exists."); } }
public async Task <IActionResult> Register(ProfileInputModel model) { if (!ModelState.IsValid) { return(View(model)); } var response = await _mediator.Send(model); if (response.HasErrors) { MapToModelState(response); return(View(model)); } return(RedirectToAction("Login")); }
public IActionResult Update() { if (HttpContext.Session.GetString(SessionKeyID) != null && HttpContext.Session.GetString(SessionKeyID) != "") { EditProfile data = new EditProfile(); using (var client = new HttpClient()) { client.BaseAddress = new Uri(BaseAPI + "Profile/"); ProfileInputModel filter = new ProfileInputModel(); filter.UserID = Guid.Parse(HttpContext.Session.GetString(SessionKeyID).ToString()); var responseTask = client.PostAsJsonAsync <ProfileInputModel>("GetProfile", filter); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { var content = result.Content.ReadAsStringAsync(); ProfileResponseModel resutl = Newtonsoft.Json.JsonConvert.DeserializeObject <ProfileResponseModel>(content.Result); data.val = resutl.data; } else //web api sent error response { //log response status here.. ModelState.AddModelError(string.Empty, "Server error. Please contact administrator."); } } return(View(data)); } else { ModelState.AddModelError(string.Empty, "Server Error. Please contact administrator."); if (HttpContext.Session.GetString(Loginfrom) == "ADM/SPV") { return(RedirectToAction("AdminLogon", "Login")); } else if (HttpContext.Session.GetString(Loginfrom) == "MDO") { return(RedirectToAction("OwnerLogon", "Login")); } else { return(RedirectToAction("BuyerLogon", "Login")); } //return RedirectToAction("Logon", "Login"); } }
private async Task LoadAsync(WebbShopUser user) { var userName = await _userManager.GetUserNameAsync(user); var phoneNumber = await _userManager.GetPhoneNumberAsync(user); Username = userName; Input = new ProfileInputModel { PhoneNumber = phoneNumber, FirstName = user.FirstName, LastName = user.LastName, StreetAddress = user.StreetAddress, PostalCode = user.PostalCode, City = user.City }; }
private async Task LoadAsync(ApplicationUser user) { var appUser = await _manageUsers.GetUserAsync(user.Id); Username = appUser.UserName; Input = new ProfileInputModel { DisplayName = appUser.DisplayName, Title = appUser.Title, Location = appUser.Location, About = appUser.About, PhoneNumber = appUser.PhoneNumber, GitHub = appUser.GitHub, Twitter = appUser.Twitter, LinkedIn = appUser.LinkedIn, Website = appUser.Website }; }
public async Task <IActionResult> EditProfile() { // Get User Data var user = await _userManager.GetUserAsync(User); var profile = new ProfileInputModel { Id = user.Id, FirstName = user.FirstName, LastName = user.LastName, Email = user.Email, FavoriteBook = user.FavoriteBook, Image = user.Image, FullName = user.FullName, ShippingAddress = user.ShippingAddress, City = user.City, State = user.State, Postcode = user.Postcode, Country = user.Country }; return(View(profile)); }
public async Task <IActionResult> EditProfile(ProfileInputModel model) { if (!ModelState.IsValid) { ViewData["ErrorMessage"] = "Error"; return(View()); } _accountService.ProcessProfile(model); //Error handling var user = await _userManager.GetUserAsync(User); //Update Properties user.FirstName = model.FirstName; user.LastName = model.LastName; user.FavoriteBook = model.FavoriteBook; user.Image = model.Image; user.FullName = model.FullName; user.ShippingAddress = model.ShippingAddress; user.City = model.City; user.State = model.State; user.Postcode = model.Postcode; user.Country = model.Country; var result = await _userManager.UpdateAsync(user); if (result.Succeeded) { return(RedirectToAction("MyProfile", "Account")); } else { ViewData["ErrorMessage"] = "Failed to save changes, please try again"; return(View(model)); } }
public void ProcessProfile(ProfileInputModel profile) { if (string.IsNullOrEmpty(profile.FirstName)) { throw new Exception("First name is missing"); } if (string.IsNullOrEmpty(profile.LastName)) { throw new Exception("Last name is missing"); } if (string.IsNullOrEmpty(profile.FullName)) { throw new Exception("Name is missing"); } if (string.IsNullOrEmpty(profile.ShippingAddress)) { throw new Exception("Address is missing"); } if (string.IsNullOrEmpty(profile.City)) { throw new Exception("City is missing"); } if (string.IsNullOrEmpty(profile.Postcode)) { throw new Exception("Postcode is missing"); } if (string.IsNullOrEmpty(profile.Country)) { throw new Exception("Country is missing"); } }
public async Task <IActionResult> Index(ProfileInputModel model) { var vm = model as ProfileViewModel; var user = await _userManager.GetUserAsync(User); if (user == null) { return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.")); } if (!ModelState.IsValid) { return(View(vm)); } var username = await _userManager.GetUserNameAsync(user); if (!string.Equals(username, model.Username, StringComparison.InvariantCulture)) { var result = await _userManager.SetUserNameAsync(user, model.Username); if (!result.Succeeded) { ViewData["StatusMessage"] = "Ops... si è verificato un errore inaspettato durante il salvataggio dello username."; return(View(vm)); } } var phoneNumber = await _userManager.GetPhoneNumberAsync(user); if (!string.Equals(model.PhoneNumber, phoneNumber, StringComparison.InvariantCulture)) { var result = await _userManager.SetPhoneNumberAsync(user, model.PhoneNumber); if (!result.Succeeded) { ViewData["StatusMessage"] = "Ops... si è verificato un errore inaspettato durante il salvataggio del nuovo numero di telefono."; return(View(vm)); } } if (!string.Equals(model.GivenName, user.GivenName, StringComparison.OrdinalIgnoreCase) || !string.Equals(model.FamilyName, user.FamilyName, StringComparison.InvariantCultureIgnoreCase)) { user.GivenName = model.GivenName; user.FamilyName = model.FamilyName; user.Name = $"{model.GivenName} {model.FamilyName}"; var claims = await _userManager.GetClaimsAsync(user); foreach (var claim in claims) { switch (claim.Type) { case "name": await _userManager.ReplaceClaimAsync(user, claim, new Claim("name", user.Name)); break; case "given_name": await _userManager.ReplaceClaimAsync(user, claim, new Claim("given_name", user.GivenName ?? string.Empty)); break; case "family_name": await _userManager.ReplaceClaimAsync(user, claim, new Claim("family_name", user.FamilyName ?? string.Empty)); break; } } var result = await _userManager.UpdateAsync(user); if (!result.Succeeded) { ViewData["StatusMessage"] = "Ops... si è verificato un errore inaspettato."; return(View(vm)); } } await _signInManager.RefreshSignInAsync(user); ViewData["StatusMessage"] = "Profilo aggiornato con successo"; return(View(vm)); }
public async Task <IActionResult> EditUser(ProfileInputModel postedData) { if (!ModelState.IsValid) { foreach (var modelError in ModelState) { if (modelError.Value.Errors.Count > 0) { Response.StatusCode = (int)HttpStatusCode.Forbidden; return(Json(new { Message = modelError.Value.Errors[0].ErrorMessage })); } } } if (postedData == null) { return(NotFound("No data posted.")); } _logger.LogInformation("Getting authenticated User"); var userToUpdate = await _userManager.GetUserAsync(User); if (userToUpdate == null) { _logger.LogInformation("Authenticated User NOT FOUND"); return(NotFound("User not found.")); } if (userToUpdate.Slug.Equals(postedData.Slug, StringComparison.InvariantCultureIgnoreCase)) { Response.StatusCode = (int)HttpStatusCode.Forbidden; return(Json(new { Message = "You can't edit other User's profile." })); } userToUpdate.UserName = postedData.UserName; userToUpdate.Bio = postedData.Bio; userToUpdate.Location = postedData.Location; userToUpdate.Website = postedData.Website; if (postedData.Avatar?.Length > 0) { userToUpdate.Avatar = await _userService.UploadImage(postedData.Avatar, Globals.AvatarsFolder); } else { userToUpdate.Avatar = Globals.DefaultAvatar; } if (postedData.Banner?.Length > 0) { userToUpdate.Banner = await _userService.UploadImage(postedData.Banner, Globals.BannersFolder); } else { userToUpdate.Banner = Globals.DefaultBanner; } _logger.LogInformation("Updating User ({ID})", userToUpdate.Id); await _userService.UpdateUserAsync(userToUpdate); return(Json(new { userToUpdate.UserName, userToUpdate.Bio, userToUpdate.Location, userToUpdate.Website, Avatar = string.Concat("/images/profile-images/", userToUpdate.Avatar), Banner = string.Concat("/images/profile-banners/", userToUpdate.Banner) })); }