107 lines
5.3 KiB
Plaintext
107 lines
5.3 KiB
Plaintext
@model List<CarneiroTech.Models.CaseModel>
|
|
@{
|
|
var lang = LanguageService.GetCurrentLanguage(Context);
|
|
var selectedTag = ViewData["SelectedTag"] as string;
|
|
var allTags = ViewBag.AllTags as List<string> ?? new List<string>();
|
|
}
|
|
|
|
<!-- Page Header-->
|
|
<header class="masthead" style="padding: 150px 0 100px;">
|
|
<div class="container">
|
|
<div class="masthead-subheading">@SiteStrings.Get("cases.header.subtitle", lang)</div>
|
|
<div class="masthead-heading text-uppercase">@SiteStrings.Get("cases.header.title", lang)</div>
|
|
</div>
|
|
</header>
|
|
|
|
<!-- Cases List-->
|
|
<section class="page-section bg-light">
|
|
<div class="container">
|
|
<!-- Tags Filter -->
|
|
@if (allTags.Any())
|
|
{
|
|
<div class="row mb-5">
|
|
<div class="col-12 text-center">
|
|
<h5 class="mb-3">@SiteStrings.Get("cases.filter.title", lang)</h5>
|
|
<div class="btn-group-wrap">
|
|
<a href="/cases" class="btn @(string.IsNullOrEmpty(selectedTag) ? "btn-primary" : "btn-outline-primary") m-1">@SiteStrings.Get("cases.filter.all", lang)</a>
|
|
@foreach (var tag in allTags)
|
|
{
|
|
<a href="/cases?tag=@tag" class="btn @(selectedTag == tag ? "btn-primary" : "btn-outline-primary") m-1">@tag</a>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
<!-- Cases Grid -->
|
|
<div class="row">
|
|
@if (Model != null && Model.Any())
|
|
{
|
|
foreach (var caseItem in Model)
|
|
{
|
|
<div class="col-lg-4 col-sm-6 mb-4">
|
|
<!-- Portfolio item -->
|
|
<div class="portfolio-item h-100 shadow-sm border-0">
|
|
<a class="portfolio-link" href="/cases/@caseItem.Metadata.Slug">
|
|
<div class="portfolio-hover">
|
|
<div class="portfolio-hover-content">
|
|
<p class="text-white fw-bold px-3">@caseItem.Metadata.Summary</p>
|
|
</div>
|
|
</div>
|
|
@{
|
|
var imgPath = !string.IsNullOrEmpty(caseItem.Metadata.Thumbnail) ? caseItem.Metadata.Thumbnail : caseItem.Metadata.Image;
|
|
}
|
|
@if (!string.IsNullOrEmpty(imgPath))
|
|
{
|
|
<img class="img-fluid w-100" src="@imgPath" alt="@caseItem.Metadata.Title" style="height: 250px; object-fit: cover;" />
|
|
}
|
|
else
|
|
{
|
|
<div class="d-flex align-items-center justify-content-center" style="height: 250px; background: linear-gradient(135deg, #C42127 0%, #8B1E23 100%);">
|
|
<i class="fas fa-laptop-code fa-3x text-white opacity-50"></i>
|
|
</div>
|
|
}
|
|
</a>
|
|
<div class="portfolio-caption text-start p-3">
|
|
<div class="badge bg-primary mb-2">@caseItem.Metadata.Category</div>
|
|
<div class="portfolio-caption-heading h5 fw-bold mb-1">@caseItem.Metadata.Title</div>
|
|
<div class="portfolio-caption-subheading text-muted small mb-2">
|
|
<i class="fas fa-microchip me-1"></i> @caseItem.Metadata.DeviceModel
|
|
</div>
|
|
|
|
<div class="bg-light p-2 rounded border-start border-4 border-success mb-3">
|
|
<span class="text-muted small d-block">@SiteStrings.Get("case.savings", lang) estimada</span>
|
|
<span class="text-success fw-bold h5 mb-0">R$ @caseItem.Metadata.EstimatedSavings.ToString("N2")</span>
|
|
</div>
|
|
|
|
<div class="mt-2">
|
|
@foreach (var tag in caseItem.Metadata.Tags.Take(3))
|
|
{
|
|
<span class="badge bg-secondary opacity-75 me-1">@tag</span>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
}
|
|
else
|
|
{
|
|
<div class="col-12 text-center">
|
|
<p class="lead text-muted">
|
|
@if (!string.IsNullOrEmpty(selectedTag))
|
|
{
|
|
<span>@string.Format(SiteStrings.Get("cases.empty.tag", lang), selectedTag)</span>
|
|
}
|
|
else
|
|
{
|
|
<span>@SiteStrings.Get("cases.empty.all", lang)</span>
|
|
}
|
|
</p>
|
|
<a href="/cases" class="btn btn-primary">@SiteStrings.Get("cases.viewall", lang)</a>
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
</section>
|