Compare commits

..

5 Commits

Author SHA1 Message Date
FUH22860
6c1b7bd336
Revert "Yum04 82 bestelluebersicht detail chefin" (#36)
Revert "Yum04 82 bestelluebersicht detail chefin (#33)"

This reverts commit cc4ffab409.
2023-06-22 23:40:28 +02:00
MET18937
e317144914
Add domainmodell admin (#34) 2023-06-22 22:58:49 +02:00
FUH22860
4b5f0c2b96
Feature/docker (#31)
* Add Docker capabilities

Changed launchSettings
Added Dockerfile && docker-compose with traefik labels

* Relocate launchSettings.json

* Delete workflows

Not needed anymore

* Add Docker for WebApi
Added docker-compose && Dockerfile

* Fix minor mistakes

---------

Co-authored-by: ProfessionalUwU <andre.fuhry@hopeless-cloud.xyz>
2023-06-22 22:46:35 +02:00
zha19115
cc4ffab409
Yum04 82 bestelluebersicht detail chefin (#33)
* Start

* Finish Yummy-Punkte

* Finish Feedback

* FBestätigung fertig

* Feddback changed button and text

* Feedback and confirm finish

* Deleted a break (Feedback confirm)

* Prototype not finished

* Erste Realisierung

* Little Fixes to all Pages

* Created neu razor page and css

* Finish BestelluebersichtD-Chefin

* New

---------

Co-authored-by: ProfessionalUwU <andre.fuhry@hopeless-cloud.xyz>
2023-06-22 22:05:45 +02:00
GEI22857
51a7751337
Footer und Kontakt fixes (#32)
ist okay
2023-06-22 21:45:43 +02:00
13 changed files with 208 additions and 57 deletions

View File

@ -1,29 +0,0 @@
name: Deploy blazor to GitHub Pages
on:
push:
branches: [ "dev" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 7.0
- name: Publish
run: dotnet publish --configuration Release -o release --nologo --runtime linux-x64 --self-contained src/y4f/y4f.csproj
- name: Commit wwwroot to GitHub Pages
uses: JamesIves/github-pages-deploy-action@v4
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: gh-pages
FOLDER: release/wwwroot
- name: Change base-tag in index.html from / to y4f
run: sed -i 's/<base href="\/" \/>/<base href="\/y4f\/" \/>/g' release/wwwroot/index.html
- name: Add .nojekyll file
run: touch release/wwwroot/.nojekyll

6
Dockerfile Normal file
View File

@ -0,0 +1,6 @@
FROM mcr.microsoft.com/dotnet/sdk:7.0
WORKDIR /App
COPY . ./
RUN dotnet restore
EXPOSE 5248
CMD /usr/bin/dotnet run --project /App/src/y4f/y4f.csproj

22
docker-compose.yml Normal file
View File

@ -0,0 +1,22 @@
version: "3.4"
services:
y4f:
build: .
ports:
- "5248:5248"
labels:
- traefik.docker.network=traefik
- traefik.enable=true
- traefik.http.routers.y4f.entrypoints=web-secure
- traefik.http.routers.y4f.rule=Host(`y4f.hopeless-cloud.xyz`)
- traefik.http.routers.y4f.tls=true
- traefik.http.routers.y4f.tls.certResolver=default
networks:
- default
- traefik
restart: unless-stopped
networks:
default:
name: y4f-default
traefik:
external: true

View File

@ -0,0 +1,124 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using WebApi.Data;
using WebApi.Models;
namespace WebApi.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class AdminsController : ControllerBase
{
private readonly WebApiContext _context;
public AdminsController(WebApiContext context)
{
_context = context;
}
// GET: api/Admins
[HttpGet]
public async Task<ActionResult<IEnumerable<Admin>>> GetAdmins()
{
if (_context.Admins == null)
{
return NotFound();
}
return await _context.Admins.ToListAsync();
}
// GET: api/Admins/5
[HttpGet("{id}")]
public async Task<ActionResult<Admin>> GetAdmin(int id)
{
if (_context.Admins == null)
{
return NotFound();
}
var admin = await _context.Admins.FindAsync(id);
if (admin == null)
{
return NotFound();
}
return admin;
}
// PUT: api/Admins/5
// To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754
[HttpPut("{id}")]
public async Task<IActionResult> PutAdmin(int id, Admin admin)
{
if (id != admin.Id)
{
return BadRequest();
}
_context.Entry(admin).State = EntityState.Modified;
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!AdminExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return NoContent();
}
// POST: api/Admins
// To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754
[HttpPost]
public async Task<ActionResult<Admin>> PostAdmin(Admin admin)
{
if (_context.Admins == null)
{
return Problem("Entity set 'WebApiContext.Admins' is null.");
}
_context.Admins.Add(admin);
await _context.SaveChangesAsync();
return CreatedAtAction("GetAdmin", new { id = admin.Id }, admin);
}
// DELETE: api/Admins/5
[HttpDelete("{id}")]
public async Task<IActionResult> DeleteAdmin(int id)
{
if (_context.Admins == null)
{
return NotFound();
}
var admin = await _context.Admins.FindAsync(id);
if (admin == null)
{
return NotFound();
}
_context.Admins.Remove(admin);
await _context.SaveChangesAsync();
return NoContent();
}
private bool AdminExists(int id)
{
return (_context.Admins?.Any(e => e.Id == id)).GetValueOrDefault();
}
}
}

View File

@ -25,6 +25,7 @@ public partial class WebApiContext : DbContext
public virtual DbSet<Menuitemueberkategorie> Menuitemueberkategories { get; set; } public virtual DbSet<Menuitemueberkategorie> Menuitemueberkategories { get; set; }
public virtual DbSet<Rabatt> Rabatts { get; set; } public virtual DbSet<Rabatt> Rabatts { get; set; }
public virtual DbSet<Admin> Admins{ get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder) protected override void OnModelCreating(ModelBuilder modelBuilder)
{ {
@ -223,6 +224,12 @@ public partial class WebApiContext : DbContext
entity.Property(e => e.Prozent).HasPrecision(8, 2); entity.Property(e => e.Prozent).HasPrecision(8, 2);
}); });
modelBuilder.Entity<Admin>(entity =>
{
entity.HasKey(e => e.Id).HasName("PRIMARY");
entity.ToTable("admin");
});
OnModelCreatingPartial(modelBuilder); OnModelCreatingPartial(modelBuilder);
} }

6
src/WebApi/Dockerfile Normal file
View File

@ -0,0 +1,6 @@
FROM mcr.microsoft.com/dotnet/sdk:7.0
WORKDIR /App
COPY . ./
RUN dotnet restore
EXPOSE 5226
CMD /usr/bin/dotnet run --project /App/WebApi.csproj

View File

@ -0,0 +1,7 @@
namespace WebApi.Models;
public partial class Admin
{
public int Id { get; set; }
public string Username { get; set; }
public string Password { get; set; }
}

View File

@ -14,7 +14,7 @@
"dotnetRunMessages": true, "dotnetRunMessages": true,
"launchBrowser": true, "launchBrowser": true,
"launchUrl": "swagger", "launchUrl": "swagger",
"applicationUrl": "http://localhost:5226", "applicationUrl": "http://0.0.0.0:5226",
"environmentVariables": { "environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development" "ASPNETCORE_ENVIRONMENT": "Development"
} }

