public void LoadCustomers() { var testCustomers = new Faker <Customer>() .RuleFor(u => u.CustomerFullName, f => f.Name.FirstName() + " " + f.Name.LastName()) .RuleFor(u => u.CustomerOrganization, f => f.Company.CompanyName()) .RuleFor(u => u.CustomerRecipient, f => f.Name.FirstName()) .RuleFor(u => u.CustomerAddress, f => f.Address.StreetAddress(true))//todo confirm .RuleFor(u => u.CustomerCity, f => f.Address.City()) .RuleFor(u => u.CustomerState, f => f.Address.State()) .RuleFor(u => u.CustomerZip, f => f.Address.ZipCode()) .RuleFor(u => u.CustomerCountry, f => f.Address.Country()) .RuleFor(u => u.CustomerPhone, f => f.Phone.PhoneNumber()) .RuleFor(u => u.CustomerPhoneExt, f => f.Random.Number(1000, 2000).ToString()) .RuleFor(u => u.CustomerEmail, f => f.Internet.Email()) .RuleFor(u => u.CustomerId, f => f.UniqueIndex) .RuleFor(u => u.CustomerAddressCheckOff, f => f.Random.Bool()); Customers = testCustomers.Generate(10).ToList(); var fieldNames = new[] { "ParentName", "OrderAmount" }; foreach (var cust in Customers) { cust.CustomerFieldList = new List <CustomerField>(); foreach (var name in fieldNames) { var field = new CustomerField(); field.FieldName = name; field.FieldValue = faker.Name.FirstName(); field.CustomerId = cust.CustomerId; cust.CustomerFieldList.Add(field); } } }
void RemoveFromDictionaries(Link <Customer> link, CustomerField field) { if (field.HasFlag(CustomerField.CustomerID)) { dictCustomerID.Remove(link.Data.CustomerID); } if (field.HasFlag(CustomerField.CompanyName)) { dictCompanyName[link.Data.CompanyName].Remove(link); if (dictCompanyName[link.Data.CompanyName].IsEmpty()) { dictCompanyName.Remove(link.Data.CompanyName); } } if (field.HasFlag(CustomerField.ContactName)) { dictContactName[link.Data.ContactName].Remove(link); if (dictContactName[link.Data.ContactName].IsEmpty()) { dictContactName.Remove(link.Data.ContactName); } } if (field.HasFlag(CustomerField.Phone)) { dictPhone[link.Data.Phone].Remove(link); if (dictPhone[link.Data.Phone].IsEmpty()) { dictPhone.Remove(link.Data.Phone); } } }
public void SeedDatabase(string connectionString) { // Get DbContext CustomersPnContextFactory contextFactory = new CustomersPnContextFactory(); using (CustomersPnDbAnySql context = contextFactory.CreateDbContext(new[] { connectionString })) { // Add data List <string> customerFields = new Customer().GetPropList(); //Find all attributes for cusomers and puts them in a list customerFields.Remove(nameof(Customer .RelatedEntityId)); // removes the related entity, because it's not relevant for fields foreach (string name in customerFields) { if (!context.Fields.Any(x => x.Name == name)) { Field newField = new Field { Name = name }; newField.Create(context); } } context.SaveChanges(); var nameOf = nameof(Customer.RelatedEntityId); Field fieldForRemove = context.Fields.FirstOrDefault(x => x.Name == nameOf); if (fieldForRemove != null) { context.Fields.Remove(fieldForRemove); context.SaveChanges(); } List <Field> fields = context.Fields.OrderBy(x => x.Id).ToList(); int i = 1; foreach (Field field in fields) { CustomerField customerField = new CustomerField { FieldId = field.Id, FieldStatus = 1, DisplayIndex = field.Name == "Id" ? 0 : i }; if (!context.CustomerFields.Any(x => x.FieldId == field.Id)) { context.CustomerFields.Add(customerField); } i += 1; } context.SaveChanges(); // Seed configuration CustomersPluginSeed.SeedData(context); } }
//Select Customers only by single field //and return them as MyDB private MyDB SelectBy(string field, CustomerField selectBy) { MyDoublyLinkedList <Link <Customer> > newList = new MyDoublyLinkedList <Link <Customer> >(); MyDB result = new MyDB(); if (selectBy == CustomerField.CustomerID && field != "") { if (dictCustomerID.ContainsKey(field)) { var line = dictCustomerID[field].Data; result.Insert(line); return(result); } } if (selectBy == CustomerField.CompanyName && field != "") { if (dictCompanyName.ContainsKey(field)) { foreach (var link in dictCompanyName[field]) { var line = link.Data; result.Insert(line); } } } if (selectBy == CustomerField.ContactName && field != "") { if (dictContactName.ContainsKey(field)) { foreach (var link in dictContactName[field]) { var line = link.Data; result.Insert(line); } } } if (selectBy == CustomerField.Phone && field != "") { if (dictPhone.ContainsKey(field)) { foreach (var link in dictPhone[field]) { var line = link.Data; result.Insert(line); } } } return(result); }
void AddToDictionaries(Link <Customer> link, CustomerField field) { if (field.HasFlag(CustomerField.CustomerID)) { dictCustomerID.Add(link.Data.CustomerID, link); } if (field.HasFlag(CustomerField.CompanyName)) { if (!dictCompanyName.ContainsKey(link.Data.CompanyName)) { dictCompanyName.Add(link.Data.CompanyName, new MyDoublyLinkedList <Link <Customer> >(link)); } else { dictCompanyName[link.Data.CompanyName].Insert(link); } } if (field.HasFlag(CustomerField.ContactName)) { if (!dictContactName.ContainsKey(link.Data.ContactName)) { dictContactName.Add(link.Data.ContactName, new MyDoublyLinkedList <Link <Customer> >(link)); } else { dictContactName[link.Data.ContactName].Insert(link); } } if (field.HasFlag(CustomerField.Phone)) { if (!dictPhone.ContainsKey(link.Data.Phone)) { dictPhone.Add(link.Data.Phone, new MyDoublyLinkedList <Link <Customer> >(link)); } else { dictPhone[link.Data.Phone].Insert(link); } } }
public void SeedDatabase(string connectionString) { var customersConnectionString = connectionString.Replace("angular-my-microting-plugin", "eform-angular-basecustomer-plugin"); var orgConnectionString = connectionString.Replace("angular-my-microting-plugin", "angular-my-microting-organizations-plugin"); DigitalOceanDbContextFactory contextFactory = new DigitalOceanDbContextFactory(); using (var context = contextFactory.CreateDbContext(new[] { connectionString })) MyMicrotingPluginSeed.SeedData(context, new MyMicrotingDropletsConfigurationSeedData()); MyMicrotingDbContextFactory myMicrotingDbContextFactory = new MyMicrotingDbContextFactory(); using (var context = myMicrotingDbContextFactory.CreateDbContext(new[] { orgConnectionString })) MyMicrotingPluginSeed.SeedData(context, new MyMicrotingOrganizationsConfigurationSeedData()); CustomersPnContextFactory customersPnContextFactory = new CustomersPnContextFactory(); using (CustomersPnDbAnySql context = customersPnContextFactory.CreateDbContext(new[] { customersConnectionString })) { // Add data List <string> customerFields = new Customer().GetPropList(); //Find all attributes for cusomers and puts them in a list customerFields.Remove(nameof(Customer .RelatedEntityId)); // removes the related entity, because it's not relevant for fields foreach (string name in customerFields) { if (!context.Fields.Any(x => x.Name == name)) { Field newField = new Field { Name = name }; newField.Create(context); } } context.SaveChanges(); Field fieldForRemove = context.Fields.FirstOrDefault(x => x.Name == nameof(Customer.RelatedEntityId)); if (fieldForRemove != null) { context.Fields.Remove(fieldForRemove); context.SaveChanges(); } List <Field> fields = context.Fields.ToList(); foreach (Field field in fields) { CustomerField customerField = new CustomerField { FieldId = field.Id, FieldStatus = 1 }; if (!context.CustomerFields.Any(x => x.FieldId == field.Id)) { context.CustomerFields.Add(customerField); } } context.SaveChanges(); // Seed configuration MyMicrotingPluginSeed.SeedData(context, new MyMicrotingCustomersConfigurationSeedData()); MyMicrotingPluginSeed.SeedPermissions(context, new MyMicrotingCustomersPermissionsSeedData()); } }