Beispiel #1
0
        public ServiceResult <DtoItem> Add(DtoItem item)
        {
            //Repository.DbContext.Set<>
            var categoryExists = Repository.DbContext.Categories.Any(x => x.Id == item.CategoryId);

            if (!categoryExists)
            {
                return new ServiceResult <DtoItem>
                       {
                           Success      = false,
                           ErrorMessage = "2404"
                       }
            }
            ;
            var newItem = new Item
            {
                Id         = 0,
                Name       = item.Name,
                CategoryId = item.CategoryId
            };
            var result = Repository.Create(newItem);

            return(new ServiceResult <DtoItem>()
            {
                Item = new DtoItem(result)
            });
        }
        public ServiceResult <DtoItem> Add(DtoItem item)
        {
            var categoryExists = DbContext
                                 .Categories
                                 .Any(c => c.Id == item.CategoryId);

            if (!categoryExists)
            {
                return(new ServiceResult <DtoItem>
                {
                    Success = false,
                    ErrorMessage = "3404"
                });
            }
            var newItem = new Item
            {
                Id           = 0,
                Name         = item.Name,
                Availability = item.Availability,
                CategoryId   = item.CategoryId,
                Contents     = item.Contents,
                Description  = item.Description,
                Price        = item.Price
            };
            var result = Repository.Create(newItem);

            return(new ServiceResult <DtoItem>()
            {
                Success = true,
                Item = new DtoItem(result)
            });
        }
 public ServiceResult <DtoItem> Edit(DtoItem type)
 {
     try
     {
         var categoryExist = Repository.DbContext.Categories.Any(i => i.Id == type.CategoryId);
         if (categoryExist)
         {
             var itemOne = Repository.GetById(type.Id);
             itemOne.Name         = type.Name;
             itemOne.Price        = type.Price;
             itemOne.Description  = type.Description;
             itemOne.Availability = type.Availability;
             itemOne.Contents     = type.Contents;
             itemOne.CategoryId   = type.CategoryId;
             Repository.Update(itemOne);
         }
         return(new ServiceResult <DtoItem>()
         {
             Success = true
         });
     }
     catch (Exception ex)
     {
         return(new ServiceResult <DtoItem>()
         {
             Success = false,
             ErrorMessage = "Cannot insert the item!",
         });
     }
 }
        public ServiceResult <DtoItem> Add(DtoItem item)
        {
            var categoryExist = Repository.DbContext.Categories.Any(i => i.Id == item.CategoryId);

            if (categoryExist)
            {
                var result = Repository.Create(new Item()
                {
                    Id           = 0,
                    Name         = item.Name,
                    Availability = item.Availability,
                    Price        = item.Price,
                    Contents     = item.Contents,
                    Description  = item.Description,
                    CategoryId   = item.CategoryId,
                });
                return(new ServiceResult <DtoItem>()
                {
                    Item = new DtoItem(result),
                    Success = true
                });
            }
            else
            {
                return(new ServiceResult <DtoItem>()
                {
                    Success = false,
                    ErrorMessage = "Cannot insert the item!",
                });
            }
        }
 public ServiceResult <DtoItem> Remove(DtoItem item)
 {
     try
     {
         Repository.Delete(new Item()
         {
             CategoryID      = item.CategoryID,
             ItemPrice       = item.ItemPrice,
             ItemName        = item.ItemName,
             ItemDescription = item.ItemDescription,
             ItemContent     = item.ItemContent,
             Availability    = item.Availability,
             ItemID          = item.ItemID
         });
         return(new ServiceResult <DtoItem>()
         {
             Success = true
         });
     }
     catch (Exception ex)
     {
         //Log Exception
         return(new ServiceResult <DtoItem>()
         {
             Success = false,
             Exception = ex,
             ErrorMessage = ex.Message
         });
     }
 }
        public IHttpActionResult PostItem(DtoItem dtoItem)
        {
            //Validate supplied DTO
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (dtoItem == null)
            {
                return(BadRequest("Must supply item in body of request."));
            }

            if (dtoItem.Key == null)
            {
                return(BadRequest("Must supply key when creating item."));
            }

            //Get parent item
            Item potentialParent = null;

            if (dtoItem.Parent != null)
            {
                potentialParent = db.Items.Find(dtoItem.Parent);
                if (potentialParent == null)
                {
                    return(BadRequest("Can't find parent with specified Id"));
                }
                if (potentialParent is Leaf)
                {
                    throw new System.InvalidOperationException("Parent cannot be Leaf");
                }
            }

            //Create item and assign it to its parent as a child
            Item item;

            try
            {
                item = dtoItem.ToDomainObject((Node)potentialParent);

                if (potentialParent != null)
                {
                    ((Node)potentialParent).Children.Add(item);
                }
            }
            catch (InvalidDataException exception)
            {
                return(BadRequest(exception.Message));
            }

            item.Created();
            db.Items.Add(item);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = item.Id }, item.ToDto()));
        }
        public ActionResult Create(DtoItem item)
        {
            ServiceResult <DtoItem> result = _service.Add(item);

            if (result.Success)
            {
                return(Json(result.Item));
            }
            return(new HttpStatusCodeResult(400, result.ErrorMessage));
        }
