Online Restaurant Website Part 22 Deal Items

 Online Restaurant Website Part 22 Deal Items

Hi, Dear's here we learn how to implement PizzaRestaurantDrink Website in Visual Studio using C# ASP.NET MVC. Ilyasoft software company provide full project step by step training on our YouTube Channel ilyasoft software company so now subscribe, share and like for more project base tutorials



In this video we are going to implement Deal Details Designing + Implementation for more details click here: watch vedio

Note : first download all deals images

First we are going to create StockDealDetailMV for data model to show data in view. code add below:

StockDealDetailMV Model Code : 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace PizzaRestaurantDrink.Models
{
    public class StockDealDetailMV
    {
        public int StockDealDetailID { get; set; }
        public int StockDealID { get; set; }
        public int StockItemID { get; set; }
        public string ItemPhotoPath { get; set; }
        public string StockItemTitle { get; set; }
        public int Quantity { get; set; }
        public string ItemSize { get; set; }
        public double UnitPrice { get; set; }
        public string OrderType { get; set; }
        public double Discount { get; set; }
        public string VisibleStatus { get; set; }
    }
}

CRU_StockDealDetailMV Model Code : // To and get to list of item in deals also. 

using Dblayer;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace PizzaRestaurantDrink.Models
{
    public class CRU_StockDealDetailMV
    {
        PizzaRestaurentandDrinksDbEntities db = new PizzaRestaurentandDrinksDbEntities();
        public CRU_StockDealDetailMV(){}
        public CRU_StockDealDetailMV(int stockdealid)
        {
            GetDealItems(stockdealid);
            StockDealID = stockdealid;
        }
        public CRU_StockDealDetailMV(int stockdealid, int stockdealdetailid)
        {
            GetDealItems(stockdealid);
            StockDealID = stockdealid;
            StockDealDetailID = stockdealdetailid;

            var edit = db.StockDealDetailTables.Find(stockdealdetailid);
            if (edit != null)
            {
                StockDealDetailID = edit.StockDealDetailID;
                StockDealID = edit.StockDealID;
                StockItemID = edit.StockItemID;
                Discount = edit.Discount;
                Quantity = edit.Quantity;
                VisibleStatusID = edit.VisibleStatusID;
            }
            else
            {
                StockDealDetailID = stockdealdetailid;
                StockDealID = stockdealid;
                StockItemID = 0;
                Discount = 0;
                Quantity = 0;
                VisibleStatusID = 0;
            }
        }
        public int StockDealDetailID { get; set; }
        public int StockDealID { get; set; }
        public int StockItemID { get; set; }
        public double Discount { get; set; }
        public int Quantity { get; set; }
        public int VisibleStatusID { get; set; }
        public List<StockDealDetailMV> DealItems { get; set; }

        public void GetDealItems(int? dealid)
        {
            DealItems = new List<StockDealDetailMV>();
            foreach (var item in db.StockDealDetailTables.Where(d=>d.StockDealID == dealid).ToList())
            {
                var visible = db.VisibleStatusTables.Find(item.VisibleStatusID).VisibleStatus;
                var stockitem = item.StockItemTable;
                DealItems.Add(new StockDealDetailMV()
                {
                    StockDealDetailID = item.StockDealDetailID,
                    StockDealID = item.StockDealID,
                    StockItemID = item.StockItemID,
                    Discount = item.Discount,
                    Quantity = item.Quantity,
                    VisibleStatus = visible,
                    ItemPhotoPath = stockitem.ItemPhotoPath,
                    StockItemTitle = stockitem.StockItemTitle,
                    ItemSize = stockitem.ItemSize,
                    UnitPrice = stockitem.UnitPrice,
                    OrderType = stockitem.OrderTypeTable.OrderType
                });
            }
        }
    }
}

StockDealItem Action Code : // create and edit. 

