예제 #1
0
        /// <summary>
        /// Create a warehouse.
        /// </summary>
        /// <param name="model">Data of warehouse to be created with.</param>
        /// <returns>Returns created warehouse or an appropriate error message.</returns>
        public WarehouseDTO Create(NewWarehouseDTO model)
        {
            var warehouse = new Warehouse();
            var address   = this.addressService.Get(model.AddressId);

            warehouse.AddressId = model.AddressId;
            warehouse.Address   = address.Address;
            warehouse.CreatedOn = DateTime.UtcNow;
            this.dbContext.Warehouses.Add(warehouse);
            this.dbContext.SaveChanges();
            return(new WarehouseDTO(warehouse));
        }
예제 #2
0
 public IActionResult Create([FromHeader] string authorizationUsername, [FromBody] NewWarehouseDTO model)
 {
     try
     {
         this.authHelper.TryGetEmployee(authorizationUsername);
         var warehouse = this.warehouseService.Create(model);
         return(Created("post", warehouse));
     }
     catch (Exception e)
     {
         return(BadRequest(e.Message));
     }
 }
예제 #3
0
        /// <summary>
        /// Update a certain warehouse by ID.
        /// </summary>
        /// <param name="id">ID of warehouse to search for.</param>
        /// <param name="model"></param>
        /// <returns>Returns updated warehouse or an appropriate error message.</returns>
        public WarehouseDTO Update(int id, NewWarehouseDTO model)
        {
            var warehouse       = FindWarehouse(id);
            var address         = this.addressService.Get(model.AddressId);
            var warehouseWIthId = this.dbContext.Warehouses.Include(w => w.Address).FirstOrDefault(w => w.AddressId == model.AddressId);

            if (warehouseWIthId != null)
            {
                throw new ArgumentException(Exceptions.TakenAddress);
            }
            warehouse.AddressId  = model.AddressId;
            warehouse.ModifiedOn = DateTime.UtcNow;
            this.dbContext.SaveChanges();
            return(new WarehouseDTO(warehouse));
        }
예제 #4
0
 public IActionResult Update([FromHeader] string authorizationUsername, int id, [FromBody] NewWarehouseDTO model)
 {
     try
     {
         this.authHelper.TryGetEmployee(authorizationUsername);
         var warehouse = this.warehouseService.Update(id, model);
         return(Ok(warehouse));
     }
     catch (Exception e)
     {
         return(NotFound(e.Message));
     }
 }