public SupplyResponse Get(int id)
        {
            var category = _dbContext.Category.Include(a => a.CategoryItems).ThenInclude(a => a.VirtualItem).SingleOrDefault(p => p.CategoryId == id);

            if (category == null)
            {
                return(SupplyResponse.NotFound("category", id + ""));
            }


            var categoryItemResponse = new CategoryItemResponse
            {
                Category      = category,
                VirtualItemId = new List <string>()
            };

            if (category.CategoryItems != null)
            {
                foreach (var categoryItem in category.CategoryItems)
                {
                    categoryItemResponse.VirtualItemId.Add(categoryItem.VirtualItem.VirtualItemId);
                }
                category.CategoryItems = null;
            }


            return(SupplyResponse.Ok(categoryItemResponse));
        }
        public SupplyResponse Put(int id)
        {
            var order = _dbContext.DespatchInstruction.Include(p => p.Request)
                        .ThenInclude(p => p.RequestItem).ThenInclude(p => p.VirtualItem).Include(p => p.Request)
                        .ThenInclude(p => p.Restaurant)
                        .SingleOrDefault(p => p.DespatchInstructionId == id);

            if (order == null)
            {
                return(SupplyResponse.NotFound("Purchase Order", id + ""));
            }

            order.Request.RequestStatus = RequestStatus.Delivering;

            _dbContext.SaveChanges();

            order.DespatchInstructionStatus = 1;

            _dbContext.SaveChanges();

            _dbContext.DeliveryNote.Add(new DeliveryNote
            {
                CreateTime = DateTime.Now,
                RequestId  = order.RequestId
            });

            _dbContext.SaveChanges();

            return(Get(id));
        }
Esempio n. 3
0
        public SupplyResponse Put(int id, [FromBody] ICollection <ItemRequest> itemRequest)
        {
            var request = _dbContext.Request.Include(p => p.RequestItem).SingleOrDefault(p => p.RequestId == id);

            if (request == null)
            {
                return(SupplyResponse.NotFound("Request", id + ""));
            }

            if (itemRequest == null || !itemRequest.Any())
            {
                return(SupplyResponse.BadRequest("Request Item cannot be empty."));
            }

            ICollection <RequestItem> requestItems;

            if ((requestItems = request.RequestItem) != null)
            {
                foreach (var items in requestItems)
                {
                    _dbContext.Remove(items);
                }
            }

            _dbContext.SaveChanges();

            var itemMap = new Dictionary <int, int>();

            foreach (var item in itemRequest)
            {
                var virtualItem =
                    _dbContext.VirtualItem.SingleOrDefault(p => p.VirtualItemId.Equals(item.VirtualItemId));
                if (virtualItem == null)
                {
                    return(SupplyResponse.NotFound("virtual item", item.VirtualItemId));
                }
                if (itemMap.ContainsKey(virtualItem.Id))
                {
                    itemMap[virtualItem.Id] += item.Quantity;
                }
                else
                {
                    itemMap.Add(virtualItem.Id, item.Quantity);
                }
            }

            foreach (var(itemId, qty) in itemMap)
            {
                var requestItem = new RequestItem
                {
                    RequestId     = request.RequestId,
                    VirtualItemId = itemId,
                    Quantity      = qty
                };
                _dbContext.RequestItem.Add(requestItem);
                _dbContext.SaveChanges();
            }

            return(Get(request.RequestId));
        }
        public SupplyResponse Post(string id, [FromBody] IdRequest idRequest)
        {
            if (idRequest == null || string.IsNullOrWhiteSpace(idRequest.Id))
            {
                return(SupplyResponse.RequiredFieldEmpty());
            }
            var vItem = _dbContext.VirtualItem.SingleOrDefault(p => p.VirtualItemId == idRequest.Id);
            var item  = _dbContext.Item.SingleOrDefault(p => p.SupplierItemId == id);

            if (item == null)
            {
                return(SupplyResponse.NotFound("item", id));
            }
            if (vItem == null)
            {
                return(SupplyResponse.NotFound("virtual item", idRequest.Id));
            }

            if (_dbContext.VirtualIdMap.SingleOrDefault(p =>
                                                        p.ItemId == item.Id && p.VirtualItemId == vItem.Id) != null)
            {
                return(SupplyResponse.DuplicateEntry("virtual map", $"{id}<->{idRequest.Id}"));
            }

            _dbContext.VirtualIdMap.Add(new VirtualIdMap {
                ItemId = item.Id, VirtualItemId = vItem.Id
            });
            _dbContext.SaveChanges();
            return(SupplyResponse.Ok());
        }