Beispiel #8
0
        public void AddItem_ValidInput_ExpectTwoItems()
        {
            var item1 = new DtoItem()
            {
                Availability    = true,
                CategoryID      = 3,
                ItemContent     = "Something awesome",
                ItemDescription = "Yummy",
                ItemName        = "Food",
                ItemPrice       = 200
            };
            var item2 = new DtoItem()
            {
                Availability    = true,
                CategoryID      = 2,
                ItemContent     = "Something awesome",
                ItemDescription = "Yummy",
                ItemName        = "Drink",
                ItemPrice       = 100
            };
            var item3 = new DtoItem()
            {
                Availability    = true,
                CategoryID      = 5,
                ItemContent     = "Something awesome",
                ItemDescription = "Yummy",
                ItemName        = "NjamNjam",
                ItemPrice       = 200
            };

            var service          = new ItemService();
            var result1          = service.Add(item1);
            var result2          = service.Add(item2);
            var result3          = service.Add(item3);
            var resultCategories = service.LoadAll();

            Assert.IsNotNull(result1);
            Assert.IsTrue(result1.Success);

            Assert.IsNotNull(result2);
            Assert.IsTrue(result2.Success);

            Assert.IsNotNull(result3);
            Assert.IsFalse(result3.Success);

            Assert.IsNotNull(resultCategories);
            Assert.IsTrue(resultCategories.Success);
        }
 public ServiceResult <DtoItem> Add(DtoItem item)
 {
     try
     {
         using (var service = new CategoryService())
         {
             if (!service.LoadAll().Items.Any(m => m.CategoryID == item.CategoryID))
             {
                 return new ServiceResult <DtoItem>
                        {
                            Success      = false,
                            ErrorMessage = "Category id does not exist in this context"
                        }
             }
             ;
         }
         // Treba da se napravi proverka dali postoi MenuID
         var result = Repository.Create(new Item()
         {
             CategoryID      = item.CategoryID,
             ItemPrice       = item.ItemPrice,
             ItemName        = item.ItemName,
             ItemDescription = item.ItemDescription,
             ItemContent     = item.ItemContent,
             Availability    = item.Availability
         });
         return(new ServiceResult <DtoItem>()
         {
             Item = new DtoItem(result),
             Success = true
         });
     }
     catch (Exception ex)
     {
         //Log Exception
         return(new ServiceResult <DtoItem>()
         {
             Success = false,
             Exception = ex,
             ErrorMessage = ex.Message
         });
     }
 }
Beispiel #10
0
        public ServiceResult <DtoItem> Add(DtoItem item)
        {
            try
            {
                if (Context.Categories.Any(c => c.CategoryId == item.CategoryId))
                {
                    var result = Repository.Create(new Item()
                    {
                        ItemName         = item.ItemName,
                        ItemPrice        = item.ItemPrice,
                        ItemDescription  = item.ItemDescription,
                        ItemContents     = item.ItemContents,
                        ItemAvailability = item.ItemAvailability,
                        CategoryId       = item.CategoryId
                    });

                    return(new ServiceResult <DtoItem>()
                    {
                        Item = new DtoItem(result),
                        Success = true
                    });
                }
                else
                {
                    return(new ServiceResult <DtoItem>()
                    {
                        Success = false,
                        ErrorMessage = "There is no category with the specified category ID."
                    });
                }
            }
            catch (Exception ex)
            {
                //Log exception
                return(new ServiceResult <DtoItem>()
                {
                    Success = false,
                    Exception = ex,
                    ErrorMessage = ex.Message
                });
            }
        }
 public ServiceResult <DtoItem> Load(DtoItem item)
 {
     try
     {
         var result = Repository.Get(item.ItemID);
         return(new ServiceResult <DtoItem>()
         {
             Item = new DtoItem(result),
             Success = true
         });
     }
     catch (Exception ex)
     {
         //Log Exception
         return(new ServiceResult <DtoItem>()
         {
             Success = false,
             Exception = ex,
             ErrorMessage = ex.Message
         });
     }
 }
