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); } }
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"); } }
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 }); }
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()); }
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); } }
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()); }
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 }; }
public MenuController() { Repository = new RestaurantMenuItemRepository(); }
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>(); }
public MenuController() { Repository = new RestaurantMenuItemRepository(); }