Esempio n. 5
0
        public SupplyResponse Put(int id, [FromBody] UserRequest user)
        {
            var dbUser = _dbContext.User.SingleOrDefault(p => p.UserId == id);

            if (dbUser == null)
            {
                return(SupplyResponse.NotFound("user", id + ""));
            }
            if (string.IsNullOrWhiteSpace(user.UserName))
            {
                return(SupplyResponse.BadRequest("Required Field is Empty"));
            }

            dbUser.Name     = user.Name;
            dbUser.UserName = user.UserName;
            dbUser.UserType = user.UserType;

            var oldPw = dbUser.Password;

            user.Password = string.IsNullOrWhiteSpace(user.Password)
                ? oldPw
                : HashUtilities.HashPassword(user.Password);

            _dbContext.SaveChanges();
            return(Get(id));
        }
        public SupplyResponse AddToCategory(int id, [FromBody] IdRequest idRequest)
        {
            var category = _dbContext.Category.SingleOrDefault(p => p.CategoryId == id);

            var vItm = _dbContext.VirtualItem.SingleOrDefault(p => p.VirtualItemId == idRequest.Id);

            if (category == null)
            {
                return(SupplyResponse.NotFound("category", id + ""));
            }
            if (vItm == null)
            {
                return(SupplyResponse.NotFound("virtual item", idRequest.Id + ""));
            }

            var cItem = _dbContext.CategoryItem.SingleOrDefault(p =>
                                                                p.CategoryId == category.CategoryId && p.VirtualItem.VirtualItemId == vItm.VirtualItemId);

            if (cItem != null)
            {
                return(SupplyResponse.DuplicateEntry("category item",
                                                     $"\"{cItem.VirtualItemId} in {cItem.CategoryId}\""));
            }

            var cateItm = new CategoryItem
            {
                CategoryId    = category.CategoryId,
                VirtualItemId = vItm.Id
            };

            _dbContext.CategoryItem.Add(cateItm);
            _dbContext.SaveChanges();
            return(Get(category.CategoryId));
        }
 public SupplyResponse Delete(int id)
 {
     var entity = _dbContext.Restaurant.SingleOrDefault(p => p.RestaurantId == id);
     if (entity == null) return SupplyResponse.NotFound("restaurant", id + "");
     _dbContext.Remove(entity);
     _dbContext.SaveChanges();
     return SupplyResponse.Ok();
 }
        public SupplyResponse Get(int id)
        {
            var order = _dbContext.BlanketRelease.Include(p => p.Agreement).ThenInclude(p => p.Supplier).Include(p => p.Request)
                        .ThenInclude(p => p.RequestItem).Include(p => p.BlanketReleaseLine).ThenInclude(p => p.Item).Include(p => p.Request)
                        .ThenInclude(p => p.Restaurant)
                        .SingleOrDefault(p => p.OrderId == id);

            return(order == null?SupplyResponse.NotFound("Purchase Order", id + "") : SupplyResponse.Ok(order));
        }
Esempio n. 9
0
        public SupplyResponse Get(int id)
        {
            var order = _dbContext.DeliveryNote.Include(p => p.Request)
                        .ThenInclude(p => p.RequestItem).ThenInclude(p => p.VirtualItem).Include(p => p.Request)
                        .ThenInclude(p => p.Restaurant)
                        .SingleOrDefault(p => p.RequestId == id);

            return(order == null?SupplyResponse.NotFound("Delivery Note", id + "") : SupplyResponse.Ok(order));
        }
        public SupplyResponse Get(string id)
        {
            var item = _dbContext.Item.SingleOrDefault(p => p.SupplierItemId.Equals(id));

            if (item == null)
            {
                return(SupplyResponse.NotFound("item", id));
            }
            return(SupplyResponse.Ok(item));
        }