[HttpGet]
        public ActionResult StockDealItem(int dealid,int stockdealdetailid)
        {
            if (string.IsNullOrEmpty(Convert.ToString(Session["UserTypeID"])))
            {
                return RedirectToAction("Index", "Home");
            }
            var stockdealdetails = new CRU_StockDealDetailMV(dealid, stockdealdetailid);
            ViewBag.VisibleStatusID = new SelectList(Db.VisibleStatusTables.ToList(), "VisibleStatusID", "VisibleStatus", stockdealdetails.VisibleStatusID);
            ViewBag.StockItemID = new SelectList(Db.StockItemTables.ToList(), "StockItemID", "StockItemTitle", stockdealdetails.StockItemID);
            return View(stockdealdetails);
        }

        [HttpPost]
        public ActionResult StockDealItem(CRU_StockDealDetailMV cru_StockDealDetailMV)
        {
            if (string.IsNullOrEmpty(Convert.ToString(Session["UserTypeID"])))
            {
                return RedirectToAction("Index", "Home");
            }
            int userid = 0;
            int.TryParse(Convert.ToString(Session["UserID"]), out userid);
            if (ModelState.IsValid)
            {
                if (cru_StockDealDetailMV.StockDealDetailID == 0)
                {
                    var checkexist = Db.StockDealDetailTables.Where(
                        s => s.StockItemID == cru_StockDealDetailMV.StockItemID
                        && s.VisibleStatusID == 1).FirstOrDefault();
                    if (checkexist == null)
                    {
                        var newitem = new StockDealDetailTable();
                        newitem.StockDealID = cru_StockDealDetailMV.StockDealID;
                        newitem.StockItemID = cru_StockDealDetailMV.StockItemID;
                        newitem.Discount = cru_StockDealDetailMV.Discount;
                        newitem.Quantity = cru_StockDealDetailMV.Quantity;
                        newitem.VisibleStatusID = cru_StockDealDetailMV.VisibleStatusID;
                        Db.StockDealDetailTables.Add(newitem);
                        Db.SaveChanges();
                        return RedirectToAction("StockDealItem", new { dealid = cru_StockDealDetailMV.StockDealID, stockdealdetailid = 0 });
                    }
                    else
                    {
                        ModelState.AddModelError("StockItemID", "Already Exist!");
                    }
                }
                else
                {
                    var checkexist = Db.StockDealDetailTables.Where(
                       s => s.StockItemID == cru_StockDealDetailMV.StockItemID
                       && s.VisibleStatusID == 1 
                       && s.StockDealDetailID != cru_StockDealDetailMV.StockDealDetailID).FirstOrDefault();
                    if (checkexist == null)
                    {
                        var edititem = Db.StockDealDetailTables.Find(cru_StockDealDetailMV.StockDealDetailID);
                        edititem.StockDealID = cru_StockDealDetailMV.StockDealID;
                        edititem.StockItemID = cru_StockDealDetailMV.StockItemID;
                        edititem.Discount = cru_StockDealDetailMV.Discount;
                        edititem.Quantity = cru_StockDealDetailMV.Quantity;
                        edititem.VisibleStatusID = cru_StockDealDetailMV.VisibleStatusID;
                        Db.Entry(edititem).State = System.Data.Entity.EntityState.Modified;
                        Db.SaveChanges();
                        return RedirectToAction("StockDealItem", new { dealid = cru_StockDealDetailMV.StockDealID, stockdealdetailid = 0 });
                    }
                    else
                    {
                        ModelState.AddModelError("StockItemID", "Already Exist!");
                    }
                }
            }
            ViewBag.VisibleStatusID = new SelectList(Db.VisibleStatusTables.ToList(), "VisibleStatusID", "VisibleStatus", cru_StockDealDetailMV.VisibleStatusID);
            ViewBag.StockItemID = new SelectList(Db.StockItemTables.ToList(), "StockItemID", "StockItemTitle", cru_StockDealDetailMV.StockItemID);
            return View(cru_StockDealDetailMV);
        }

Next we are going to design menu view 'StockDealItem View', code show below 

>  StockDealItem View Code : 

@model PizzaRestaurantDrink.Models.CRU_StockDealDetailMV
@{
    ViewBag.Title = "Deal";
}
<!-- Breadcrumb Start -->
<div class="bread-crumb">
    <div class="container">
        <div class="matter">
            <h2>Deal Items</h2>
            <ul class="list-inline">
                <li class="list-inline-item"><a href="@Url.Content("~/Home/Index")">HOME</a></li>
                <li class="list-inline-item"><a href="@Url.Content("~/Stock/StockDealItem?dealid="+Model.StockDealID+"&stockdealdetailid="+Model.StockDealDetailID+"")">Stock Deal Items</a></li>
            </ul>
        </div>
    </div>
