Example #1
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, CustomerManagerContext _customerManagerContext)
        {
            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();

            /* DB Context calls this method to seed the Master data in the related tables */
            _customerManagerContext.EnsureSeedDataForContext();

            /* For the Http Status code pages */
            app.UseStatusCodePages();

            // Shows UseCors with CorsPolicyBuilder.
            app.UseCors(builder =>
            {
                builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader();
            });

            app.UseMvc();

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
        }
        internal static void Initialize(CustomerManagerContext context)
        {
            var random = new Random((int)DateTime.Now.Ticks);
            var randomOrder = new Random((int)DateTime.Now.Ticks);
            var randomQuantity = new Random((int)DateTime.Now.Ticks);

            var sortedStates = states.OrderBy(s => s.Name);
            foreach (var state in sortedStates)
            {
                context.States.Add(state);
            }

            context.Cameras.AddRange(cameras);

            //context.CustomerCameras.AddRange(customerCameras);

            //Generate customers and orders
            for (int i = 0; i < customerNames.Length; i++)
            {
                var nameGenderHost = SplitValue(customerNames[i]);
                var cityState = SplitValue(citiesStates[i]);
                var cust = new Customer
                {
                    Id = i + 1,
                    FirstName = nameGenderHost[0],
                    LastName = nameGenderHost[1],
                    Email= String.Format("{0}.{1}@{2}", nameGenderHost[0], nameGenderHost[1], nameGenderHost[3]),
                    Address = addresses[i],
                    City = cityState[0],
                    State = sortedStates.Where(state => state.Abbreviation == cityState[1]).SingleOrDefault(),
                    Zip = zip + i,
                    IsAdmin = i == 0,
                    UserName = "******" + i + "@gmail.com",
                    Password = "******",
                    Gender = (Gender)Enum.Parse(typeof(Gender), nameGenderHost[2]),
                    Cameras = new Collection<Camera>()
                };

                if (i == 0)
                {
                    foreach (var cam in cameras)
                    {
                        cust.Cameras.Add(cam);
                    }
                }

                context.Customers.Add(cust);

                //Generate customer orders
                var numToGrab = random.Next(orders.Count - 1);
                var custOrders = new List<Order>();
                for (int j = 0; j < numToGrab; j++)
                {
                    var orderPosition = randomOrder.Next(orders.Count - 1);
                    custOrders.Add(orders[orderPosition]);
                }

                foreach (var order in custOrders)
                {
                    var quantity = randomQuantity.Next(5);
                    var multiplier = (quantity % 2 == 0) ? 1 : -1;
                    var custOrder = order.Clone();
                    custOrder.Quantity = (quantity == 0) ? 1 : quantity;
                    custOrder.Date = DateTime.Now.AddDays(randomQuantity.Next(30) * multiplier);
                    custOrder.CustomerId = cust.Id;
                    context.Orders.Add(custOrder);
                }
            }
        }
        public static void EnsureSeedDataForContext(this CustomerManagerContext context)
        {
            if (context.Customers.Any())
            {
                return;
            }
            var random         = new Random((int)DateTime.Now.Ticks);
            var randomOrder    = new Random((int)DateTime.Now.Ticks);
            var randomQuantity = new Random((int)DateTime.Now.Ticks);

            var sortedStates = states.OrderBy(s => s.Name);

            foreach (var state in sortedStates)
            {
                context.States.Add(state);
                // context.SaveChanges();
            }

            //Generate customers and orders
            for (int i = 0; i < customerNames.Length; i++)
            {
                var nameGenderHost = SplitValue(customerNames[i]);
                var cityState      = SplitValue(citiesStates[i]);
                var cust           = new Customer
                {
                    //Id = i + 1,
                    FirstName = nameGenderHost[0],
                    LastName  = nameGenderHost[1],
                    Email     = String.Format("{0}.{1}@{2}", nameGenderHost[0], nameGenderHost[1], nameGenderHost[3]),
                    Address   = addresses[i],
                    City      = cityState[0],
                    State     = sortedStates.Where(state => state.Abbreviation == cityState[1]).SingleOrDefault(),
                    Zip       = zip + i,
                    Gender    = (Gender)Enum.Parse(typeof(Gender), nameGenderHost[2])
                };
                context.Customers.Add(cust);
                //context.SaveChanges();

                //Generate customer orders
                var numToGrab  = random.Next(orders.Count - 1);
                var custOrders = new List <Order>();
                for (int j = 0; j < numToGrab; j++)
                {
                    var orderPosition = randomOrder.Next(orders.Count - 1);
                    custOrders.Add(orders[orderPosition]);
                }

                foreach (var order in custOrders)
                {
                    var quantity   = randomQuantity.Next(5);
                    var multiplier = (quantity % 2 == 0) ? 1 : -1;
                    var custOrder  = order.Clone();
                    custOrder.Quantity   = (quantity == 0) ? 1 : quantity;
                    custOrder.Date       = DateTime.Now.AddDays(randomQuantity.Next(30) * multiplier);
                    custOrder.CustomerId = cust.Id;
                    context.Orders.Add(custOrder);
                    //context.SaveChanges();
                }
            }
            context.SaveChanges();
        }
Example #4
0
 public DataServiceController()
 {
     _Context = new CustomerManagerContext();
     //System.Threading.Thread.Sleep(5000);
 }