Esempio n. 11
0
        public SupplyResponse Get(int id)
        {
            var order = _dbContext.ScheduleRelease.Include(p => p.Agreement)
                        .ThenInclude(p => p.PlannedPurchaseAgreementDetails).Include(p => p.Agreement)
                        .ThenInclude(p => p.Supplier).Include(p => p.Agreement)
                        .ThenInclude(p => p.PlannedPurchaseAgreementLines).ThenInclude(p => p.Item)
                        .SingleOrDefault(p => p.OrderId == id);

            return(order == null?SupplyResponse.NotFound("Schedule Release", id + "") : SupplyResponse.Ok(order));
        }
Esempio n. 12
0
        public SupplyResponse Get(int id)
        {
            var item = _dbContext.Category.SingleOrDefault(p => p.CategoryId == id);

            if (item == null)
            {
                return(SupplyResponse.NotFound("categorty", id + ""));
            }
            return(SupplyResponse.Ok(item));
        }
Esempio n. 13
0
        public SupplyResponse Get(int id)
        {
            var supplier = _dbContext.Supplier.SingleOrDefault(p => p.SupplierId == id);

            if (supplier == null)
            {
                return(SupplyResponse.NotFound("supplier", id + ""));
            }
            return(SupplyResponse.Ok(supplier));
        }
Esempio n. 14
0
        public SupplyResponse Get(int id)
        {
            var user = _dbContext.User.SingleOrDefault(p => p.UserId == id);

            if (user == null)
            {
                return(SupplyResponse.NotFound("user", id + ""));
            }
            user.Password = null;
            return(SupplyResponse.Ok(user));
        }
Esempio n. 15
0
        public SupplyResponse Delete(int id)
        {
            var entity = _dbContext.Category.SingleOrDefault(p => p.CategoryId == id);

            if (entity == null)
            {
                return(SupplyResponse.NotFound("category", id + ""));
            }
            _dbContext.Remove(entity);
            _dbContext.SaveChanges();
            return(SupplyResponse.Ok());
        }
Esempio n. 16
0
        public SupplyResponse Delete(int id)
        {
            var user = _dbContext.User.SingleOrDefault(p => p.UserId == id);

            if (user == null)
            {
                return(SupplyResponse.NotFound("user", id + ""));
            }
            _dbContext.Remove(user);
            _dbContext.SaveChanges();
            return(SupplyResponse.Ok());
        }
        public SupplyResponse Put(int id, [FromBody] BlanketRelease orderStatus)
        {
            var order = _dbContext.BlanketRelease.SingleOrDefault(p => p.OrderId == id);

            if (order == null)
            {
                return(SupplyResponse.NotFound("Purchase Order", id + ""));
            }

            order.PurchaseOrderStatus = orderStatus.PurchaseOrderStatus;
            _dbContext.SaveChanges();

            return(Get(id));
        }
        public SupplyResponse Delete(string id, [FromBody] IdRequest idRequest)
        {
            var entity =
                _dbContext.VirtualIdMap.SingleOrDefault(p =>
                                                        p.VirtualItem.VirtualItemId == idRequest.Id && p.Item.SupplierItemId == id);

            if (entity == null)
            {
                return(SupplyResponse.NotFound("virtual map", $"{id}<->{idRequest.Id}"));
            }
            _dbContext.Remove(entity);
            _dbContext.SaveChanges();
            return(SupplyResponse.Ok());
        }
        public SupplyResponse RemoveFromStock(int id, [FromBody] IdRequest idRequest)
        {
            var stockItem =
                _dbContext.StockItem.SingleOrDefault(p =>
                                                     p.StockId == id && p.VirtualItem.VirtualItemId == idRequest.Id);

            if (stockItem == null)
            {
                return(SupplyResponse.NotFound("stock item", $"\"{idRequest.Id} in {id}\""));
            }

            _dbContext.StockItem.Remove(stockItem);
            _dbContext.SaveChanges();
            return(SupplyResponse.Ok());
        }
        public SupplyResponse Put(int id, [FromBody] Restaurant restaurant)
        {
            var entity = _dbContext.Restaurant.AsNoTracking().SingleOrDefault(p => p.RestaurantId == id);
            if (entity == null) return Post(restaurant);
            if (string.IsNullOrWhiteSpace(restaurant.RestaurantName) ||
                string.IsNullOrWhiteSpace(restaurant.RestaurantLocation) ||
                restaurant.RestaurantTypeId == 0) return SupplyResponse.RequiredFieldEmpty();

            if (_dbContext.RestaurantType.SingleOrDefault(p => p.RestaurantTypeId == restaurant.RestaurantTypeId) ==
                null) return SupplyResponse.NotFound("restaurant type", restaurant.RestaurantTypeId + "");

            restaurant.RestaurantId = id;
            _dbContext.Attach(restaurant);
            _dbContext.Entry(restaurant).State = EntityState.Modified;
            _dbContext.SaveChanges();
            return Get(id);
        }
