Clear        


                
                    @model IEnumerable<ProductResponse>

@* Generated from Custom MVC Template. *@
@* Model namespace using directive should be added to _ViewImports.cshtml. *@

@{
    var containerDivClass = "container-fluid"; // changed from "container" to "container-fluid" for full width
}
@{
    /*
    ViewBag and ViewData are the same collection (dictionary).
    They carry extra data other than the model from a controller action to its view, or between views.
    The value assigned will be shown in Views\Shared\_Layout.cshtml view's title tag of the head tag.
    */
    ViewData["Title"] = "Product List";
}

<div class="@containerDivClass">
    <h1>@ViewData["Title"]</h1>
    <hr />
</div>

@if (Model is not null)
{
    <form asp-action="Index" autocomplete="off">
        <div class="@containerDivClass">
            <div class="row">
                <div class="col-12 text-danger">
                    @*
                    TempData is used to carry extra data to the redirected controller action's view.
                    *@
                    @TempData["Message"]
                </div>
            </div>
            <div class="row mb-3">
                <div class="col-10 text-success">
                    @Model.Count() record(s) found.
                </div>
                <div class="col-2 text-end">
                @if (User.IsInRole("Admin"))
                {
                    <a asp-action="Create">Create</a>
                    @:&nbsp;
                }
                    <a asp-action="List">Search</a>
                </div>
            </div>
            <table class="table table-striped table-hover">
                <thead class="table-secondary">
                    <tr>
                        <th>
                            @Html.DisplayNameFor(model => model.Name)
                        </th>
                        <th>
                            @Html.DisplayNameFor(model => model.UnitPriceF)
                        </th>
                        <th>
                            @Html.DisplayNameFor(model => model.StockAmountF)
                        </th>
                        <th>
                            @Html.DisplayNameFor(model => model.ExpirationDateF)
                        </th>
                        <th>
                            @Html.DisplayNameFor(model => model.Category)
                        </th>
                        <th></th>
                    </tr>
                </thead>
                <tbody>
		            @foreach (var item in Model) {
				        <tr>
					        <td>
						        @Html.DisplayFor(modelItem => item.Name)
					        </td>
					        <td>
						        @Html.DisplayFor(modelItem => item.UnitPriceF)
					        </td>
					        <td>
						        @Html.DisplayFor(modelItem => item.StockAmountF)
					        </td>
					        <td>
						        @Html.DisplayFor(modelItem => item.ExpirationDateF)
					        </td>
					        <td>
						        @Html.DisplayFor(modelItem => item.Category)
					        </td>
					        <td class="text-end w-25">
                            @if (User.Identity.IsAuthenticated)
                            {
                                <a asp-action="Add" asp-controller="Carts" asp-route-productId="@item.Id">Add to Cart</a>
                                @:&nbsp;|&nbsp;
                                <a asp-action="Details" asp-route-id="@item.Id">Details</a>
                                @if (User.IsInRole("Admin"))
                                {
						            @:&nbsp;|&nbsp;
						            <a asp-action="Edit" asp-route-id="@item.Id">Edit</a>
                                    @:&nbsp;|&nbsp;
						            <a asp-action="Delete" asp-route-id="@item.Id">Delete</a>
                                }
                            }
					        </td>
				        </tr>
		            }
                </tbody>
            </table>
        </div>
    </form>
}