private void CreateDataStructures() { // CREATE DEFAULT STRUCTURES // add default inventory location var loc = new inventoryLocation { name = GeneralConstants.INVENTORY_LOCATION_DEFAULT, subdomain = mastersubdomain.id, lastUpdate = DateTime.UtcNow }; repository.AddInventoryLocation(loc, mastersubdomain.id); // add default shipping profile var shippingProfile = new shippingProfile() { title = "Default", type = ShippingProfileType.FLATRATE.ToString(), subdomainid = mastersubdomain.id, permanent = true }; repository.AddShippingProfile(shippingProfile); // add default payment methods var method_bank = new paymentMethod { method = PaymentMethod.BankTransfer.ToString(), name = "Bank Deposit", instructions = "Please contact me for payment details" }; mastersubdomain.paymentMethods.Add(method_bank); var method_cod = new paymentMethod { method = PaymentMethod.COD.ToString(), name = "Cash On Delivery", instructions = "" }; mastersubdomain.paymentMethods.Add(method_cod); usr.passwordHash = Utility.ComputePasswordHash(email + password); // if user exist then we still need to verify email Random rnd = RandomNumberGenerator.Instance; usr.confirmationCode = rnd.Next(); repository.Save(); // generate liquid stuff new Thread(() => ThemeHandler.GenerateDefaultStructures(mastersubdomain.id)).Start(); }