Example #1
0
        private void SeedUsers(CarSystemDbContext context)
        {
            if (!context.Roles.Any())
            {
                var roleName    = "Admin";
                var roleStore   = new RoleStore <IdentityRole>(context);
                var roleManager = new RoleManager <IdentityRole>(roleStore);
                var role        = new IdentityRole {
                    Name = roleName
                };
                roleManager.Create(role);

                var userStore   = new UserStore <User>(context);
                var userManager = new UserManager <User>(userStore);
                var user        = new User
                {
                    UserName       = AdministratorUserName,
                    Email          = AdministratorUserName,
                    EmailConfirmed = true,
                    UserType       = UserType.Admin
                };

                userManager.Create(user, AdministratorPassword);
                userManager.AddToRole(user.Id, roleName);
            }
        }
Example #2
0
        private void SeedBrandswithModels(CarSystemDbContext context)
        {
            if (context.Brands.Any())
            {
                return;
            }
            string[] brands = new string[] { "Volkswagen", "Audi", "BMV", "Mercedes" };

            for (int i = 0; i < brands.Length; i++)
            {
                var brand = new Brand
                {
                    BrandName = brands[i]
                };
                for (int j = 0; j < 6; j++)
                {
                    string[,] models = new string[4, 6] {
                        { "1", "2", "3", "4", "5", "6" }, { "A3", "A4", "A5", "A6", "A7", "Q7" }, { "530xd", "X5", "X4", "X3", "M4", "M5" }, { "CLK 240", "CLK 320", "E 260", "G 280", "ML 320", "ML 340" }
                    };
                    var carModel = new CarModel
                    {
                        ModelName = models[i, j]
                    };
                    brand.CarModel.Add(carModel);
                }
                context.Brands.Add(brand);
                context.SaveChanges();
            }
        }
Example #3
0
        //private  readonly CarSystemDbContext dbContext;

        //public Searcher(CarSystemDbContext cotnext)
        //{
        //    this.dbContext = cotnext;
        //}



        public static void Search(CarSystemDbContext dbContext)
        {
            var xmlQueries = Directory
                             .GetFiles(Directory.GetCurrentDirectory() + "/XmlInput/")
                             .Where(f => f.EndsWith(".xml"))
                             .Select(f => File.ReadAllText(f))
                             .FirstOrDefault();

            var     reader = new StringReader(xmlQueries);
            var     result = new List <List <CarOutputXmlModel> >();
            Queries queries;

            // var queries = (Queries)new XmlSerializer(typeof(Queries)).Deserialize(reader);

            using (reader)
            {
                queries = (Queries) new XmlSerializer(typeof(Queries)).Deserialize(reader);
            }

            //  reader.Read();

            //using (reader)
            //{
            // var queries = (Queries)new XmlSerializer(typeof(Queries)).Deserialize(reader);
            foreach (var q in queries.Query)

            {
                var res = ProcessQuery(q, dbContext).ToList();
                result.Add(res);
            }
        }
Example #4
0
        public static void Main()
        {
            Database.SetInitializer(new MigrateDatabaseToLatestVersion <CarSystemDbContext, Configuration>());

            var db = new CarSystemDbContext();

            db.Cars.Count();
        }
Example #5
0
        protected override void Seed(CarSystemDbContext context)
        {
            this.SeedBrandswithModels(context);

            this.SeedCars(context);

            this.SeedUsers(context);
        }
Example #6
0
        static void Main()
        {
            Database.SetInitializer(new MigrateDatabaseToLatestVersion <CarSystemDbContext, Configuration>());
            //  Database.SetInitializer( new DropCreateDatabaseAlways<CarSystemDbContext>());
            var db = new CarSystemDbContext();

            //  System.Console.WriteLine(db.Dealers);
            JsonImporter.Import(db);
            //  Searcher.Search(db);
        }
Example #7
0
        public ActionResult AddCar()
        {
            var db = new CarSystemDbContext();
            List <SelectListItem> items = db.Brands.Select(c => new SelectListItem
            {
                Value = c.Id.ToString(),
                Text  = c.BrandName
            }).ToList();

            ViewBag.Brand = items;
            var viewModel = new AddCarViewModel();

            viewModel.Brands = items;

            // viewModel.CarModels = model;

            return(View(viewModel));
        }