Esempio n. 21
0
        public SupplyResponse Put(int id, [FromBody] Supplier supplier)
        {
            var entity = _dbContext.Supplier.AsNoTracking().SingleOrDefault(p => p.SupplierId == id);

            if (entity == null)
            {
                return(SupplyResponse.NotFound("supplier", id + ""));
            }
            if (string.IsNullOrWhiteSpace(supplier.SupplierName))
            {
                return(SupplyResponse.BadRequest("Required Field is Empty"));
            }
            supplier.SupplierId = id;
            _dbContext.Attach(supplier);
            _dbContext.Entry(supplier).State = EntityState.Modified;
            _dbContext.SaveChanges();
            return(Get(id));
        }
        public SupplyResponse RemoveRestaurantType(int id)
        {
            if (id == 0)
            {
                return(SupplyResponse.RequiredFieldEmpty());
            }

            var restaurantType =
                _dbContext.RestaurantType.SingleOrDefault(p => p.RestaurantTypeId == id);

            if (restaurantType == null)
            {
                return(SupplyResponse.NotFound("restaurant type", "" + id));
            }
            _dbContext.RestaurantType.Remove(restaurantType);
            _dbContext.SaveChanges();
            return(SupplyResponse.Ok());
        }
        public SupplyResponse Post([FromBody] Restaurant restaurant)
        {
            if (string.IsNullOrWhiteSpace(restaurant.RestaurantName) ||
                string.IsNullOrWhiteSpace(restaurant.RestaurantLocation) ||
                restaurant.RestaurantTypeId == 0) return SupplyResponse.RequiredFieldEmpty();

            if (_dbContext.RestaurantType.SingleOrDefault(p => p.RestaurantTypeId == restaurant.RestaurantTypeId) ==
                null) return SupplyResponse.NotFound("restaurant type", restaurant.RestaurantTypeId + "");

            var stock = new Stock();
            _dbContext.Stock.Add(stock);
            _dbContext.SaveChanges();

            restaurant.StockId = stock.StockId;
            _dbContext.Restaurant.Add(restaurant);
            _dbContext.SaveChanges();
            return Get(restaurant.RestaurantId);
        }
        public SupplyResponse RemoveRestaurantManager(int id, [FromBody] IntIdRequest idRequest)
        {
            if (id == 0 || idRequest.Id == 0)
            {
                return(SupplyResponse.RequiredFieldEmpty());
            }

            var restaurantManager =
                _dbContext.RestaurantManager.SingleOrDefault(p => p.RestaurantId == id && p.UserId == idRequest.Id);

            if (restaurantManager == null)
            {
                return(SupplyResponse.NotFound("restaurant manager", idRequest.Id + "<->" + id));
            }
            _dbContext.RestaurantManager.Remove(restaurantManager);
            _dbContext.SaveChanges();
            return(SupplyResponse.Ok());
        }
Esempio n. 25
0
 public SupplyResponse Delete(int id)
 {
     try
     {
         var agreement = _dbContext.Agreement.SingleOrDefault(p => p.AgreementId == id);
         if (agreement == null)
         {
             return(SupplyResponse.NotFound("Agreement", id + ""));
         }
         _dbContext.Remove(agreement);
         _dbContext.SaveChanges();
         return(SupplyResponse.Ok());
     }
     catch
     {
         return(SupplyResponse.Fail("Agreement in use",
                                    "This agreement had referenced by orders, you cannot remove it."));
     }
 }
 public SupplyResponse Delete(string id)
 {
     try
     {
         var entity = _dbContext.Item.SingleOrDefault(p => p.SupplierItemId.Equals(id));
         if (entity == null)
         {
             return(SupplyResponse.NotFound("item", id + ""));
         }
         _dbContext.Remove(entity);
         _dbContext.SaveChanges();
         return(SupplyResponse.Ok());
     }
     catch
     {
         return(SupplyResponse.Fail("Item in use",
                                    "This item referenced by request or order, you cannot remove it."));
     }
 }
