public void CheckBooksForExpiration() { var books = (from bookDbModel in _context.Books.ToList() select _bookMapper.DbToDomain(bookDbModel)).ToList(); var booksToRemove = new List <Book>(); foreach (var book in books) { var result = book.IsExpired(); if (!result) { return; } var productDbModel = _context.Products.Find(book.ProductId); CustomValidator.ValidateObject(productDbModel); var product = _productMapper.DbToDomain(productDbModel); product.ChangeStatus(ProductStatus.OnSale); DetachService.Detach <ProductDbModel>(_context, product.Id); _context.Products.Update(_productMapper.DomainToDb(product)); booksToRemove.Add(book); } foreach (var book in booksToRemove) { DetachService.Detach <BookDbModel>(_context, book.Id); _context.Books.Remove(_bookMapper.DomainToDb(book)); } _context.SaveChanges(); }
public void UpdateOne(Customer item) { CustomValidator.ValidateObject(item); var exists = Exists(item.Id); if (exists) { DetachService.Detach <CustomerDbModel>(_context, item.Id); var enState = _context.Customers.Update(_customerMapper.DomainToDb(item)); enState.State = EntityState.Modified; _context.SaveChanges(); } }
public void UpdateOne(Category item) { CustomValidator.ValidateObject(item); var exists = Exists(item.Id); if (exists) { var hasSameName = _context.Categories.Any(cat => cat.Name.ToLower().Equals(item.Name.ToLower())); if (hasSameName) { return; } DetachService.Detach <CategoryDbModel>(_context, item.Id); var enState = _context.Categories.Update(_categoryMapper.DomainToDb(item)); enState.State = EntityState.Modified; _context.SaveChanges(); } }
public void UpdateOne(Mall item) { CustomValidator.ValidateObject(item); var exists = Exists(item.Id); if (exists) { var mallWithTheSameNameExists = _context.Malls.Any(m => m.Name.Equals(item.Name) && m.Location.Equals(item.Location)); if (mallWithTheSameNameExists) { return; } DetachService.Detach <MallDbModel>(_context, item.Id); var enState = _context.Malls.Update(_mallMapper.DomainToDb(item)); enState.State = EntityState.Modified; _context.SaveChanges(); } }
public void UpdateOne(Store item) { CustomValidator.ValidateObject(item); var exists = Exists(item.Id); if (exists) { var storeWithTheSameLocationAndNameExists = _context.Stores.Any(st => st.Location.Equals(item.Location) && st.Name.Equals(item.Name) && !st.Id.Equals(item.Id) && st.MallId == null); if (storeWithTheSameLocationAndNameExists) { return; } DetachService.Detach <StoreDbModel>(_context, item.Id); var enState = _context.Stores.Update(_storeMapper.DomainToDb(item)); enState.State = EntityState.Modified; _context.SaveChanges(); } }
public async Task CheckBooksForExpiration() { await using var context = new MyDbContext(_options); var bookDbModels = await context.Books.ToListAsync(); var books = (from bookDbModel in bookDbModels select _bookMapper.DbToDomain(bookDbModel)).ToList(); var booksToRemove = new List <Book>(); foreach (var book in books) { var isExpired = book.IsExpired(); if (!isExpired && context.Products.Any(e => e.Id.Equals(book.ProductId))) { continue; } var productDbModel = await context.Products.FindAsync(book.ProductId); if (productDbModel != null) { var product = _productMapper.DbToDomain(productDbModel); product.ChangeStatus(ProductStatus.OnSale); DetachService.Detach <ProductDbModel>(context, product.Id); var enState = context.Products.Update(_productMapper.DomainToDb(product)); enState.State = EntityState.Modified; } booksToRemove.Add(book); } foreach (var book in booksToRemove) { DetachService.Detach <BookDbModel>(context, book.Id); context.Books.Remove(_bookMapper.DomainToDb(book)); } await context.SaveChangesAsync(); }