Example #8
0
        private void SeedCars(CarSystemDbContext context)
        {
            if (!context.Cars.Any())
            {
                for (int i = 1; i < 4; i++)
                {
                    var car = new Car()
                    {
                        Id                 = i,
                        CarModelsId        = 3 * i,
                        DateOfManufacturer = 2008,
                        Mileage            = 1400 * i,
                        Price              = 6454 * i,
                        Engine             = "1,9TDI",
                        Description        = "Nice car!"
                    };

                    context.Cars.Add(car);
                }
            }
        }
Example #9
0
        public static void Import(CarSystemDbContext dbContext)
        {
            var carsToAdd = Directory
                            .GetFiles(Directory.GetCurrentDirectory() + "/JsonFiles/")
                            .Where(f => f.EndsWith(".json"))
                            .Select(f => File.ReadAllText(f))
                            .SelectMany(str => JsonConvert.DeserializeObject <IEnumerable <CarJsonModel> >(str))
                            .ToList();

            var citiesToAdd       = new HashSet <string>();
            var manufacturerToAdd = new HashSet <string>();
            var DealarsToAdd      = new HashSet <string>();

            foreach (var car in carsToAdd)
            {
                citiesToAdd.Add(car.Dealer.City);
                manufacturerToAdd.Add(car.ManufacturerName);
                DealarsToAdd.Add(car.Dealer.Name);
            }

            foreach (var cityName in citiesToAdd)
            {
                var city = new City()
                {
                    Name = cityName
                };

                dbContext.Cities.Add(city);
            }

            foreach (var manufactureName in manufacturerToAdd)
            {
                var manufacturer = new Manufacturer()
                {
                    Name = manufactureName
                };

                dbContext.Manufacturers.Add(manufacturer);
            }

            foreach (var dealerName in DealarsToAdd)
            {
                var dealer = new Dealer()
                {
                    Name = dealerName
                };

                dbContext.Dealers.Add(dealer);
            }

            dbContext.SaveChanges();
            var counter = 0;

            foreach (var carToAdd in carsToAdd)
            {
                dbContext.Configuration.AutoDetectChangesEnabled = false;
                dbContext.Configuration.ValidateOnSaveEnabled    = false;


                var dbCity   = dbContext.Cities.Where(c => c.Name == carToAdd.Dealer.City).SingleOrDefault();
                var dbDealer = dbContext.Dealers.Where(d => d.Name == carToAdd.Dealer.Name).SingleOrDefault();

                if (!dbDealer.Cities.Any(c => c.Name == dbCity.Name))
                {
                    dbDealer.Cities.Add(dbCity);
                }

                var car = new Car
                {
                    Model           = carToAdd.Model,
                    Manufacturer    = dbContext.Manufacturers.Where(m => m.Name == carToAdd.ManufacturerName).SingleOrDefault(),
                    Transmitiontype = (TransmitionType)carToAdd.TransmissionType,
                    Year            = carToAdd.Year,
                    Price           = carToAdd.Price,
                    Dealer          = dbDealer
                };


                dbContext.Cars.Add(car);
                counter++;

                if (counter % 100 == 0)
                {
                    System.Console.Write("*");
                }
            }

            dbContext.SaveChanges();
        }
