public ActionResult AddProfile(UserProfileBm bm)
        {
            if (!this.ModelState.IsValid)
            {
                var vm = new UserProfileVm();
                vm.FirstName   = bm.FirstName;
                vm.LastName    = bm.LastName;
                vm.CityName    = bm.CityName;
                vm.CountryName = bm.CountryName;

                foreach (var kvp in this.ModelState)
                {
                    if (kvp.Value.Errors.Count > 0)
                    {
                        var errorMsg =
                            this.langManager.GetLanguageValueByKey(kvp.Value.Errors.FirstOrDefault().ErrorMessage,
                                                                   this.langManager.GetCurrentLang(this.HttpContext).TwoLetterCode);
                        vm.Errors.Add(kvp.Key, errorMsg);
                    }
                }

                this.TempData["errorModel"] = vm;

                return(this.RedirectToAction("AddProfile"));
            }

            var isSuccess = this.myUserManager.AddUserDetails(bm, this.User.Identity.GetUserId());

            if (!isSuccess)
            {
                //error page
            }

            return(this.RedirectToAction("UserProfile"));
        }
        public bool AddUserDetails(UserProfileBm bm, string appUserId)
        {
            var isUserExists = this.userService.IsUserExists(appUserId);

            if (!isUserExists)
            {
                return(false);
            }

            var isPrimary = true;

            var address = this.addressService.GenerateAddress(bm.CountryName, bm.CityName, bm.Neighborhood, bm.StreetName, appUserId, isPrimary, AddressType.Home);

            if (address == null)
            {
                return(false);
            }

            bool isUpdated = this.userService.UpdatePersonalInfo(bm.FirstName, bm.LastName, bm.ImageUrl, appUserId);

            return(isUpdated);
        }