public static List <Customer> GetAllCustomer() { using (var context = new WebsiteTTKEntities()) { List <Customer> customers = new List <Customer>(); var users = context.AspNetUsers.ToList(); foreach (var user in users) { Customer customer = new Customer(); AspNetUserAddress address = context.AspNetUserAddresses.SingleOrDefault(x => x.UserId == user.Id); customer.AspNetUserAddress = address; customer.AspNetUser = user; string globalDateFormat = System.Configuration.ConfigurationManager.AppSettings["GlobalDateFormat"]; customer.Birthday = address.Birthday.Value.ToString(globalDateFormat); customer.City = address.City; List <string> countries = Helper.GetCountries(); if (countries != null) { customer.Countries = countries.ToArray(); } customer.Email = user.Email; customer.FirstName = address.Firstname; customer.LastName = address.Lastname; customer.PhoneNumber = address.PhoneNumber; customer.Street = address.Street; customer.ZipCode = address.Zip; customers.Add(customer); } return(customers); } }
/// <summary> /// Update customer address /// </summary> /// <param name="customer">Customer entity</param> /// <returns></returns> public static string UpdateCustomerAddress(Customer customer) { try { AspNetUser user = customer.AspNetUser; AspNetUserAddress address = customer.AspNetUserAddress; using (var context = new WebsiteTTKEntities()) { var existAddress = context.AspNetUserAddresses.FirstOrDefault(x => x.UserId == user.Id); existAddress.Firstname = address.Firstname; existAddress.Lastname = address.Lastname; existAddress.Company = address.Company; existAddress.Street = address.Street; existAddress.City = address.City; existAddress.Zip = address.Zip; existAddress.State = address.State; existAddress.PhoneNumber = address.PhoneNumber; existAddress.Email = address.Email; existAddress.Country = address.Country; context.SaveChanges(); return(null); } } catch (Exception ex) { return(ex.Message); } }
/// <summary> /// Get list of user's address base on address type /// </summary> /// <param name="id">Address ID</param> /// <param name="type">Address Type (Enum)</param> /// <returns></returns> public static List <AspNetUserAddress> GetUserAddressByUserId(string id, AddressType type) { using (var context = new WebsiteTTKEntities()) { //Get product data IQueryable <AspNetUserAddress> qUserAddressTable = from t in context.AspNetUserAddresses where t.UserId == id && t.AddressType == type.ToString() select t; // can you confirm if your context has Tables or MyTables? var listOfProducts = qUserAddressTable.Select(s => new { Id = s.Id, UserId = s.UserId, Firstname = s.Firstname, Lastname = s.Lastname, Company = s.Company, Street = s.Street, City = s.City, Country = s.Country, State = s.State, Zip = s.Zip, Birthday = s.Birthday, Gender = s.Gender, PhoneNumber = s.PhoneNumber, Email = s.Email, AddressType = s.AddressType }).ToList(); List <AspNetUserAddress> addresses = new List <AspNetUserAddress>(); foreach (var item in listOfProducts) { AspNetUserAddress address = new AspNetUserAddress(); address.Id = item.Id; address.UserId = item.UserId; address.Firstname = item.Firstname; address.Lastname = item.Lastname; address.Company = item.Company; address.Street = item.Street; address.City = item.City; address.Country = item.Country; address.State = item.State; address.Zip = item.Zip; address.Birthday = item.Birthday; address.Gender = item.Gender; address.PhoneNumber = item.PhoneNumber; address.Email = item.Email; address.AddressType = item.AddressType; addresses.Add(address); } return(addresses); } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (User.Identity.IsAuthenticated) { Customer customer = new Customer(); customer.Countries = UserHelper.Countries(); var userName = User.Identity.GetUserName(); var userStore = new UserStore <IdentityUser>(); var userManager = new UserManager <IdentityUser>(userStore); System.Threading.Tasks.Task <IdentityUser> user = userManager.FindByNameAsync(userName); if (user.Result != null) { //Because of updating user's profile, thus it use home address. List <AspNetUserAddress> addresses = UserHelper.GetUserAddressByUserId(user.Result.Id, UserHelper.AddressType.HomeAddress); if (addresses.Count > 0) { AspNetUserAddress address = addresses.FirstOrDefault(); customer.AspNetUserAddress = address; if (address.Birthday != null) { string globalDateFormat = System.Configuration.ConfigurationManager.AppSettings["GlobalDateFormat"]; customer.Birthday = address.Birthday.Value.ToString(globalDateFormat); } //This code block can help to bypass ASP user's email and phone number. And used only home address for user's profile //Because of updating user's profile. It can get ASP user's email if profile address's email is empty. if (String.IsNullOrEmpty(address.Email)) { customer.Email = user.Result.Email; } else { customer.Email = address.Email; } //Because of updating user's profile. It can get ASP user's phone number if profile address's phone number is empty. if (String.IsNullOrEmpty(address.PhoneNumber)) { customer.PhoneNumber = user.Result.PhoneNumber; } else { customer.PhoneNumber = address.PhoneNumber; } } else { customer.PhoneNumber = user.Result.PhoneNumber; customer.Email = user.Result.Email; } txtFirstname.Text = customer.AspNetUserAddress.Firstname; txtLastname.Text = customer.AspNetUserAddress.Lastname; txtCompany.Text = customer.AspNetUserAddress.Company; txtStreet.Text = customer.AspNetUserAddress.Street; txtCity.Text = customer.AspNetUserAddress.City; txtZip.Text = customer.AspNetUserAddress.Zip; txtState.Text = customer.AspNetUserAddress.State; txtPhoneNumber.Text = customer.PhoneNumber; txtEmail.Text = customer.Email; SetupCountryDropDownList(customer); } } else { Page.Response.Redirect(Helper.GetHostURL(), true); } } }
protected void btnSubmitUserAddress_Click(object sender, EventArgs e) { if (User.Identity.IsAuthenticated) { var userName = User.Identity.GetUserName(); var userStore = new UserStore <IdentityUser>(); var userManager = new UserManager <IdentityUser>(userStore); System.Threading.Tasks.Task <IdentityUser> user = userManager.FindByNameAsync(userName); if (user.Result != null) { //Because of updating user's profile, thus it use home address. List <AspNetUserAddress> addresses = UserHelper.GetUserAddressByUserId(user.Result.Id, UserHelper.AddressType.HomeAddress); if (addresses.Count > 0) { AspNetUserAddress address = addresses.FirstOrDefault(); address.Firstname = Helper.GetPlainTextFromHtml(firstname.Text); address.Lastname = Helper.GetPlainTextFromHtml(lastname.Text); address.Company = Helper.GetPlainTextFromHtml(company.Text); address.Street = Helper.GetPlainTextFromHtml(street.Text); address.City = Helper.GetPlainTextFromHtml(city.Text); address.Zip = Helper.GetPlainTextFromHtml(zip.Text); address.State = Helper.GetPlainTextFromHtml(state.Text); if (!Helper.IsValidEmail(Email.Text)) { string message = "Invalid email!"; ClientScript.RegisterStartupScript(GetType(), "ShowAlert", "window.ShowMessage(0,\"" + message + "\",true);", true); } else { address.Email = Helper.GetPlainTextFromHtml(Email.Text); address.PhoneNumber = Helper.GetPlainTextFromHtml(PhoneNumber.Text); address.Country = Helper.GetPlainTextFromHtml(country.SelectedValue); try { string globalDateFormat = System.Configuration.ConfigurationManager.AppSettings["GlobalDateFormat"]; DateTime biDate = DateTime.ParseExact(Helper.GetPlainTextFromHtml(birthday.Value), globalDateFormat, System.Globalization.CultureInfo.InvariantCulture); address.Birthday = biDate; } catch { address.Birthday = null; } address.Gender = UserHelper.ConvertStringToGender(Helper.GetPlainTextFromHtml(gender.SelectedValue)); try { UserHelper.UpdateUserAddresses(new System.Collections.Generic.List <AspNetUserAddress> { address }); string message = "Update successful!"; ClientScript.RegisterStartupScript(GetType(), "ShowAlert", "window.ShowMessage(0,\"" + message + "\",true);", true); } catch (Exception ex) { string message = "Update fail! " + ex.Message; ClientScript.RegisterStartupScript(GetType(), "ShowAlert", "window.ShowMessage(0,\"" + message + "\",true);", true); } } } else { AspNetUserAddress address = new AspNetUserAddress(); address.UserId = user.Result.Id; //Because of updating user's profile, thus it use home address. address.AddressType = UserHelper.AddressType.HomeAddress.ToString(); address.Firstname = Helper.GetPlainTextFromHtml(firstname.Text); address.Lastname = Helper.GetPlainTextFromHtml(lastname.Text); address.Company = Helper.GetPlainTextFromHtml(company.Text); address.Street = Helper.GetPlainTextFromHtml(street.Text); address.City = Helper.GetPlainTextFromHtml(city.Text); address.Zip = Helper.GetPlainTextFromHtml(zip.Text); address.State = Helper.GetPlainTextFromHtml(state.Text); if (!Helper.IsValidEmail(Email.Text)) { string message = "Invalid email!"; ClientScript.RegisterStartupScript(GetType(), "ShowAlert", "window.ShowMessage(0,\"" + message + "\",true);", true); } else { address.Email = Helper.GetPlainTextFromHtml(Email.Text); address.PhoneNumber = Helper.GetPlainTextFromHtml(PhoneNumber.Text); address.Country = Helper.GetPlainTextFromHtml(country.SelectedValue); try { string globalDateFormat = System.Configuration.ConfigurationManager.AppSettings["GlobalDateFormat"]; DateTime biDate = DateTime.ParseExact(Helper.GetPlainTextFromHtml(birthday.Value), globalDateFormat, System.Globalization.CultureInfo.InvariantCulture); address.Birthday = biDate; } catch { address.Birthday = null; } address.Gender = UserHelper.ConvertStringToGender(Helper.GetPlainTextFromHtml(gender.SelectedValue)); try { UserHelper.UpdateUserAddresses(new List <AspNetUserAddress> { address }); string message = "Update successful!"; ClientScript.RegisterStartupScript(GetType(), "ShowAlert", "window.ShowMessage(0,\"" + message + "\",true);", true); } catch (Exception ex) { string message = "Update fail! " + ex.Message; ClientScript.RegisterStartupScript(GetType(), "ShowAlert", "window.ShowMessage(0,\"" + message + "\",true);", true); } } } } } else { Page.Response.Redirect(Helper.GetHostURL(), true); } }