View File

@ -7,18 +7,19 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="7.0.4" /> <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="7.0.8" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.5"> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.8" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.8">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.5" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.8" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="7.0.5"> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="7.0.8">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="7.0.6" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="7.0.7" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="7.0.0" /> <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="7.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -0,0 +1,23 @@
version: "3.4"
services:
y4f-webapi:
build: .
ports:
- "5226:5226"
labels:
- traefik.docker.network=traefik
- traefik.enable=true
- traefik.http.routers.y4f-webapi.entrypoints=web-secure
- traefik.http.routers.y4f-webapi.rule=Host(`api.y4f.hopeless-cloud.xyz`)
- traefik.http.routers.y4f-webapi.tls=true
- traefik.http.routers.y4f-webapi.tls.certResolver=default
networks:
- default
- traefik
restart: unless-stopped
networks:
default:
name: y4f-default
external: true
traefik:
external: true

View File

@ -13,9 +13,9 @@
<p> <p>
<strong>Yummy Kitchen</strong> <strong>Yummy Kitchen</strong>
<br /> <br />
Musterstraße 15 Meidlinger Hauptstraße 49
<br /> <br />
1010 Wien 1120 Wien
</p> </p>
@code { @code {

View File

@ -13,7 +13,7 @@
"dotnetRunMessages": true, "dotnetRunMessages": true,
"launchBrowser": true, "launchBrowser": true,
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
"applicationUrl": "http://localhost:5248", "applicationUrl": "http://0.0.0.0:5248",
"environmentVariables": { "environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development" "ASPNETCORE_ENVIRONMENT": "Development"
} }

View File

@ -1,20 +1,4 @@
@*<footer class="text-center text-lg-start bg-light text-muted"> <footer>
<section class="d-flex justify-content-center justify-content-lg-between p-4 border-bottom"></section>
<section class="">
<div class="container text-center text-md-start mt-5">
<div class="col-md-3 col-lg-6 col-xl-12 mx-auto mb-4">
<center>
<h6 class="text-uppercase fw-bold mb-4">
<a href="">Kontakt</a> | <a href="">Impressum</a> | <a href="">Datenschutzerklärung</a> | <a href="">Cookies</a>
</h6>
</center>
</div>
</div>
</section>
</footer>*@
<footer>
<div class="container"> <div class="container">
<a href="Kontakt">Kontakt</a> | <a href="Kontakt">Kontakt</a> |
<a href="Impressum">Impressum</a> | <a href="Impressum">Impressum</a> |