Example #10
0
        private static List <CarOutputXmlModel> ProcessQuery(QueriesQuery query, CarSystemDbContext db)
        {
            //  var db = new CarsDbContext();
            var dataQuery =
                db.Cars.Select(
                    car =>
                    new CarOutputXmlModel
            {
                Id               = car.Id,
                Manufacturer     = car.Manufacturer.Name,
                Model            = car.Model,
                Price            = car.Price,
                Year             = car.Year,
                TransmissionType =
                    car.Transmitiontype == Models.TransmitionType.Manual ? "manual" : "automatic",
                Dealer =
                    new DealerXmlModel
                {
                    Name   = car.Dealer.Name,
                    Cities = car.Dealer.Cities.Select(city => city.Name).ToList(),
                }
            });

            switch (query.OrderBy)
            {
            case "Id":
                dataQuery = dataQuery.OrderBy(x => x.Id);
                break;

            case "Year":
                dataQuery = dataQuery.OrderBy(x => x.Year);
                break;

            case "Model":
                dataQuery = dataQuery.OrderBy(x => x.Model);
                break;

            case "Price":
                dataQuery = dataQuery.OrderBy(x => x.Price);
                break;

            case "Manufacturer":
                dataQuery = dataQuery.OrderBy(x => x.Manufacturer);
                break;

            case "Dealer":
                dataQuery = dataQuery.OrderBy(x => x.Dealer.Name);
                break;
            }

            foreach (var whereClause in query.WhereClauses)
            {
                if (whereClause.PropertyName == "Id")
                {
                    var constant = int.Parse(whereClause.Value);
                    switch (whereClause.Type)
                    {
                    case Equal:
                        dataQuery = dataQuery.Where(x => x.Id == constant);
                        break;

                    case GreaterThan:
                        dataQuery = dataQuery.Where(x => x.Id > constant);
                        break;

                    case LessThan:
                        dataQuery = dataQuery.Where(x => x.Id < constant);
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
                else if (whereClause.PropertyName == "Year")
                {
                    var constant = int.Parse(whereClause.Value);
                    switch (whereClause.Type)
                    {
                    case Equal:
                        dataQuery = dataQuery.Where(x => x.Year == constant);
                        break;

                    case GreaterThan:
                        dataQuery = dataQuery.Where(x => x.Year > constant);
                        break;

                    case LessThan:
                        dataQuery = dataQuery.Where(x => x.Year < constant);
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
                else if (whereClause.PropertyName == "Price")
                {
                    var constant = decimal.Parse(whereClause.Value);
                    switch (whereClause.Type)
                    {
                    case Equal:
                        dataQuery = dataQuery.Where(x => x.Price == constant);
                        break;

                    case GreaterThan:
                        dataQuery = dataQuery.Where(x => x.Price > constant);
                        break;

                    case LessThan:
                        dataQuery = dataQuery.Where(x => x.Price < constant);
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
                else if (whereClause.PropertyName == "Model")
                {
                    switch (whereClause.Type)
                    {
                    case Equal:
                        dataQuery = dataQuery.Where(x => x.Model == whereClause.Value);
                        break;

                    case Contains:
                        dataQuery = dataQuery.Where(x => x.Model.Contains(whereClause.Value));
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
                else if (whereClause.PropertyName == "Manufacturer")
                {
                    switch (whereClause.Type)
                    {
                    case Equal:
                        dataQuery = dataQuery.Where(x => x.Manufacturer == whereClause.Value);
                        break;

                    case Contains:
                        dataQuery = dataQuery.Where(x => x.Manufacturer.Contains(whereClause.Value));
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
                else if (whereClause.PropertyName == "Dealer")
                {
                    switch (whereClause.Type)
                    {
                    case Equal:
                        dataQuery = dataQuery.Where(x => x.Dealer.Name == whereClause.Value);
                        break;

                    case Contains:
                        dataQuery = dataQuery.Where(x => x.Dealer.Name.Contains(whereClause.Value));
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
                else if (whereClause.PropertyName == "City")
                {
                    switch (whereClause.Type)
                    {
                    case Equal:
                        dataQuery = dataQuery.Where(x => x.Dealer.Cities.Contains(whereClause.Value));
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
            }

            var data = dataQuery.ToList();

            return(data);

            //var serializer = new XmlSerializer(data.GetType(), new XmlRootAttribute("Cars"));
            //using (var fs = new FileStream(query.OutputFileName, FileMode.Create))
            //{
            //    serializer.Serialize(fs, data);
            //}
            //System.Console.WriteLine();
            //System.Console.WriteLine("{0} ready.", query.OutputFileName);
        }
Example #11
0
 public CarsController(CarSystemDbContext db, UserManager <User> userManager)
 {
     this.db          = db;
     this.userManager = userManager;
 }