Example #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                //Implement your edit logic for your module
                if (!Page.IsPostBack)
                {
                    //check if we have an ID passed in via a querystring parameter, if so, load that item to edit.
                    //ItemId is defined in the ItemModuleBase.cs file
                    if (ItemId > 0)
                    {
                        var tc = new RestaurantMenuItemRepository();

                        var t = tc.GetItem(ItemId, ModuleId);
                        if (t != null)
                        {
                            txtName.Text            = t.Name;
                            txtDescription.Text     = t.Description;
                            chkDailySpecial.Checked = t.IsDailySpecial;
                            chkVegetarian.Checked   = t.IsVegetarian;
                            txtPrice.Text           = t.Price.ToString("0.##");
                            FileInfo fiPic = (FileInfo)FileManager.Instance.GetFile(t.PictureFileId);
                            fpPicture.FileID   = fiPic.FileId;
                            fpPicture.FilePath = fiPic.RelativePath;
                        }
                    }
                }
            }
            catch (Exception exc) //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
Example #2
0
        internal static void ValidateModel(Controller controller, BookingViewModel model, int?offerid, out IEnumerable <RestaurantMenuItem> restaurantMenuItems,
                                           out IEnumerable <RestaurantTable> restaurantTables, out SeasonalOffer restaurantOffer)
        {
            if (model.BookedFor.ToUniversalTime() < DateTime.UtcNow.Floor((long)AppConfigHelper.BookingSlotMinutes, DateTimeHelper.DateTimePrecisionLevel.Minutes))
            {
                controller.ModelState.AddModelError("addstatus", "The date and time for booking should always be a future date and time");
            }
            if (model.BookedSlots < 1)
            {
                controller.ModelState.AddModelError("addstatus",
                                                    "You need to make booking for atleast " + AppConfigHelper.BookingSlotMinutes +
                                                    " Minutes");
            }
            if (model.BookedTables.IsNullOrEmpty() || model.BookedTables.Trim(',', ' ').Split(',').All(t => !t.IsNumeric()))
            {
                controller.ModelState.AddModelError("addstatus", "Invalid or no tables selected, please try again");
            }
            if (!model.PrefferedMenuItems.IsNullOrEmpty() &&
                model.BookedTables.Trim(',', ' ').Split(',').All(t => !t.IsNumeric()))
            {
                controller.ModelState.AddModelError("addstatus", "Invalid Menu Items selected, please try again");
            }
            restaurantOffer = offerid != null
                                  ? new OfferBaseRepository().Find(offerid.Value) as SeasonalOffer
                                  : null;
            var modelTables = model.BookedTables.Trim(',', ' ').Split(',').Select(Int32.Parse);

            restaurantTables =
                new RestaurantTableRepository().SelectAll().Where(table => modelTables.Any(t => t == table.TableId));
            var modelMenuItems = model.PrefferedMenuItems.IsNullOrEmpty() ? new List <int>() : model.PrefferedMenuItems.Trim(',', ' ').Split(',').Select(Int32.Parse);

            restaurantMenuItems =
                new RestaurantMenuItemRepository().SelectAll().Where(item => modelMenuItems.Any(m => m == item.ItemId));
            if (restaurantOffer != null && restaurantOffer.Type == OfferBase.OfferType.FreeServing)
            {
                var freeitem = new RestaurantMenuItemRepository().Find(restaurantOffer.Value);
                if (freeitem != null)
                {
                    var newitemlist = new List <RestaurantMenuItem> {
                        freeitem
                    };
                    newitemlist.AddRange(restaurantMenuItems);
                    restaurantMenuItems = newitemlist;
                }
            }

            if (restaurantTables.Count() < 1)
            {
                controller.ModelState.AddModelError("addstatus", "Selected Tables does not exist, please try again");
            }
            if (modelMenuItems.Count() > 0 && restaurantMenuItems.Count() < 1)
            {
                controller.ModelState.AddModelError("addstatus", "Selected Menu Items does not exist, please try again");
            }
        }
