Skip to content

Commit

Permalink
Merge pull request #5 from LKlitzke/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
LKlitzke authored Nov 4, 2023
2 parents 7ae91b7 + 491ce42 commit fc723c1
Show file tree
Hide file tree
Showing 20 changed files with 5,122 additions and 245 deletions.
64 changes: 0 additions & 64 deletions .github/workflows/master_liddellroch-lks.yml

This file was deleted.

5 changes: 4 additions & 1 deletion .github/workflows/master_liddellroch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ jobs:
- name: Build with dotnet
run: dotnet build --configuration Release

- name: Run UnitTests Project
run: dotnet test --configuration Release

- name: dotnet publish
run: dotnet publish -c Release -o ${{env.DOTNET_ROOT}}/myapp

Expand Down Expand Up @@ -53,5 +56,5 @@ jobs:
with:
app-name: 'liddellroch'
slot-name: 'Production'
publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_B675080F7822454C85927648C820664B }}
publish-profile: ${{ secrets.AZURE_CREDENTIALS }}
package: .
63 changes: 56 additions & 7 deletions LiddellRoch.Web/Areas/Cliente/Controllers/HomeController.cs
Original file line number Diff line number Diff line change
@@ -1,34 +1,83 @@
using LiddellRoch.Web.Models;
using LiddellRoch.DataAccess.Repository.Interfaces;
using LiddellRoch.Models;
using LiddellRoch.Utility;
using LiddellRoch.Web.Models;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Stripe;
using System.Diagnostics;
using System.Security.Claims;

namespace LiddellRoch.Web.Areas.Cliente.Controllers
{
[Area("Cliente")]
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;

public HomeController(ILogger<HomeController> logger)
private readonly IUnitOfWork _unitOfWork;
public HomeController(ILogger<HomeController> logger, IUnitOfWork unitOfWork)
{
_logger = logger;
_unitOfWork = unitOfWork;
}

public IActionResult Index()
{
return View();
IEnumerable<Bicicleta> bikeList = _unitOfWork.Bicicleta.GetAll(includeProperties: "Categoria,Marca,ImagensProduto"); //,ProductImage
return View(bikeList);
}

public IActionResult Privacy()
public IActionResult Detalhes(int bikeId)
{
return View();
CarrinhoCompras cart = new()
{
Bicicleta = _unitOfWork.Bicicleta.GetFirstOrDefault(u => u.Id == bikeId, includeProperties: "Categoria,Marca,ImagensProduto"),
Quantidade = 1,
BicicletaId = bikeId
};
return View(cart);
}

[HttpPost]
[Authorize]
public IActionResult Detalhes(CarrinhoCompras shoppingCart)
{
var claimsIdentity = (ClaimsIdentity)User.Identity;
var userId = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier).Value;

shoppingCart.ApplicationUserId = userId;

CarrinhoCompras cartDb = _unitOfWork.CarrinhoCompras.GetFirstOrDefault(u => u.ApplicationUserId == userId
&& u.BicicletaId == shoppingCart.BicicletaId);

if (cartDb != null)
{
cartDb.Quantidade += shoppingCart.Quantidade;
_unitOfWork.CarrinhoCompras.Update(cartDb);
_unitOfWork.Save();
}
else
{
_unitOfWork.CarrinhoCompras.Add(shoppingCart);
_unitOfWork.Save();
HttpContext.Session.SetInt32(SD.SessionCart, _unitOfWork.CarrinhoCompras.GetAll(u => u.ApplicationUserId == userId).Count());
}
TempData["success"] = "Carrinho atualizado com sucesso!";
//TempData["error"] = "Carrinho atualizado SSSSSS!";
return RedirectToAction(nameof(Index));
}

public IActionResult AboutUs()
{
return View();
}


public IActionResult Privacy()
{
return View();
}