Esempio n. 27
0
        public SupplyResponse Put(int id, DeliveryNote deliveryNote)
        {
            var order = _dbContext.DeliveryNote.Include(p => p.Request)
                        .ThenInclude(p => p.RequestItem).ThenInclude(p => p.VirtualItem).Include(p => p.Request)
                        .ThenInclude(p => p.Restaurant)
                        .SingleOrDefault(p => p.RequestId == id);

            if (order == null)
            {
                return(SupplyResponse.NotFound("Purchase Order", id + ""));
            }

            order.DeliveryStatus = deliveryNote.DeliveryStatus;

            _dbContext.SaveChanges();


            return(Get(id));
        }
 public SupplyResponse Post([FromBody] Item item)
 {
     if (string.IsNullOrWhiteSpace(item.ItemName) || item.SupplierId == 0 ||
         string.IsNullOrWhiteSpace(item.SupplierItemId))
     {
         return(SupplyResponse.RequiredFieldEmpty());
     }
     if (_dbContext.Item.SingleOrDefault(p => p.SupplierItemId == item.SupplierItemId) != null)
     {
         return(SupplyResponse.DuplicateEntry("item", item.SupplierItemId));
     }
     if (_dbContext.Supplier.SingleOrDefault(p => p.SupplierId == item.SupplierId) == null)
     {
         return(SupplyResponse.NotFound("supplier", item.SupplierId + ""));
     }
     item.Id = 0;
     _dbContext.Item.Add(item);
     _dbContext.SaveChanges();
     return(Get(item.SupplierItemId));
 }
        public SupplyResponse Get(string id, bool supplieritem)
        {
            if (supplieritem)
            {
                var item = _dbContext.Item.Include(a => a.VirtualIdMap).ThenInclude(b => b.VirtualItem)
                           .SingleOrDefault(p => p.SupplierItemId.Equals(id));
                if (item == null)
                {
                    return(SupplyResponse.NotFound("item", id));
                }
                var items = new List <string>();
                if (item.VirtualIdMap != null)
                {
                    foreach (var virtualIdMap in item.VirtualIdMap)
                    {
                        items.Add(virtualIdMap.VirtualItem.VirtualItemId);
                    }
                }

                return(SupplyResponse.Ok(items));
            }
            else
            {
                var item = _dbContext.VirtualItem.Include(a => a.VirtualIdMap).ThenInclude(b => b.Item)
                           .SingleOrDefault(p => p.VirtualItemId.Equals(id));
                if (item == null)
                {
                    return(SupplyResponse.NotFound("virtual item", id));
                }
                var items = new List <string>();
                if (item.VirtualIdMap != null)
                {
                    foreach (var virtualIdMap in item.VirtualIdMap)
                    {
                        items.Add(virtualIdMap.Item.SupplierItemId);
                    }
                }

                return(SupplyResponse.Ok(items));
            }
        }
        public SupplyResponse AddRestaurantManager(int id, [FromBody] IntIdRequest idRequest)
        {
            if (id == 0 || idRequest.Id == 0)
            {
                return(SupplyResponse.RequiredFieldEmpty());
            }

            var restaurant = _dbContext.Restaurant.SingleOrDefault(p => id == p.RestaurantId);

            var user = _dbContext.User.SingleOrDefault(p => p.UserId == idRequest.Id);

            if (restaurant == null)
            {
                return(SupplyResponse.NotFound("restaurant", id + ""));
            }

            if (user == null)
            {
                return(SupplyResponse.NotFound("user", idRequest.Id + ""));
            }

            var restaurantManager = _dbContext.RestaurantManager.Include(p => p.Restaurant)
                                    .SingleOrDefault(p => p.UserId == idRequest.Id);

            if (restaurantManager != null)
            {
                return(SupplyResponse.Fail("Already a Manager",
                                           "This user is already a manager of restaurant: " + restaurantManager.Restaurant.RestaurantName));
            }

            restaurantManager = new RestaurantManager
            {
                RestaurantId = id,
                UserId       = idRequest.Id
            };
            _dbContext.RestaurantManager.Add(restaurantManager);
            _dbContext.SaveChanges();
            return(Get(id));
        }