Example #3
0
        internal static BookingBill GetBookingBill(IEnumerable <RestaurantMenuItem> restaurantMenuItems, IEnumerable <RestaurantTable> restaurantTables, SeasonalOffer restaurantOffer, Coupon restaurantcoupon, int bookedslots)
        {
            var     discountamt = 0M;
            decimal grossamount = restaurantTables.Sum(restaurantTable => restaurantTable.Price * bookedslots);

            grossamount = restaurantMenuItems.Aggregate(grossamount, (current, restaurantMenuItem) => (int)(current + restaurantMenuItem.Price));

            var offer = (restaurantcoupon as OfferBase) ?? (restaurantOffer);

            var netamount = grossamount;

            if (offer != null)
            {
                switch (offer.Type)
                {
                case OfferBase.OfferType.DiscountAmount:
                {
                    discountamt = offer.Value;
                    netamount   = grossamount - discountamt;
                    if (netamount < 0)
                    {
                        netamount = 0;
                    }
                    break;
                }

                case OfferBase.OfferType.DiscountPercent:
                {
                    discountamt = (grossamount * offer.Value) / 100M;
                    netamount   = grossamount - discountamt;
                    break;
                }

                case OfferBase.OfferType.FreeServing:
                {
                    discountamt = new RestaurantMenuItemRepository().Find(offer.Value).Price;
                    netamount   = grossamount - discountamt;
                    break;
                }
                }
            }

            if (netamount < 0)
            {
                throw new InvalidOperationException("Discount amount cannot be more than the total amount of the Bill");
            }
            return(new BookingBill
            {
                DiscountAmount = discountamt,
                GrossAmount = grossamount,
                NetAmount = netamount
            });
        }
Example #4
0
        public void rptItemListOnItemCommand(object source, RepeaterCommandEventArgs e)
        {
            if (e.CommandName == "Edit")
            {
                Response.Redirect(EditUrl(string.Empty, string.Empty, "Edit", "tid=" + e.CommandArgument));
            }

            if (e.CommandName == "Delete")
            {
                var tc = new RestaurantMenuItemRepository();
                tc.DeleteItem(Convert.ToInt32(e.CommandArgument), ModuleId);
            }
            Response.Redirect(DotNetNuke.Common.Globals.NavigateURL());
        }
Example #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                PortalController pctrl = new PortalController();
                _currentPortal = pctrl.GetPortal(PortalId);

                var tc = new RestaurantMenuItemRepository();
                IEnumerable <RestaurantMenuItem> items = tc.GetItems(ModuleId);
                _hasItems = items.Any();
                rptItemList.DataSource = items;
                rptItemList.DataBind();
            }
            catch (Exception exc) //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
Example #6
0
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            var t  = new RestaurantMenuItem();
            var tc = new RestaurantMenuItemRepository();

            if (ItemId > 0)
            {
                t                = tc.GetItem(ItemId, ModuleId);
                t.Name           = txtName.Text.Trim();
                t.Description    = txtDescription.Text.Trim();
                t.IsDailySpecial = chkDailySpecial.Checked;
                t.IsVegetarian   = chkVegetarian.Checked;
                t.Price          = Convert.ToDecimal(txtPrice.Text);
                t.PictureFileId  = fpPicture.FileID;
            }
            else
            {
                t = new RestaurantMenuItem()
                {
                    AddedByUserId  = UserId,
                    DateAdded      = DateTime.Now,
                    Name           = txtName.Text.Trim(),
                    Description    = txtDescription.Text.Trim(),
                    IsDailySpecial = chkDailySpecial.Checked,
                    IsVegetarian   = chkVegetarian.Checked,
                    Price          = Convert.ToDecimal(txtPrice.Text),
                    PictureFileId  = fpPicture.FileID,
                };
            }

            t.DateModified     = DateTime.Now;
            t.ModifiedByUserId = UserId;
            t.ModuleId         = ModuleId;

            if (t.MenuItemId > 0)
            {
                tc.UpdateItem(t);
            }
            else
            {
                tc.CreateItem(t);
            }
            Response.Redirect(DotNetNuke.Common.Globals.NavigateURL());
        }
Example #7
0
        internal static BookingBill GetBookingBill(IEnumerable<RestaurantMenuItem> restaurantMenuItems, IEnumerable<RestaurantTable> restaurantTables, SeasonalOffer restaurantOffer, Coupon restaurantcoupon, int bookedslots)
        {
            var discountamt = 0M;
            decimal grossamount = restaurantTables.Sum(restaurantTable => restaurantTable.Price * bookedslots);
            grossamount = restaurantMenuItems.Aggregate(grossamount, (current, restaurantMenuItem) => (int)(current + restaurantMenuItem.Price));

            var offer = (restaurantcoupon as OfferBase) ?? (restaurantOffer);

            var netamount = grossamount;
            if (offer != null)
            {
                switch (offer.Type)
                {
                    case OfferBase.OfferType.DiscountAmount:
                        {
                            discountamt = offer.Value;
                            netamount = grossamount - discountamt;
                            if (netamount < 0) netamount = 0;
                            break;
                        }
                    case OfferBase.OfferType.DiscountPercent:
                        {
                            discountamt = (grossamount * offer.Value) / 100M;
                            netamount = grossamount - discountamt;
                            break;
                        }
                    case OfferBase.OfferType.FreeServing:
                        {
                            discountamt = new RestaurantMenuItemRepository().Find(offer.Value).Price;
                            netamount = grossamount - discountamt;
                            break;
                        }
                }
            }

            if (netamount < 0)
                throw new InvalidOperationException("Discount amount cannot be more than the total amount of the Bill");
            return new BookingBill
                       {
                           DiscountAmount = discountamt,
                           GrossAmount = grossamount,
                           NetAmount = netamount
                       };
        }