</div>
<!-- Breadcrumb End -->
<div class="contactus">
    <div class="container">
        <div class="row">
            <!-- Title Content Start -->
            <div class="col-sm-12 commontop text-center">
                <h4>Deal Items</h4>
                <div class="divider style-1 center">
                    <span class="hr-simple left"></span>
                    <i class="icofont icofont-ui-press hr-icon"></i>
                    <span class="hr-simple right"></span>
                </div>
            </div>
            <!-- Title Content End -->

            <div class="col-md-12 col-12">
                <!--  user type form Start  -->
                @using (Html.BeginForm("StockDealItem", "Stock", FormMethod.Post, new { @enctype = "multipart/form-data", @class = "form-horizontal" }))
                {
                    @Html.AntiForgeryToken()
                    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
                    @Html.HiddenFor(model => model.StockDealID)
                    @Html.HiddenFor(model => model.StockDealDetailID)
                    <div class="row">
                        <div class="col-md-6">
                            <div class="form-group">
                                <div class="col-md-12 col-sm-12 col-12">
                                    Select Item :
                                    @Html.DropDownList("StockItemID", null, "--Choose Item--", htmlAttributes: new { @class = "form-control" })
                                    @Html.ValidationMessageFor(model => model.StockItemID, "", new { @class = "text-danger" })
                                </div>
                            </div>

                            <div class="form-group">
                                <div class="col-md-12 col-sm-12 col-12">
                                    Enter Quantity :
                                    @Html.EditorFor(model => model.Quantity, new { htmlAttributes = new { @class = "form-control", @placeholder = "Enter Deal Price" } })
                                    @Html.ValidationMessageFor(model => model.Quantity, "", new { @class = "text-danger" })
                                </div>
                            </div>
                            <div class="form-group">
                                <div class="col-md-12 col-sm-12 col-12">
                                    Discount :
                                    @Html.EditorFor(model => model.Discount, new { htmlAttributes = new { @class = "form-control", @placeholder = "Enter Discount" } })
                                    @Html.ValidationMessageFor(model => model.Discount, "", new { @class = "text-danger" })
                                </div>
                            </div>

                        </div>
                        <div class="col-md-6">
                            <div class="form-group">
                                <div class="col-md-12 col-sm-12 col-12">
                                    Select Status :
                                    @Html.DropDownList("VisibleStatusID", null, "--Choose Status--", htmlAttributes: new { @class = "form-control" })
                                    @Html.ValidationMessageFor(model => model.VisibleStatusID, "", new { @class = "text-danger" })
                                </div>
                            </div>
                            <div class="form-group">
                                <div class="col-md-12 col-sm-12 col-12">
                                    <div class="buttons">
                                        @if (Model.StockDealID == 0)
                                        {
                                            <input class="btn btn-theme btn-md btn-wide" type="submit" value="Create" />
                                        }
                                        else
                                        {
                                            <input class="btn btn-theme btn-md btn-wide" type="submit" value="Update" />
                                        }
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                }
                <!--  user type form End  -->
            </div>

        </div>
    </div>
</div>

<div class="menu">
    <div class="menu-inner">
        <div class="container">
            <div class="row ">
                <div class="col-sm-12 col-12 commontop text-center">
                    <h4>Deal Items</h4>
                    <div class="divider style-1 center">
                        <span class="hr-simple left"></span>
                        <i class="icofont icofont-ui-press hr-icon"></i>
                        <span class="hr-simple right"></span>
                    </div>
                </div>

                <!--  List Start  -->
                <div class="col-sm-12 col-12">
                    <!--  Menu Tabs Content Start  -->
                    <div class="tab-content">
                        <!--  Menu Tab Start  -->
                        <div class="row">
                            @{
                                foreach (var item in Model.DealItems)
                                {
                                    <div class="col-md-6 col-sm-6 col-12">
                                        <!-- Box Start -->
                                        <div class="box">
                                            <div class="image">
                                                <img src="@Url.Content(item.ItemPhotoPath)" alt="image" title="@item.StockItemTitle" class="img-fluid" style="width:130px; height:200px; max-width: 100%; height: auto;" />

                                            </div>
                                            <div class="caption">
                                                <h4>@item.StockItemTitle | Discount: @item.Discount PKR | (@item.VisibleStatus)</h4>
                                                <p class="des">Quantity : (@item.Quantity) | Order Type : (@item.OrderType)</p>
                                                <span>
                                                    @Html.ActionLink("Edit", "StockDealItem", new { dealid = item.StockDealID, stockdealdetailid = item.StockDealDetailID }, new { @class = "btn btn-theme btn-md btn-wide" })
                                                </span>
                                                <div class="price">@item.ItemSize</div>
                                            </div>
                                        </div>
                                        <!-- Box End -->
                                    </div>
                                }
                            }
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

so once all above steps is done then run the application... 

Comments