Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 4
0
        //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);
        }
Exemplo n.º 5
0
        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());
            }
        }