eCommerce Website Part 22 Products Colors

   eCommerce Website  Part 22 Products Colors

Hi, Dear's here we learn how to implement eCommerce 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 Sub Categories for more details click here: watch vedio

> ColorTypeMV Code : 

public class ColorTypeMV
    {
        [Display(Name= "Unique No")]
        public int ColorTypeID { get; set; }
        [Display(Name = "Color")]
        public string ColorTitle { get; set; }
        [Display(Name = "Color Code")]
        public string ColorCode { get; set; }
        [Display(Name = "Status")]
        public string Status { get; set; }
    }

> Reg_ColorTypeMV Code : 

public class Reg_ColorTypeMV
    {
        public Reg_ColorTypeMV()
        {
            List_Status = new List<StatusMV>();
            foreach (var status in new DatabaseLayer.Pro_EcommerceDbEntities().StatusTables.ToList())
            {
                List_Status.Add(new StatusMV()
                {
                    StatusID = status.StatusID,
                    StatusTitle = status.StatusTitle
                });
            }

            List_Colores = new List<ColorTypeMV>();
            foreach (var color in new DatabaseLayer.Pro_EcommerceDbEntities().ColorTypeTables.ToList())
            {
                var status = new DatabaseLayer.Pro_EcommerceDbEntities().StatusTables.Find(color.StatusID);
                List_Colores.Add(new ColorTypeMV()
                {
                    ColorTypeID = color.ColorTypeID,
                    ColorTitle = color.ColorTitle,
                    ColorCode = color.ColorCode,
                    Status = status.StatusTitle
                });
            }
        }

        public Reg_ColorTypeMV(int? id)
        {
            List_Status = new List<StatusMV>();
            foreach (var status in new DatabaseLayer.Pro_EcommerceDbEntities().StatusTables.ToList())
            {
                List_Status.Add(new StatusMV()
                {
                    StatusID = status.StatusID,
                    StatusTitle = status.StatusTitle
                });
            }

            List_Colores = new List<ColorTypeMV>();
            foreach (var color in new DatabaseLayer.Pro_EcommerceDbEntities().ColorTypeTables.ToList())
            {
                var status = new DatabaseLayer.Pro_EcommerceDbEntities().StatusTables.Find(color.StatusID);
                List_Colores.Add(new ColorTypeMV()
                {
                    ColorTypeID = color.ColorTypeID,
                    ColorTitle = color.ColorTitle,
                    ColorCode = color.ColorCode,
                    Status = status.StatusTitle
                });
            }

            var editcolor = new DatabaseLayer.Pro_EcommerceDbEntities().ColorTypeTables.Find(id);
            if (editcolor != null)
            {
                ColorTypeID = editcolor.ColorTypeID;
                ColorTitle = editcolor.ColorTitle;
                ColorCode = editcolor.ColorCode;
                StatusID = editcolor.StatusID;
            }
            else
            {
                ColorTypeID = 0;
                ColorTitle = string.Empty;
                ColorCode = string.Empty;
                StatusID = 0;
            }
        }

        public int ColorTypeID { get; set; }
        [Required(ErrorMessage = "Required*")]
        [Display(Name = "Color Title")]
        public string ColorTitle { get; set; }
        [Required(ErrorMessage = "Required*")]
        [Display(Name = "Color Code")]
        public string ColorCode { get; set; }
        [Required(ErrorMessage = "Required*")]
        [Display(Name = "Select Status")]
        public int StatusID { get; set; }
        public virtual List<ColorTypeMV> List_Colores { get; set; }
        public virtual List<StatusMV> List_Status { get; set; }

    }

So Now Create Setting Controller and then add below code.
> ColorType Action Code :  
   add below code. 

public class SettingController : Controller
    {
        Pro_EcommerceDbEntities DB = new Pro_EcommerceDbEntities();
        public ActionResult ColorType(int? id)
        {
            if (string.IsNullOrEmpty(Convert.ToString(Session["UserID"])))
            {
                return RedirectToAction("Login", "User");
            }
            int userid = 0;
            int.TryParse(Convert.ToString(Session["UserID"]), out userid);
            var color = new Reg_ColorTypeMV(id);
            return View(color);
        }
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult ColorType(Reg_ColorTypeMV reg_ColorTypeMV)
        {
            if (string.IsNullOrEmpty(Convert.ToString(Session["UserID"])))
            {
                return RedirectToAction("Login", "User");
            }
            int userid = 0;
            int.TryParse(Convert.ToString(Session["UserID"]), out userid);

            if (ModelState.IsValid)
            {
                if (reg_ColorTypeMV.ColorTypeID == 0)
                {
                    var checkexist = DB.ColorTypeTables.Where(b => b.ColorCode == reg_ColorTypeMV.ColorCode).FirstOrDefault();
                    if (checkexist == null)
                    {
                        var createcolor = new ColorTypeTable();
                        createcolor.ColorTitle = reg_ColorTypeMV.ColorTitle;
                        createcolor.ColorCode = reg_ColorTypeMV.ColorCode;
                        createcolor.StatusID = reg_ColorTypeMV.StatusID;
                        DB.ColorTypeTables.Add(createcolor);
                        DB.SaveChanges();
                        return RedirectToAction("ColorType", new { id = 0 });
                    }
                    else
                    {
                        ModelState.AddModelError("ColorCode", "Already Added!");
                    }
                }
                else
                {
                    var checkexist = DB.ColorTypeTables.Where(b => b.ColorCode == reg_ColorTypeMV.ColorCode && b.ColorTypeID != reg_ColorTypeMV.ColorTypeID).FirstOrDefault();
                    if (checkexist == null)
                    {
                        var editColorType = DB.ColorTypeTables.Find(reg_ColorTypeMV.ColorTypeID);
                        editColorType.ColorTitle = reg_ColorTypeMV.ColorTitle;
                        editColorType.ColorCode = reg_ColorTypeMV.ColorCode;
                        editColorType.StatusID = reg_ColorTypeMV.StatusID;
                        DB.Entry(editColorType).State = System.Data.Entity.EntityState.Modified;
                        DB.SaveChanges();
                        return RedirectToAction("ColorType", new { id = 0 });
                    }
                    else
                    {
                        ModelState.AddModelError("ColorCode", "Already Added!");
                    }
                }
            }
            return View(reg_ColorTypeMV);
        }
    }

 > ColorType View Code : 

