public async Task <IActionResult> Profile(MembersProfileVM membersProfileVM) { if (!ModelState.IsValid) { return(View(membersProfileVM)); } var statusCode = await membersService.CheckAddress(membersProfileVM); if (!statusCode.Item1) { membersProfileVM.ErrorMessage = statusCode.Item2; return(View(membersProfileVM)); } if (membersProfileVM.FilePath != null) { var uniqueFileName = Helper.GetUniqueFileName(membersProfileVM.FilePath.FileName); var images = Path.Combine(hostingEnvironment.WebRootPath, "profiles"); var filePath = Path.Combine(images, uniqueFileName); membersProfileVM.FilePath.CopyTo(new FileStream(filePath, FileMode.Create)); membersProfileVM.Picture = uniqueFileName; } await membersService.ChangeProfile(membersProfileVM, HttpContext.User); return(RedirectToAction(nameof(Profile))); }
public async Task ChangeProfile(MembersProfileVM membersProfileVM, ClaimsPrincipal user) { var result = await GetUser(user); result.City = membersProfileVM.City; result.Email = membersProfileVM.Email; result.UserName = membersProfileVM.Email; result.FirstName = membersProfileVM.FirstName; result.LastName = membersProfileVM.LastName; if (!string.IsNullOrWhiteSpace(membersProfileVM.Picture)) { result.Picture = membersProfileVM.Picture; } result.Street = membersProfileVM.Street; result.ZipCode = membersProfileVM.ZipCode; await userManager.UpdateAsync(result); }
public async Task <Tuple <bool, string> > CheckAddress(MembersProfileVM membersProfileVM) { var http = new HttpClient(); var street = new String(membersProfileVM.Street.Where(Char.IsLetter).ToArray()); var streetNumber = Regex.Match(membersProfileVM.Street, @"\d+").Value; var url = string.Format($"https://papapi.se/json/?v={street}|{streetNumber}|" + $"{membersProfileVM.ZipCode}|{membersProfileVM.City}&token=b5d95cb8932150b6bb65e4de000fe4567aac2d30"); var response = await http.GetAsync(url); var result = await response.Content.ReadAsStringAsync(); var json = JsonConvert.DeserializeObject <JsonAddress>(result); // Convertor from string"result" to json var description = json.result.status.description_sv; return(new Tuple <bool, string> ( json.result.status.code == "100", description.First().ToString().ToUpper() + description.Substring(1) )); }