public AdminLookupItem(AdminLookupItemModel model) { Id = string.IsNullOrEmpty(model.Id) ? Guid.NewGuid().ToString() : model.Id; CanonicalName = model.CanonicalName; DisplayName = model.DisplayName; Values = AdminLookupItemValue.Convert(model.Values); }
public async Task <AdminLookupItem> CreateItem(AdminLookupItemModel model) { if (await GetItem(model.CanonicalName) == null) { var entity = new AdminLookupItem(model); AdminLookupItem results = await _adminLookupItemManager.CreateItemAsync(entity); return(results); } return(null); }
public async Task <CustomerModel> Create(CustomerModel model) { model = await Validate(model); model.AdminMoniker = model.AdminMoniker.ToUpper(); model.TenantMonikers = new List <string>() { model.AdminMoniker }; // Create customer entity CustomerEntity customerEntity = new CustomerEntity(model); // Create customer item in system database. customerEntity = await _customersManager.CreateItemAsync(customerEntity); // Create customer admin database. DatabaseResponse databaseResponse = await _adminService.CreateDatabase(); if (databaseResponse.StatusCode != HttpStatusCode.Created) { throw new SystemDatabaseNotCreatedException(); } // Clone 'LookupItems' container and clone items from system database. var containerResponse = await _adminService.CreateContainer("LookupItems", "/canonicalName"); if (containerResponse.StatusCode != HttpStatusCode.Created) { throw new AdminContainerNotCreatedException("LookupItems"); } var systemLookupItemModels = await _systemLookupItemService.GetItems(); var systemLookupItems = SystemLookupItem.Construct(systemLookupItemModels); foreach (SystemLookupItem systemLookupItem in systemLookupItems) { if (systemLookupItem.CloneToAdminDatabase) { var adminLookupItemModel = new AdminLookupItemModel(systemLookupItem); await _adminLookupItemsService.CreateItem(adminLookupItemModel); } } // Create 'Users' container and clone items from system database. containerResponse = await _adminService.CreateContainer("Users", "/username"); if (containerResponse.StatusCode != HttpStatusCode.Created) { throw new AdminContainerNotCreatedException("Users"); } var systemAuthenticateUsers = await _systemUserService.GetItems(); foreach (SystemAuthenticateUser systemAuthenticateUser in systemAuthenticateUsers) { if (systemAuthenticateUser.CloneToAdminDatabase) { AdminAuthenticateUserModel adminAuthenticateUserModel = new AdminAuthenticateUserModel(systemAuthenticateUser); await _adminUsersService.CreateItem(adminAuthenticateUserModel); } } // Create customer 'admin' user. foreach (AdminAuthenticateUserModel adminUserModel in model.Users) { adminUserModel.NameFirst = adminUserModel.NameFirst.Replace("{moniker}", model.AdminMoniker.ToUpper()); adminUserModel.Username = adminUserModel.Username.Replace("{moniker}", model.AdminMoniker.ToLower()); adminUserModel.DisplayAs = adminUserModel.DisplayAs.Replace("{moniker}", model.AdminMoniker.ToUpper()); adminUserModel.EmailAddresses.ForEach(x => x.Address = x.Address.Replace("{moniker}", model.AdminMoniker.ToLower())); //for (int i = 0; i < adminUserModel.Roles.Count; i++) adminUserModel.Roles[i] = adminUserModel.Roles[i].Replace("{moniker}", model.AdminMoniker.ToUpper()); var randomWord = await Helpers.GetRandomWordFromWordsApi(); var joPassword = JObject.Parse(randomWord)["word"]; adminUserModel.Password = _hashingService.EncryptString(joPassword.ToString()); adminUserModel.EmailAddresses = await _adminEmailAddressService.Validate(adminUserModel.EmailAddresses); adminUserModel.PhoneNumbers = await _adminPhoneNumberService.Validate(adminUserModel.PhoneNumbers); await _adminUsersService.CreateItem(adminUserModel); } // Create Tenants container. containerResponse = await _adminService.CreateContainer("Tenants", "/moniker"); if (containerResponse.StatusCode != HttpStatusCode.Created) { throw new AdminContainerNotCreatedException("Tenants"); } model = new CustomerModel(customerEntity); return(model); }