[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
Expand Down
135 changes: 135 additions & 0 deletions LiddellRoch.Web/Areas/Cliente/Views/Home/Detalhes.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
@model CarrinhoCompras

<form method="post">
<input hidden asp-for="BicicletaId" />
<div class="card shadow border-0 mt-4 mb-4">
<div class="card-header bg-secondary bg-gradient text-light py-4">
<div class="row">
<div class="col-12 text-center">
<h3 class="text-white text-uppercase">@Model.Bicicleta.Nome</h3>
<p class="text-white-50 fw-semibold mb-0">por @Model.Bicicleta.Marca</p>
</div>
</div>
</div>
<div class="card-body">
<div class="py-3">
<div class="row">
<div class="col-6 col-md-2 offset-lg-1 pb-1">
<a asp-action="Index" class="btn btn-outline-primary bg-gradient mb-5 fw-semibold btn-sm text-uppercase">
<small>Voltar</small>
</a>
</div>
</div>
<div class="row">
<div class="col-12 col-lg-3 offset-lg-1 text-center mb-3">
@if (Model.Bicicleta.ImagensProduto != null && Model.Bicicleta.ImagensProduto.Count > 0)
{
<div id="carouselExampleIndicators" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-indicators">
@foreach (var imageWithIndex in Model.Bicicleta.ImagensProduto
.Select((image, index) => new { Image = image, Index = index }))
{
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="@imageWithIndex.Index"
class="@(imageWithIndex.Index==0?"active":"")" aria-current="true" aria-label="Slide 1"></button>
}
</div>
<div class="carousel-inner">
@foreach (var imageWithIndex in Model.Bicicleta.ImagensProduto
.Select((image, index) => new { Image = image, Index = index }))
{
<div class="@(imageWithIndex.Index==0?"carousel-item active":"carousel-item")">
<img src="@imageWithIndex.Image.ImagemUrl" class="d-block w-100" alt="...">
</div>
}
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>

}
else
{
<img src="@("https://source.unsplash.com/random/500x600?sig=" + Model.BicicletaId)" class="card-img-top rounded" />
}

</div>
<div class="col-12 col-lg-6 offset-lg-1">

<div class="col-12 col-md-6 pb-4">
<span class="badge">@Model.Bicicleta.Categoria.Nome</span>
</div>
<div class="row ps-2">
<h6 class="text-dark text-opacity-50 ">Estoque: @Model.Bicicleta.Estoque</h6>
</div>
<div class="row ps-2">
<h6 class="text-dark text-opacity-50 pb-2">
Preço:
<span class="text-decoration-line-through">
@Model.Bicicleta.Preco.ToString("c")
</span>
</h6>
</div>
@* <div class="row text-center ps-2">
<div class="p-1 col-3 col-lg-2 bg-white border-bottom">
<div class="text-dark text-opacity-50 fw-semibold">Quantidade</div>
</div>
<div class="p-1 col-3 col-lg-2 bg-white border-bottom">
<div class="text-dark text-opacity-50 fw-semibold">1-50</div>
</div>
<div class="p-1 col-3 col-lg-2 bg-white border-bottom">
<div class="text-dark text-opacity-50 fw-semibold">51-100</div>
</div>
<div class="p-1 col-3 col-lg-2 bg-white border-bottom">
<div class="text-dark text-opacity-50 fw-semibold">100+</div>
</div>
</div>
<div class="row text-center ps-2">
<div class="p-1 col-3 col-lg-2 bg-white text-warning fw-bold">
<div>Preço</div>
</div>
<div class="p-1 col-3 col-lg-2 bg-white text-warning fw-bold">
<div>@Model.Product.Price.ToString("c")</div>
</div>
<div class="p-1 col-3 col-lg-2 bg-white text-warning fw-bold">
<div>@Model.Product.Price50.ToString("c")</div>
</div>
<div class="p-1 col-3 col-lg-2 bg-white text-warning fw-bold">
<div>@Model.Product.Price100.ToString("c")</div>
</div>
</div> *@
<div class="row pl-2 my-3">
<p class="text-secondary lh-sm">@Html.Raw(Model.Bicicleta.Descricao)</p>
</div>
<div class="row pl-2 mb-3">
<div class="col-md-5">
<div class="input-group mb-3">
<span class="input-group-text bg-primary text-white border-0 fw-semibold"
id="inputGroup-sizing-default">
Unidades
</span>
<input asp-for="Quantidade" type="number" value="1" class="form-control text-end"
aria-label="Sizing example input" aria-describedby="inputGroup-sizing-default" />
</div>
</div>
</div>
<div class="row">
<div class="col-12 col-md-6 pb-1">
<button type="submit"
class="btn btn-primary bg-gradient w-100 py-2 text-uppercase fw-semibold">
<i class="bi bi-cart-plus-fill"></i> Adicionar ao carrinho
</button>
</div>
</div>
</div>

</div>
</div>
</div>
</div>
</form>
Loading

0 comments on commit fc723c1

Please sign in to comment.