Example #8
0
 public MenuController()
 {
     Repository = new RestaurantMenuItemRepository();
 }
Example #9
0
        internal static void ValidateModel(Controller controller, BookingViewModel model, int? offerid, out IEnumerable<RestaurantMenuItem> restaurantMenuItems,
                                         out IEnumerable<RestaurantTable> restaurantTables, out SeasonalOffer restaurantOffer)
        {
            if (model.BookedFor.ToUniversalTime() < DateTime.UtcNow.Floor((long)AppConfigHelper.BookingSlotMinutes, DateTimeHelper.DateTimePrecisionLevel.Minutes))
                controller.ModelState.AddModelError("addstatus", "The date and time for booking should always be a future date and time");
            if (model.BookedSlots < 1)
                controller.ModelState.AddModelError("addstatus",
                                                    "You need to make booking for atleast " + AppConfigHelper.BookingSlotMinutes +
                                                    " Minutes");
            if (model.BookedTables.IsNullOrEmpty() || model.BookedTables.Trim(',', ' ').Split(',').All(t => !t.IsNumeric()))
                controller.ModelState.AddModelError("addstatus", "Invalid or no tables selected, please try again");
            if (!model.PrefferedMenuItems.IsNullOrEmpty() &&
                model.BookedTables.Trim(',', ' ').Split(',').All(t => !t.IsNumeric()))
                controller.ModelState.AddModelError("addstatus", "Invalid Menu Items selected, please try again");
            restaurantOffer = offerid != null
                                  ? new OfferBaseRepository().Find(offerid.Value) as SeasonalOffer
                                  : null;
            var modelTables = model.BookedTables.Trim(',', ' ').Split(',').Select(Int32.Parse);
            restaurantTables =
                new RestaurantTableRepository().SelectAll().Where(table => modelTables.Any(t => t == table.TableId));
            var modelMenuItems = model.PrefferedMenuItems.IsNullOrEmpty() ? new List<int>() : model.PrefferedMenuItems.Trim(',', ' ').Split(',').Select(Int32.Parse);
            restaurantMenuItems =
                new RestaurantMenuItemRepository().SelectAll().Where(item => modelMenuItems.Any(m => m == item.ItemId));
            if (restaurantOffer!= null && restaurantOffer.Type == OfferBase.OfferType.FreeServing)
            {
                var freeitem = new RestaurantMenuItemRepository().Find(restaurantOffer.Value);
                if (freeitem != null)
                {
                    var newitemlist = new List<RestaurantMenuItem> {freeitem};
                    newitemlist.AddRange(restaurantMenuItems);
                    restaurantMenuItems = newitemlist;
                }
            }

            if (restaurantTables.Count() < 1)
                controller.ModelState.AddModelError("addstatus", "Selected Tables does not exist, please try again");
            if (modelMenuItems.Count() > 0 && restaurantMenuItems.Count() < 1)
                controller.ModelState.AddModelError("addstatus", "Selected Menu Items does not exist, please try again");
        }
        /// <summary>
        /// Finds all the Record with the specified BookingId
        /// </summary>
        /// <param name="bookingid">The bookingid of the record</param>
        /// <returns>Resturns the BookedMenuItems if operation is successful otherwise returns null</returns>
        public IEnumerable<RestaurantMenuItem> Find(int bookingid)
        {
            var items = new List<dynamic>();
            using (var cn = new SqlConnection(DatabaseConnection.ConnectionStringToDb))
            {
                using (var cmd = new SqlCommand("FindMenuItemBookingsByBookingId", cn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add("@BOOKINGID", SqlDbType.BigInt).Value = bookingid;
                    GetAllRecord(items, cn, cmd);
                }
            }
            var tempmenulist = new RestaurantMenuItemRepository().SelectAll();
            var finalmenulist = items.Select(item => tempmenulist.Single(menuitem => menuitem.ItemId == item.ItemId));

            //Return empty list instead of null for now TODO:Fix this later
            return finalmenulist.Count() > 0 ? finalmenulist : new List<RestaurantMenuItem>();
        }
Example #11
0
 public MenuController()
 {
     Repository = new RestaurantMenuItemRepository();
 }