Example #1
0
        public BillReturnEntityWrapper Delete(BillApiWrapper objBillApiWrapper)
        {
            ApplicationDBContext objApplicationDBContext = new ApplicationDBContext();

            Bill objBill = objApplicationDBContext
                           .Bills
                           .Include("Entries")
                           .Where(x => x.BillID == objBillApiWrapper.BillID)
                           .FirstOrDefault();

            if (objBill != null)
            {
                objApplicationDBContext.BillEntries.RemoveRange(objBill.Entries);
                objApplicationDBContext.Bills.Remove(objBill);
                objApplicationDBContext.SaveChanges();
                return(new BillReturnEntityWrapper(BillReturnEntityWrapper.EnumReturnCodes.OK));
            }
            else
            {
                return(new BillReturnEntityWrapper(BillReturnEntityWrapper.EnumReturnCodes.WRONG_BILL_ID));
            }
        }
Example #2
0
        public BillReturnEntityWrapper Edit(BillApiWrapper objBillApiWrapper)
        {
            if (objBillApiWrapper.PurchaseDate == null)
            {
                return(new BillReturnEntityWrapper(BillReturnEntityWrapper.EnumReturnCodes.WRONG_PURCHASE_DATE));
            }

            if (objBillApiWrapper.Entries == null || objBillApiWrapper.Entries.Count == 0)
            {
                return(new BillReturnEntityWrapper(BillReturnEntityWrapper.EnumReturnCodes.NO_BILL_ENTRIES));
            }

            if (objBillApiWrapper.Shop == null)
            {
                return(new BillReturnEntityWrapper(BillReturnEntityWrapper.EnumReturnCodes.WRONG_SHOP_ID));
            }

            ApplicationDBContext objApplicationDBContext = new ApplicationDBContext();

            Models.User objUser = objApplicationDBContext
                                  .Users
                                  .Where(x => x.UserID == objBillApiWrapper.UserID)
                                  .FirstOrDefault();

            if (objUser == null)
            {
                return(new BillReturnEntityWrapper(BillReturnEntityWrapper.EnumReturnCodes.WRONG_USER_ID));
            }

            List <ProductCategory> listProductCategory = objApplicationDBContext
                                                         .ProductCategories
                                                         .ToList();

            // bill entries validation
            foreach (BillEntryController.BillEntryApiWrapper objBillEntryApiWrapper in objBillApiWrapper.Entries)
            {
                if (objBillEntryApiWrapper.Category == null || listProductCategory.Find(x => x.ProductCategoryID == objBillEntryApiWrapper.Category.ProductCategoryID) == null)
                {
                    return(new BillReturnEntityWrapper(BillReturnEntityWrapper.EnumReturnCodes.WRONG_CATEGORY_ID));
                }

                if (objBillEntryApiWrapper.Price <= 0.0M)
                {
                    return(new BillReturnEntityWrapper(BillReturnEntityWrapper.EnumReturnCodes.WRONG_PRICE));
                }

                if (("" + objBillEntryApiWrapper.ProductName).Trim() == "")
                {
                    return(new BillReturnEntityWrapper(BillReturnEntityWrapper.EnumReturnCodes.WRONG_PRODUCT_NAME));
                }

                if (objBillEntryApiWrapper.Quantity <= 0.0)
                {
                    return(new BillReturnEntityWrapper(BillReturnEntityWrapper.EnumReturnCodes.WRONG_QUANTITY));
                }
            }

            List <Shop> listShop = objApplicationDBContext
                                   .Shops
                                   .Include("UserOwner")
                                   .Where(x => x.UserOwner.UserID == objUser.UserID)
                                   .ToList();

            Shop objShopToAssign = null;

            if (listShop.Find(x => x.ShopID == objBillApiWrapper.Shop.ShopID && objBillApiWrapper.Shop.UserOwnerID == objUser.UserID) != null)
            {
                objShopToAssign = listShop.Find(x => x.ShopID == objBillApiWrapper.Shop.ShopID && objBillApiWrapper.Shop.UserOwnerID == objUser.UserID);
            }
            else
            {
                if (("" + objBillApiWrapper.Shop.ShopName).Trim() == "")
                {
                    return(new BillReturnEntityWrapper(BillReturnEntityWrapper.EnumReturnCodes.WRONG_SHOP_NAME));
                }

                if (objUser.UserID != objBillApiWrapper.Shop.UserOwnerID)
                {
                    return(new BillReturnEntityWrapper(BillReturnEntityWrapper.EnumReturnCodes.WRONG_SHOP_OWNER_ID));
                }

                objShopToAssign = new Shop()
                {
                    ShopName  = ("" + objBillApiWrapper.Shop.ShopName).Trim(),
                    UserOwner = objUser
                };

                objApplicationDBContext.Shops.Add(objShopToAssign);
                objApplicationDBContext.SaveChanges();
            }

            Bill objBill = objApplicationDBContext
                           .Bills
                           .Include("Shop")
                           .Include("Shop.UserOwner")
                           .Where(x => x.BillID == objBillApiWrapper.BillID)
                           .FirstOrDefault();

            if (objBill == null)
            {
                return(new BillReturnEntityWrapper(BillReturnEntityWrapper.EnumReturnCodes.WRONG_BILL_ID));
            }

            objBillApiWrapper.FillModel(ref objBill, true);
            objBill.Shop = objShopToAssign;

            objApplicationDBContext.SaveChanges();

            return(new BillReturnEntityWrapper(BillReturnEntityWrapper.EnumReturnCodes.OK));
        }