Beispiel #12
0
        // GET: Items/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ItemDetailViewModel vm = new ItemDetailViewModel();

            DtoItem item = (from i in db.Item
                            where i.Ite_Id == id
                            select new DtoItem()
            {
                Ite_Id = i.Ite_Id,
                Ite_Name = i.Ite_Name,
                Ite_Type = i.Ite_Type,
                Ite_Collection = i.Ite_Collection,
                Ite_Edition = i.Ite_Edition,
                Ite_Editor = i.Ite_Editor,
                Ite_ISBN = i.Ite_ISBN,
                Ite_ProdDate = i.Ite_ProdDate,
                Makers = (from m in i.Maker
                          select new DtoPerson()
                {
                    Per_FirstName = m.Per_FirstName,
                    Per_LastName = m.Per_LastName
                }).ToList()
            }).Single();

            if (item == null)
            {
                return(HttpNotFound());
            }
            vm.item = item;

            return(View(vm));
        }
Beispiel #13
0
        public void AddItem_ValidInput_ExpectTwoItems()
        {
            //Act
            //add categories first if none exist in the database!!!
            //DtoCategory category1 = new DtoCategory()
            //{
            //    MenuId = 1,
            //    CategoryName = "Salads"
            //};

            //DtoCategory category2 = new DtoCategory()
            //{
            //    MenuId = 2,
            //    CategoryName = "Sodas"
            //};

            //DtoCategory category3 = new DtoCategory()
            //{
            //    MenuId = 3,
            //    CategoryName = "Sandwiches"
            //};

            DtoItem item1 = new DtoItem()
            {
                ItemName         = "Sandwich",
                ItemPrice        = 120,
                ItemDescription  = "Tuna sandwich",
                ItemContents     = "Bread, tuna, sesame, mayonnaise",
                ItemAvailability = true,
                CategoryId       = 3
            };

            DtoItem item2 = new DtoItem()
            {
                ItemName         = "Caesar salad",
                ItemPrice        = 140,
                ItemDescription  = "Caesar salad",
                ItemContents     = "Chicken meat, iceberg salad, carrots, cheese, sauce",
                ItemAvailability = true,
                CategoryId       = 1
            };

            DtoItem item3 = new DtoItem()
            {
                ItemName         = "Coca-Cola",
                ItemPrice        = 40,
                ItemDescription  = "Coca-Cola",
                ItemContents     = "Coca-Cola soda drink",
                ItemAvailability = true,
                CategoryId       = 2
            };

            //Arrange
            var itemService = new ItemService();
            var result1     = itemService.Add(item1); // will add them to the database each time the test is run, and the entries are repeated
            var result2     = itemService.Add(item2);
            var result3     = itemService.Add(item3);
            var resultItems = itemService.LoadAll();

            //Assert
            Assert.IsNotNull(result1);
            Assert.IsTrue(result1.Success);
            Assert.IsNotNull(result2);
            Assert.IsTrue(result2.Success);
            Assert.IsNotNull(result3);
            Assert.IsTrue(result3.Success);
            Assert.IsNotNull(resultItems);
            Assert.IsTrue(resultItems.Success);
            Assert.IsNotNull(resultItems.ListItems);
            //Assert.AreEqual(2, resultItems.ListItems.Count);
            Assert.IsTrue(resultItems.ListItems.Count >= 3); // since test method adds the same entries to the database, here we check if there are at least 2 created
        }
Beispiel #14
0
 public ServiceResult <DtoItem> Remove(DtoItem item)
 {
     throw new NotImplementedException();
 }
        public IHttpActionResult PutItem(int id, DtoItem dtoItem)
        {
            //Check dto received is valid
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //Check id matches
            if (dtoItem == null)
            {
                return(BadRequest("Must supply item in body of request."));
            }
            if (id != dtoItem.Id)
            {
                return(BadRequest("Id in url must match id in request body."));
            }

            //Get the itemfrom the db
            Item item = db.Items.Find(id);

            if (item == null)
            {
                return(StatusCode(HttpStatusCode.NotFound));
            }

            //Get the item's parent
            Item potentialParent = null;

            if (dtoItem.Parent != null)
            {
                potentialParent = db.Items.Find(dtoItem.Parent);
                if (potentialParent == null)
                {
                    return(BadRequest("Can't find parent with specified Id"));
                }
                if (potentialParent is Leaf)
                {
                    throw new System.InvalidOperationException("Parent cannot be Leaf");
                }
            }

            //Convert parent to domain object
            //Update the item's key to match the parent, and value if the item is a leaf
            try
            {
                Item new_item = dtoItem.ToDomainObject((Node)potentialParent);

                item.Key = new_item.Key;
                if (dtoItem is DtoLeaf)
                {
                    if (!(item is Leaf))
                    {
                        throw new System.InvalidOperationException("Item type must match.");
                    }
                    ((Leaf)item).Value = ((Leaf)new_item).Value;
                    ((Leaf)item).Stale = ((Leaf)new_item).Stale;
                }
            }
            catch (InvalidDataException exception)
            {
                return(BadRequest(exception.Message));
            }

            item.Updated();
            db.SaveChanges();
            return(Ok(item.ToDto()));
        }