Exemple #1
0
        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)
                   ));
        }