public ICollection <IXmlDailyShopReport> DailyShopReport(DealershipDbContext dbContext, ICollection <IXmlDailyShopReport> report) { using (dbContext) { var shops = dbContext.Shops.ToList(); foreach (var shop in shops) { var dailySells = dbContext.Sales.Where(s => s.ShopId == shop.Id).GroupBy(s => new { s.DateOfSale, s.Price }).OrderBy(d => d.Key.DateOfSale); IXmlDailyShopReport market = new XmlDailyShopReport(); market.ShopPlace = shop.Name; foreach (var day in dailySells) { if (!market.Transactions.ContainsKey(day.Key.DateOfSale)) { market.Transactions[day.Key.DateOfSale] = new List <decimal?>(); } market.Transactions[day.Key.DateOfSale].Add(day.Key.Price); } report.Add(market); } } return(report); }
private void SeedDataFromXml() { textWriter.WriteLine("Seeding data from XML..."); var xmlEmployeeReader = new XmlEmployeeReader(); using (var dbContext = new DealershipDbContext()) { var data = new DealershipData(dbContext); var employees = new DealershipRepository <Employee>(dbContext); var positions = new DealershipRepository <Position>(dbContext); var countries = new DealershipRepository <Country>(dbContext); var cities = new DealershipRepository <City>(dbContext); var addresses = new DealershipRepository <Address>(dbContext); var shops = new DealershipRepository <Shop>(dbContext); var employeeSeeder = new EmployeeSeeder(data, employees, positions, countries, cities, addresses, shops); var employeeSeedUtil = new EmployeeSeedUtil(xmlEmployeeReader, employeeSeeder); employeeSeedUtil.Seed(); } textWriter.WriteLine("XML data seeded successfully!"); }
private void SeedDataFromMongo() { textWriter.WriteLine("Seeding data from Mongo..."); string mongoDbConnectionString = Constants.MongoDbConnectionStringLocal; string mongoDbDatabaseName = Constants.MongoDbDatabaseNameLocal; using (var dbContext = new DealershipDbContext()) { var data = new DealershipData(dbContext); var vehicles = new DealershipRepository <Vehicle>(dbContext); var brands = new DealershipRepository <Brand>(dbContext); var fuels = new DealershipRepository <Fuel>(dbContext); var vehicleTypes = new DealershipRepository <VehicleType>(dbContext); var mongoDbSeeder = new MongoDbSeeder( mongoDbConnectionString, mongoDbDatabaseName, data, vehicles, brands, fuels, vehicleTypes ); if (!mongoDbSeeder.IsDataSeeded()) { mongoDbSeeder.SeedData(); } } textWriter.WriteLine("Mongo data seeded successfully!"); }
public void CreateCarAddWorksCorrectlyAndSavesInDb() { var options = new DbContextOptionsBuilder <DealershipDbContext>() .UseInMemoryDatabase(databaseName: "Create_CarAdd") .Options; var db = new DealershipDbContext(options); var service = new CarAddsService(db); var inputModel = this.GetCarAddInputModel(); var engineType = service.GetCarEngineType(inputModel.CarEngineType); var transmission = service.GetCarTransmissionType(inputModel.CarTransmission); var category = service.GetCarCategory(inputModel.CarCategory); var extras = service.CreateCarExtras(inputModel.CarExtras); var car = service.CreateCar(inputModel, engineType, transmission, category, extras); var carAdd = service.CreateCarAdd(inputModel, car.Id, "1"); Assert.True(db.CarAdds.Count() == 1); Assert.True(db.CarAdds.First().CarId == car.Id); Assert.True(db.CarAdds.First().CreatorId == "1"); }
public void CreateCarWorksAndSavesCarInDb() { var options = new DbContextOptionsBuilder <DealershipDbContext>() .UseInMemoryDatabase(databaseName: "Create_Car") .Options; var db = new DealershipDbContext(options); var service = new CarAddsService(db); var inputModel = this.GetCarAddInputModel(); var engineType = service.GetCarEngineType(inputModel.CarEngineType); var transmission = service.GetCarTransmissionType(inputModel.CarTransmission); var category = service.GetCarCategory(inputModel.CarCategory); var extras = service.CreateCarExtras(inputModel.CarExtras); var car = service.CreateCar(inputModel, engineType, transmission, category, extras); Assert.True(db.Cars.Count() == 1); Assert.True(db.CarExtras.Count() == 4); Assert.True(db.Cars.First().Make == inputModel.CarMake); Assert.True((int)db.Cars.First().EngineType == 4); Assert.True(db.Cars.First().EngineType.ToString() == Constants.GasolineAndLpgEngineTypeCorrection); }
public void SeedSalesTable_alt(ExcelSalesReport excelSalesReport) { var employeeIdList = this.employees.All().Select(e => e.Id).ToList(); var VehicleIdAndModel = this.vehicles.All().Select(v => new { v.Id, v.Model }).ToList(); var ShopIdAndName = this.shops.All().Select(sh => new { sh.Id, sh.Name }).ToList(); var shop = ShopIdAndName.Where(s => s.Name.ToLower() == excelSalesReport.DistributorName.ToLower()).FirstOrDefault(); if (shop != null) { string formattedDateTime = String.Format("{0:yyyy/M/d HH:mm:ss}", excelSalesReport.DateOfSale); using (var dealershipDbContext = new DealershipDbContext()) { var result = dealershipDbContext.Database.ExecuteSqlCommand($"DELETE FROM [Sales] WHERE ShopId={shop.Id} AND DateOfSale='{formattedDateTime}'"); } int counter = 0; foreach (var record in excelSalesReport.Records) { var vehicle = VehicleIdAndModel.Where(v => v.Model.ToLower().Contains(record.VehicleModel.ToLower())).FirstOrDefault(); if (employeeIdList.Exists(i => (i == record.EmployeeId)) && vehicle != null) { Sale s = new Sale() { ShopId = shop.Id, VehicleId = vehicle.Id, EmployeeId = record.EmployeeId, Quantity = record.Quantity, Price = record.UnitPrice, DateOfSale = excelSalesReport.DateOfSale }; this.sales.Add(s); counter++; //Console.Write("."); if (counter > maxRecordsPerLoad) { this.data.SaveChanges(); counter = 0; } } else //null { Console.Write($"No such EmployeeId: {record.EmployeeId} or/and VehicleModel: {record.VehicleModel}"); } } this.data.SaveChanges(); } else //null { Console.Write($"No such DistributorName{excelSalesReport.DistributorName}"); } }
public void GenerateXmlShopReport() { var dbContext = new DealershipDbContext(); ReportQuery query = new ReportQuery(); ICollection <IXmlShopReport> totalReport = new List <IXmlShopReport>(); IReportWriter totalWriter = new XmlShopReportWriter(query.ShopReport(dbContext, totalReport)); totalWriter.Write(); }
public void GeneratePdfAggregateDailySalesReport() { var dbContext = new DealershipDbContext(); ReportQuery query = new ReportQuery(); ICollection <IPdfAggregatedDailySalesReport> totalReport = new List <IPdfAggregatedDailySalesReport>(); IReportWriter totalWriter = new PdfAggregatedDailySalesReportWriter(query.AggregatedDailySalesReports(dbContext, totalReport)); totalWriter.Write(); }
public static void GenerateXmlDailyShopReport() { var dbContext = new DealershipDbContext(); ReportQuery query = new ReportQuery(); ICollection <IXmlDailyShopReport> dailyReport = new List <IXmlDailyShopReport>(); IReportWriter dailyWrite = new XmlDailyShopReportWriter(query.DailyShopReport(dbContext, dailyReport)); dailyWrite.Write(); }
public DealershipController(DealershipDbContext context) { _context = context; if (_context.Cars.Count() == 0) { _context.Cars.Add(new Cars { Make = "Jeep", Model = "Grand Cherokee", Year = 1995, Color = "Blue" }); } }
private NewsService GetNewsService() { var guid = new Guid().ToString(); var options = new DbContextOptionsBuilder <DealershipDbContext>() .UseInMemoryDatabase(databaseName: guid) .Options; var db = new DealershipDbContext(options); return(new NewsService(db)); }
public void InitialDependencies(IApplicationBuilder app) { _app = app; var scope = app.ApplicationServices.GetRequiredService <IServiceScopeFactory>().CreateScope(); _context = scope.ServiceProvider.GetService <DealershipDbContext>(); _userManager = scope.ServiceProvider.GetService <UserManager <ApplicationUser> >(); _roleManager = scope.ServiceProvider.GetService <RoleManager <IdentityRole> >(); _configuration = scope.ServiceProvider.GetService <IConfiguration>(); _adminEmail = CredentialsBuilder.AdminEmail; }
public void GenerateXmlShopReport() { textWriter.WriteLine("Generating Xml report..."); var dbContext = new DealershipDbContext(); ReportQuery query = new ReportQuery(); ICollection <IXmlShopReport> totalReport = new List <IXmlShopReport>(); IReportWriter totalWriter = new XmlShopReportWriter(query.ShopReport(dbContext, totalReport)); totalWriter.Write(); textWriter.WriteLine("Xml report created successfully!"); }
public void GenerateRdfAggregateDailySalesReport() { textWriter.WriteLine("Generating Pdf report..."); var dbContext = new DealershipDbContext(); ReportQuery query = new ReportQuery(); ICollection <IPdfAggregatedDailySalesReport> totalReport = new List <IPdfAggregatedDailySalesReport>(); IReportWriter totalWriter = new PdfAggregatedDailySalesReportWriter(query.AggregatedDailySalesReports(dbContext, totalReport)); totalWriter.Write(); textWriter.WriteLine("Pdf report created successfully!"); }
public void GetErrorModelReturnsTheCorrectMessage() { var options = new DbContextOptionsBuilder <DealershipDbContext>() .UseInMemoryDatabase(databaseName: "Get_Error_Model") .Options; var db = new DealershipDbContext(options); var commentsService = new CommentsService(db); var errorModel = commentsService.GetErrorModel(Constants.CommentErrorMessage); Assert.True(errorModel.Message == Constants.CommentErrorMessage); }
public void CreateNewsSaveNewsInDb() { var options = new DbContextOptionsBuilder <DealershipDbContext>() .UseInMemoryDatabase(databaseName: "Create_News") .Options; var db = new DealershipDbContext(options); var service = new NewsService(db); var inputModel = this.GetNewsCreateInputModel(); var news = service.CreateNews(inputModel, NewsAuthorId); Assert.True(db.News.Count() == 1); Assert.True(db.News.First().Title == NewsTitle); }
public void ParseExcelData(IEnumerable <DirectoryInfo> matchingDirectories) { var excelSaleReportReader = new SalesReportsReaderExcel(Constants.ExcelSalesReportsConnectionStringPattern); using (var dealershipDbContext = new DealershipDbContext()) { var result = dealershipDbContext.Database.ExecuteSqlCommand("TRUNCATE TABLE [Sales]"); } foreach (var dir in matchingDirectories) { foreach (var excelFile in dir.GetFiles(Constants.AllowedExcelFileExtensionPattern)) { var excelData = excelSaleReportReader.ReadReport(excelFile.FullName, dir.Name); this.seedingSQLDBFromZip.SeedSalesTable(excelData); } } }
public void CreateCommentWorksCorrectly() { var options = new DbContextOptionsBuilder <DealershipDbContext>() .UseInMemoryDatabase(databaseName: "Create_Comment") .Options; var db = new DealershipDbContext(options); var newsService = new NewsService(db); var commentsService = new CommentsService(db); var news = newsService.CreateNews(GetNewsCreateInputModel(), AuthorId); var comment = commentsService.Create(AuthorId, news.Id, Content); Assert.True(db.News.First().Comments.Count() == 1); Assert.True(db.Comments.Count() == 1); Assert.True(db.Comments.First().Id == comment.Id); }
public void GetAllNewsWorksCorrectly() { var options = new DbContextOptionsBuilder <DealershipDbContext>() .UseInMemoryDatabase(databaseName: "Get_All_News") .Options; var db = new DealershipDbContext(options); var service = new NewsService(db); var inputModel = this.GetNewsCreateInputModel(); var news = service.CreateNews(inputModel, NewsAuthorId); var wantedNews = service.GetAllNews(); Assert.True(wantedNews.Count() == 1); Assert.True(wantedNews.First().Id == news.Id); }
private static void ProcessZipFiles() { using (var dbContext = new DealershipDbContext()) { var data = new DealershipData(dbContext); var employees = new DealershipRepository <Employee>(dbContext); var sales = new DealershipRepository <Sale>(dbContext); var vehicles = new DealershipRepository <Vehicle>(dbContext); var shops = new DealershipRepository <Shop>(dbContext); SeedingSQLDBFromZip seedingSQLDBFromZip = new SeedingSQLDBFromZip(data, employees, shops, sales, vehicles); var processor = new ZipUnpacker(); processor.Unpack(Constants.PathToZipFile, Constants.PathToUnzip); var matchingDirectories = Utility.GetDirectoriesByPattern(Constants.PathToUnzippedFiles); ReportReader reportReader = new ReportReader(seedingSQLDBFromZip, data); reportReader.ParseExcelData(matchingDirectories); } }
public void EditCommentWorksCorrectly() { var options = new DbContextOptionsBuilder <DealershipDbContext>() .UseInMemoryDatabase(databaseName: "Edit_Comment") .Options; var db = new DealershipDbContext(options); var commentsService = new CommentsService(db); var newsService = new NewsService(db); var news = newsService.CreateNews(GetNewsCreateInputModel(), AuthorId); var comment = commentsService.Create(AuthorId, news.Id, Content); Assert.True(comment.Content == Content); commentsService.EditComment(comment.Id, "Changed Content!"); Assert.True(comment.Content == "Changed Content!"); }
public void DeleteNewsRemovesTheCorrectNewsFromDb() { var options = new DbContextOptionsBuilder <DealershipDbContext>() .UseInMemoryDatabase(databaseName: "Delete_News") .Options; var db = new DealershipDbContext(options); var service = new NewsService(db); var inputModel = this.GetNewsCreateInputModel(); var news = service.CreateNews(inputModel, NewsAuthorId); Assert.True(db.News.Count() == 1); service.DeleteNews(news.Id); Assert.True(db.News.Count() == 0); }
public void GetAddsAccordingToCriteriaWorksCorrectly() { var options = new DbContextOptionsBuilder <DealershipDbContext>() .UseInMemoryDatabase(databaseName: "Get_Adds_By_Criteria") .Options; var db = new DealershipDbContext(options); var service = new CarAddsService(db); var inputModel = this.GetCarAddInputModel(); var engineType = service.GetCarEngineType(inputModel.CarEngineType); var transmission = service.GetCarTransmissionType(inputModel.CarTransmission); var category = service.GetCarCategory(inputModel.CarCategory); var extras = service.CreateCarExtras(inputModel.CarExtras); var car = service.CreateCar(inputModel, engineType, transmission, category, extras); var carAdd = service.CreateCarAdd(inputModel, car.Id, "1"); var carSelectModel = new CarSelectInputModel { Category = "Saloon", EndPrice = decimal.MaxValue, EndYear = 2019, EngineType = "Gasoline / LPG", HorsePower = 130, Location = "Nqkude", Make = "Opel", Model = "Vectra", StartingPrice = 4000m, StartingYear = 2000, Transmission = "Manual" }; var getCars = service.GetAddsAccordingToCriteria(carSelectModel); Assert.True(getCars.Count() == 1); }
public void GetMyAddsWorksCorrectly() { var options = new DbContextOptionsBuilder <DealershipDbContext>() .UseInMemoryDatabase(databaseName: "Get_My_Adds") .Options; var db = new DealershipDbContext(options); var userMock = new Mock <DealershipUser>(); userMock.Setup(u => u.Id).Returns("1"); userMock.Setup(u => u.UserName).Returns("Pesho"); var service = new CarAddsService(db); var inputModel = this.GetCarAddInputModel(); var engineType = service.GetCarEngineType(inputModel.CarEngineType); var transmission = service.GetCarTransmissionType(inputModel.CarTransmission); var category = service.GetCarCategory(inputModel.CarCategory); var extras = service.CreateCarExtras(inputModel.CarExtras); var car = service.CreateCar(inputModel, engineType, transmission, category, extras); var carAdd = service.CreateCarAdd(inputModel, car.Id, "1"); userMock.Setup(u => u.CarAdds).Returns(new List <CarAdd> { carAdd }); var fakeUser = userMock.Object; db.Users.Add(fakeUser); db.SaveChanges(); var myAdds = service.GetMyAdds("Pesho"); Assert.True(myAdds.Count() == 1); }
public ICollection <IXmlShopReport> ShopReport(DealershipDbContext dbContext, ICollection <IXmlShopReport> report) { using (dbContext) { var shops = dbContext.Shops.ToList(); foreach (var shop in shops) { var budget = dbContext.Sales.Where(s => s.ShopId == shop.Id).Sum(t => t.Price); IXmlShopReport entity = new XmlShopReport(); entity.ShopPlace = shop.Name; entity.Location = shop.Address.Street; entity.TotalBudget = budget; report.Add(entity); } } return(report); }
public void DeleteCommentDeletesTheWriteComment() { var options = new DbContextOptionsBuilder <DealershipDbContext>() .UseInMemoryDatabase(databaseName: "Delete_Comment") .Options; var db = new DealershipDbContext(options); var newsService = new NewsService(db); var commentsService = new CommentsService(db); var news = newsService.CreateNews(GetNewsCreateInputModel(), AuthorId); Assert.True(news.Comments.Count() == 0); var comment = commentsService.Create(AuthorId, news.Id, Content); Assert.True(news.Comments.Count() == 1); commentsService.DeleteComment(comment.Id); Assert.True(news.Comments.Count() == 0); }
public CommentService(DealershipDbContext db, UserManager <ApplicationUser> userManager) { this._db = db; this._userManager = userManager; }
public NewsService(DealershipDbContext db) { this.db = db; }
public CarAddsService(DealershipDbContext db) { this.db = db; }
public CarService(DealershipDbContext db, IHostingEnvironment hostingEnvironment) { this._hostingEnvironment = hostingEnvironment; this._db = db; }