public IActionResult CreateProduct([FromBody] ProductForCreationDTO product) { if (product == null) { return(BadRequest()); } // Validate data if (!ModelState.IsValid) { // return 422 return(new UnprocessableEntityObjectResult(ModelState)); } var productEntity = Mapper.Map <Product>(product); _supermarketRepository.AddProduct(productEntity); if (!_supermarketRepository.Save()) { throw new Exception("Creating a product failed on Save."); } var productToReturn = Mapper.Map <ProductDTO>(productEntity); var links = CreateLinksForProduct(productToReturn.ProductId, null); var linkedResourceToReturn = productToReturn.ShapeData(null) as IDictionary <string, object>; linkedResourceToReturn.Add("links", links); return(CreatedAtRoute("GetProduct", new { ProductId = linkedResourceToReturn["ProductId"] }, linkedResourceToReturn)); }
public IActionResult CreateStaffMember([FromBody] StaffMemberForCreationDTO staffMember) { if (staffMember == null) { return(BadRequest()); } // Validate data if (!ModelState.IsValid || !_supermarketRepository.SupermarketExists(staffMember.SupermarketId)) { // return 422 return(new UnprocessableEntityObjectResult(ModelState)); } var staffMemberEntity = Mapper.Map <StaffMember>(staffMember); _supermarketRepository.AddStaffMember(staffMemberEntity); if (!_supermarketRepository.Save()) { throw new Exception("Creating a staff member failed on Save."); } var staffMemberToReturn = Mapper.Map <StaffMemberDTO>(staffMemberEntity); var links = CreateLinksForStaffMember(staffMemberToReturn.Id, null); var linkedResourceToReturn = staffMemberToReturn.ShapeData(null) as IDictionary <string, object>; linkedResourceToReturn.Add("links", links); return(CreatedAtRoute("GetStaffMember", new { id = linkedResourceToReturn["Id"] }, linkedResourceToReturn)); }
public IActionResult CreateSupermarketStock([FromBody] SupermarketStockForCreationDTO stock) { // check a new stock was passed in if (stock == null) { return(BadRequest()); } // Validate data if (!ModelState.IsValid || !_supermarketRepository.SupermarketExists(stock.SupermarketId) || !_supermarketRepository.ProductExists(stock.ProductId)) { // return 422 return(new UnprocessableEntityObjectResult(ModelState)); } // make sure productId and supermarketId don't match an existing entry if (_supermarketRepository.SupermarketStockExists(stock.ProductId, stock.SupermarketId)) { // return 409 return(StatusCode(409)); } // map stock var stockEntity = Mapper.Map <SupermarketStock>(stock); // add stock and save _supermarketRepository.AddSupermarketStock(stockEntity); if (!_supermarketRepository.Save()) { throw new Exception("Creating stock failed on Save."); } var stockToReturn = Mapper.Map <SupermarketStockDTO>(stockEntity); var links = CreateLinksForSupermarketStock(stockToReturn.Id, null); var linkedResourceToReturn = stockToReturn.ShapeData(null) as IDictionary <string, object>; linkedResourceToReturn.Add("links", links); return(CreatedAtRoute("GetStock", new { id = linkedResourceToReturn["Id"] }, linkedResourceToReturn)); }
static void Main(string[] args) { _supermarketRepository = new SupermarketRepository(); var supermarketProvider = new SupermarketProvider(); var productSpecProvider = new ProductSpecificationsProvider(); _buyerProvider = new BuyerProvider(); _shelfSelectionAlgorithm = new ShelfSelectionAlgorithm(); _cashboxSelectionAlgorithm = new CashboxSelectionAlgorithm(); _supermarket = supermarketProvider.Provide(productSpecProvider.Provide(30), 5); _supermarketRepository.Save(_supermarket); EnterBuyers(10); Console.ReadLine(); }
public IActionResult CreateSupermarketStockCollection([FromBody] IEnumerable <SupermarketStockForCreationDTO> supermarketStockCollection) { if (supermarketStockCollection == null) { return(BadRequest()); } // Validate data foreach (SupermarketStockForCreationDTO s in supermarketStockCollection) { if (!ModelState.IsValid || !_supermarketRepository.SupermarketExists(s.SupermarketId) || !_supermarketRepository.ProductExists(s.ProductId)) { // return 422 return(new UnprocessableEntityObjectResult(ModelState)); } // make sure productId and supermarketId don't match an existing entry if (_supermarketRepository.SupermarketStockExists(s.ProductId, s.SupermarketId)) { // return 409 return(StatusCode(409)); } } var supermarketStockEntities = Mapper.Map <IEnumerable <SupermarketStock> >(supermarketStockCollection); foreach (var supermarketStock in supermarketStockEntities) { _supermarketRepository.AddSupermarketStock(supermarketStock); } if (!_supermarketRepository.Save()) { throw new Exception("Creating a supermarket stock collection failed on save."); } var supermarketStockCollectionToReturn = Mapper.Map <IEnumerable <SupermarketStockDTO> >(supermarketStockEntities); var idsAsString = string.Join(",", supermarketStockCollectionToReturn.Select(s => s.Id)); return(CreatedAtRoute("GetSupermarketStockCollection", new { ids = idsAsString }, supermarketStockCollectionToReturn)); }
public IActionResult CreateSupermarketCollection([FromBody] IEnumerable <SupermarketForCreationDTO> supermarketCollection) { // check collection was supplied by user if (supermarketCollection == null) { return(BadRequest()); } // Validate data foreach (SupermarketForCreationDTO s in supermarketCollection) { if (!ModelState.IsValid) { // return 422 return(new UnprocessableEntityObjectResult(ModelState)); } } // map data var supermarketEntities = Mapper.Map <IEnumerable <Supermarket> >(supermarketCollection); // create/add supermarkets and save foreach (var supermarket in supermarketEntities) { _supermarketRepository.AddSupermarket(supermarket); } if (!_supermarketRepository.Save()) { throw new Exception("Creating a supermarket collection failed on save."); } // map new supermarkets var supermarketCollectionToReturn = Mapper.Map <IEnumerable <SupermarketDTO> >(supermarketEntities); // get ids of new supermarkets to return var idsAsString = string.Join(",", supermarketCollectionToReturn.Select(s => s.SupermarketId)); // return all created supermarkets return(CreatedAtRoute("GetSupermarketCollection", new { ids = idsAsString }, supermarketCollectionToReturn)); }
public IActionResult CreateProductCollection([FromBody] IEnumerable <ProductForCreationDTO> productCollection) { if (productCollection == null) { return(BadRequest()); } // Validate data foreach (ProductForCreationDTO p in productCollection) { if (!ModelState.IsValid) { // return 422 return(new UnprocessableEntityObjectResult(ModelState)); } } var productEntities = Mapper.Map <IEnumerable <Product> >(productCollection); foreach (var product in productEntities) { _supermarketRepository.AddProduct(product); } if (!_supermarketRepository.Save()) { throw new Exception("Creating a product collection failed on save."); } var productCollectionToReturn = Mapper.Map <IEnumerable <ProductDTO> >(productEntities); var idsAsString = string.Join(",", productCollectionToReturn.Select(p => p.ProductId)); return(CreatedAtRoute("GetProductCollection", new { ids = idsAsString }, productCollectionToReturn)); }
public IActionResult CreateStaffMemberCollection([FromBody] IEnumerable <StaffMemberForCreationDTO> staffMemberCollection) { if (staffMemberCollection == null) { return(BadRequest()); } // Validate data foreach (StaffMemberForCreationDTO s in staffMemberCollection) { if (!ModelState.IsValid || !_supermarketRepository.SupermarketExists(s.SupermarketId)) { // return 422 return(new UnprocessableEntityObjectResult(ModelState)); } } var staffMemberEntities = Mapper.Map <IEnumerable <StaffMember> >(staffMemberCollection); foreach (var staffMember in staffMemberEntities) { _supermarketRepository.AddStaffMember(staffMember); } if (!_supermarketRepository.Save()) { throw new Exception("Creating a staff member collection failed on save."); } var staffMemberCollectionToReturn = Mapper.Map <IEnumerable <StaffMemberDTO> >(staffMemberEntities); var idsAsString = string.Join(",", staffMemberCollectionToReturn.Select(s => s.Id)); return(CreatedAtRoute("GetStaffMemberCollection", new { ids = idsAsString }, staffMemberCollectionToReturn)); }
public IActionResult CreateSupermarket([FromBody] SupermarketForCreationDTO supermarket) { // check supermarket exists if (supermarket == null) { return(BadRequest()); } // Validate data if (!ModelState.IsValid) { // return 422 return(new UnprocessableEntityObjectResult(ModelState)); } // map data var supermarketEntity = Mapper.Map <Supermarket>(supermarket); // add supermarket and save _supermarketRepository.AddSupermarket(supermarketEntity); if (!_supermarketRepository.Save()) { throw new Exception("Creating a supermarket failed on Save."); } // map and return new supermarket var supermarketToReturn = Mapper.Map <SupermarketDTO>(supermarketEntity); var links = CreateLinksForSupermarket(supermarketToReturn.SupermarketId, null); var linkedResourceToReturn = supermarketToReturn.ShapeData(null) as IDictionary <string, object>; linkedResourceToReturn.Add("links", links); return(CreatedAtRoute("GetSupermarket", new { SupermarketId = linkedResourceToReturn["SupermarketId"] }, linkedResourceToReturn)); }