@model eCommerceUI.Models.Reg_ColorTypeMV
@{
    ViewBag.Title = "Colores";
}
<div class="container">
    <div class="page-width">
        @using (Html.BeginForm())
        {
            @Html.AntiForgeryToken()
            <hr />
            <h3 class="docs-title text-center">Products Colors</h3>
            <div class="form-horizontal">
                @Html.ValidationSummary(true, "", new { @class = "text-danger" })
                @Html.HiddenFor(model => model.ColorTypeID)
                <div class="row" style="margin-left:1px;">
                    <div class="form-group col-md-3">
                        @Html.LabelFor(model => model.ColorTitle, "Enter Color Title", htmlAttributes: new { @class = "control-label" })
                        @Html.EditorFor(model => model.ColorTitle, new { htmlAttributes = new { @class = "form-control" } })
                        @Html.ValidationMessageFor(model => model.ColorTitle, "", new { @class = "text-danger" })
                    </div>

                    <div class="form-group col-md-3">
                        @Html.LabelFor(model => model.ColorCode, "Enter Color Code", htmlAttributes: new { @class = "control-label" })
                        @Html.EditorFor(model => model.ColorCode, new { htmlAttributes = new { @class = "form-control" } })
                        @Html.ValidationMessageFor(model => model.ColorCode, "", new { @class = "text-danger" })
                    </div>

                    <div class="form-group col-md-3">
                        @Html.LabelFor(model => model.StatusID, "Select Status", htmlAttributes: new { @class = "control-label" })
                        @Html.DropDownList("StatusID", new SelectList(Model.List_Status, "StatusID", "StatusTitle", Model.StatusID), "--Choose--", htmlAttributes: new { @class = "form-control" })
                        @Html.ValidationMessageFor(model => model.StatusID, "", new { @class = "text-danger" })
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-md-offset-2 col-md-10">
                        @if (Model.ColorTypeID == 0)
                        {
                            <input type="submit" value="Create" class="btn btn--secondary" />
                        }
                        else
                        {
                            <input type="submit" value="Update" class="btn btn--secondary" />
                        }
                    </div>
                </div>
            </div>

        }
        <hr />
        <h3 class="docs-title">Colors List</h3>
        <form autocomplete="off">
            <p>
                <div style="float:right;">
                    <input type="text"
                           style="background-image: url('@Url.Content("~/Content/Template/images/searchicon.png")');
                           background-position: 10px 5px;
                           background-repeat: no-repeat;
                           font-size: 16px;
                           padding: 12px 20px 12px 40px;
                           border: 1px solid #ddd;
                           margin-bottom: 12px; "
                           class="search form-control"
                           id="myInput"
                           placeholder="What you looking for?">
                </div>
            </p>
        </form>

        <div class="table">
            <table class="responsive-table">
                <thead>
                    <tr>
                        <td>#Unique No</td>
                        <td>Color Title</td>
                        <td>Color</td>
                        <td>Status</td>
                        <th>Action</th>
                    </tr>
                </thead>
                <tbody id="myTable">
                    @foreach (var item in Model.List_Colores)
                    {
                        <tr class="responsive-table-row">
                            <td>#@Html.DisplayFor(modelItem => item.ColorTypeID)</td>
                            <td>@Html.DisplayFor(modelItem => item.ColorTitle)
                            </td>
                            <td>
                                <span style="height: 25px;
                                            width: 25px;
                                            background-color: @item.ColorCode;
                                            border-radius: 50%;
                                            display: inline-block;"></span>
                            </td>
                            <td>
                                @if (item.Status == "Visible")
                                {
                                    <span class="label label--new mb-3 mr-3 text-nowrap">
                                        @Html.DisplayFor(modelItem => item.Status)
                                    </span>
                                }
                                else
                                {
                                    <span class="label label--sale mb-3 mr-3 text-nowrap">
                                        @Html.DisplayFor(modelItem => item.Status)
                                    </span>
                                }

                            </td>
                            <td>
                                @Html.ActionLink("Edit", "ColorType", new { id = item.ColorTypeID }, new { @class = "btn" })
                            </td>
                        </tr>
                    }
                <tbody>
            </table>
        </div>

    </div>
</div>