mirror of
https://github.com/yummy4friends/y4f.git
synced 2025-07-18 23:06:08 +02:00
Compare commits
15 Commits
314c8667e6
...
dev
Author | SHA1 | Date | |
---|---|---|---|
eeb14ead3c | |||
3c765ff57d | |||
3a4064198d | |||
6c627add92 | |||
901d533cd1 | |||
28327710f8 | |||
b2dc8402f2
|
|||
35345e455c
|
|||
c85415e740
|
|||
7cd20602b6
|
|||
d45fa68fe0 | |||
a9418aea33 | |||
7b8db08d99 | |||
ba6266579d | |||
9781d94d6e |
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,6 +2,7 @@
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
|
||||
# User-specific files
|
||||
.vscode
|
||||
.vs
|
||||
*/.vs
|
||||
*.suo
|
||||
|
@ -6,7 +6,7 @@ Yummy4Friends ist eine benutzerfreundliche und visuell ansprechende Webapp zur O
|
||||
|
||||
## Description (English)
|
||||
|
||||
Yummy4Friends is a user friendly and visually appealing WebApp for ordering food or other things online. Food or other stuff get dynamically fetched from a customer and food database while also taking into account special requests. To attract customers one can also offer limeted time sales/coupons, ordering in advance as well as being able to choosing their preferred pickup time.
|
||||
Yummy4Friends is a user-friendly and visually appealing WebApp for ordering food or other things online. Food or other stuff gets dynamically fetched from a customer and food database while also taking into account special requests. To attract customers, one can also offer limited-time sales and coupons, order in advance, and have the option to choose the preferred pickup time.
|
||||
|
||||
## Tech Stack
|
||||
|
||||
|
@ -221,8 +221,8 @@ public partial class WebApiContext : DbContext
|
||||
|
||||
entity.ToTable("bestellungsposition_has_menuitem");
|
||||
|
||||
entity.Property(e => e.Bestellungsposition_IDBestellung).HasColumnType("int(11)").HasColumnName("bestellungsposition_IDBestellung");
|
||||
entity.Property(e => e.MenuItem_IDMenuItem).HasColumnType("int(11)").HasColumnName("menuItem_IDMenuItem");
|
||||
entity.Property(e => e.Bestellungsposition_IDBestellung).HasColumnType("int(11)").HasColumnName("Bestellungsposition_IDBestellung");
|
||||
entity.Property(e => e.MenuItem_IDMenuItem).HasColumnType("int(11)").HasColumnName("MenuItem_IDMenuItem");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<MenuitemHasAllergie>(entity =>
|
||||
|
@ -6,6 +6,7 @@
|
||||
@inject NavigationManager _navigationManager
|
||||
@inject IJSRuntime JSRuntime;
|
||||
|
||||
|
||||
<PageTitle>Yummy4Friends</PageTitle>
|
||||
|
||||
<body style='--blazor-load-percentage: 100%; --blazor-load-percentage-text: "100%"; background-color:#C7FFD5;'>
|
||||
@ -33,6 +34,7 @@
|
||||
{
|
||||
localStorage.SetItem("kunde", kunde);
|
||||
_navigationManager.NavigateTo("/speisekarte");
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -42,6 +44,7 @@
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
kunden = await Http.GetFromJsonAsync<List<Kunde>>("https://localhost:7076/api/kunden");
|
||||
|
||||
// if already logged in navigate to speisekarte
|
||||
if (localStorage.ContainKey("kunde"))
|
||||
{
|
||||
@ -49,6 +52,7 @@
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class Kunde
|
||||
@ -60,6 +64,3 @@
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -135,3 +135,4 @@
|
||||
public int Treuepunkte { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -137,7 +137,6 @@
|
||||
|
||||
allergien = await Http.GetFromJsonAsync<List<Allergie>>("https://localhost:7076/api/allergien");
|
||||
bestellungspositions = await Http.GetFromJsonAsync<List<Bestellungsposition>>("https://localhost:7076/api/bestellungspositionen");
|
||||
kunden = await Http.GetFromJsonAsync<List<Kunde>>("https://localhost:7076/api/kunden");
|
||||
menuitems = await Http.GetFromJsonAsync<List<Menuitem>>("https://localhost:7076/api/Menuitems");
|
||||
menuitemkategories = await Http.GetFromJsonAsync<List<Menuitemkategorie>>("https://localhost:7076/api/Menuitemkategories");
|
||||
menuitemueberkategories = await Http.GetFromJsonAsync<List<Menuitemueberkategorie>>("https://localhost:7076/api/Menuitemueberkategories");
|
||||
|
@ -143,7 +143,6 @@
|
||||
|
||||
allergien = await Http.GetFromJsonAsync<List<Allergie>>("https://localhost:7076/api/allergien");
|
||||
bestellungspositions = await Http.GetFromJsonAsync<List<Bestellungsposition>>("https://localhost:7076/api/bestellungspositionen");
|
||||
kunden = await Http.GetFromJsonAsync<List<Kunde>>("https://localhost:7076/api/kunden");
|
||||
menuitems = await Http.GetFromJsonAsync<List<Menuitem>>("https://localhost:7076/api/Menuitems");
|
||||
menuitemkategories = await Http.GetFromJsonAsync<List<Menuitemkategorie>>("https://localhost:7076/api/Menuitemkategories");
|
||||
menuitemueberkategories = await Http.GetFromJsonAsync<List<Menuitemueberkategorie>>("https://localhost:7076/api/Menuitemueberkategories");
|
||||
|
@ -93,11 +93,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@code {
|
||||
private List<Kunde> kunden = new List<Kunde>();
|
||||
private Kunde kunde = new Kunde();
|
||||
@ -142,9 +137,9 @@
|
||||
{
|
||||
menuitemIds = localStorage.GetItem<Dictionary<int, int>>("MenuItemIds");
|
||||
}
|
||||
|
||||
allergien = await Http.GetFromJsonAsync<List<Allergie>>("https://localhost:7076/api/allergien");
|
||||
bestellungspositions = await Http.GetFromJsonAsync<List<Bestellungsposition>>("https://localhost:7076/api/bestellungspositionen");
|
||||
kunden = await Http.GetFromJsonAsync<List<Kunde>>("https://localhost:7076/api/kunden");
|
||||
menuitems = await Http.GetFromJsonAsync<List<Menuitem>>("https://localhost:7076/api/Menuitems");
|
||||
menuitemkategories = await Http.GetFromJsonAsync<List<Menuitemkategorie>>("https://localhost:7076/api/Menuitemkategories");
|
||||
menuitemueberkategories = await Http.GetFromJsonAsync<List<Menuitemueberkategorie>>("https://localhost:7076/api/Menuitemueberkategories");
|
||||
|
@ -132,14 +132,13 @@
|
||||
if (kunde != null && !kunden.Any(k => k.Code == kunde.Code))
|
||||
_navigationManager.NavigateTo("/");
|
||||
// kunde login end
|
||||
|
||||
if (localStorage.GetItem<Dictionary<int, int>>("MenuItemIds") != null)
|
||||
{
|
||||
menuitemIds = localStorage.GetItem<Dictionary<int, int>>("MenuItemIds");
|
||||
}
|
||||
|
||||
allergien = await Http.GetFromJsonAsync<List<Allergie>>("https://localhost:7076/api/allergien");
|
||||
bestellungspositions = await Http.GetFromJsonAsync<List<Bestellungsposition>>("https://localhost:7076/api/bestellungspositionen");
|
||||
kunden = await Http.GetFromJsonAsync<List<Kunde>>("https://localhost:7076/api/kunden");
|
||||
menuitems = await Http.GetFromJsonAsync<List<Menuitem>>("https://localhost:7076/api/Menuitems");
|
||||
menuitemkategories = await Http.GetFromJsonAsync<List<Menuitemkategorie>>("https://localhost:7076/api/Menuitemkategories");
|
||||
menuitemueberkategories = await Http.GetFromJsonAsync<List<Menuitemueberkategorie>>("https://localhost:7076/api/Menuitemueberkategories");
|
||||
|
@ -89,14 +89,15 @@
|
||||
{
|
||||
localStorage.SetItem("RabattEinloesen", false);
|
||||
localStorage.SetItem("Summe", summe);
|
||||
// if summe > 8€ add treuepunkte
|
||||
if (summe >= 8)
|
||||
{
|
||||
if (kunde.Treuepunkte < 10)
|
||||
{
|
||||
kunde.Treuepunkte++;
|
||||
// add treuepunkte to API
|
||||
Http.PutAsJsonAsync("https://localhost:7076/api/kunden/" + kunde.Idkunde, kunde);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// add bestellung to API
|
||||
// add all bestellungspositionen to API
|
||||
@ -138,12 +139,20 @@
|
||||
|
||||
Http.PostAsJsonAsync("https://localhost:7076/api/bestellungspositionen", bestellungsposition);
|
||||
|
||||
//Add menuitems to bestellungspositionHasMenuItem
|
||||
BestellungspositionHasMenuitem bestellungspositionHasMenuItem = new BestellungspositionHasMenuitem();
|
||||
bestellungspositionHasMenuItem.Bestellungsposition_IDBestellung = bestellungsposition.Idbestellung;
|
||||
bestellungspositionHasMenuItem.MenuItem_IDMenuItem = item.Key;
|
||||
////Add menuitems to bestellungspositionHasMenuItem
|
||||
//BestellungspositionHasMenuitem bestellungspositionHasMenuItem = new BestellungspositionHasMenuitem();
|
||||
//bestellungspositionHasMenuItem.Bestellungsposition_IDBestellung = bestellungsposition.Idbestellung;
|
||||
//bestellungspositionHasMenuItem.MenuItem_IDMenuItem = item.Key;
|
||||
|
||||
Http.PostAsJsonAsync("https://localhost:7076/api/bestellungspositionhasmenuitems", bestellungspositionHasMenuItem);
|
||||
//Http.PostAsJsonAsync("https://localhost:7076/api/bestellungspositionhasmenuitems", bestellungspositionHasMenuItem);
|
||||
|
||||
var newBestellungsposition = new BestellungspositionHasMenuitem()
|
||||
{
|
||||
Bestellungsposition_IDBestellung = bestellungsposition.Idbestellung,
|
||||
MenuItem_IDMenuItem = item.Key
|
||||
};
|
||||
|
||||
Http.PostAsJsonAsync("https://localhost:7076/api/bestellungspositionhasmenuitems", newBestellungsposition);
|
||||
}
|
||||
|
||||
|
||||
|
@ -42,9 +42,20 @@
|
||||
month = bestellungsposition.Datum.Month;
|
||||
year = bestellungsposition.Datum.Year;
|
||||
|
||||
@*print kunde.code, hour and minute from last bestellungsposition*@
|
||||
@*print only if date is higher than now datum *@
|
||||
if (bestellungsposition.Datum > DateTime.Now)
|
||||
@*print only if date is higher than now datum, all expired hh:mm unvisible *@
|
||||
@*if (bestellungsposition.Datum > DateTime.Now)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
<p @onclick="@(()=>BDetail(@kunde.Idkunde))" class="mb-0 pb-0">
|
||||
#@kunde.Code
|
||||
@hour:@minute
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
}*@
|
||||
@*print only if date is in current day month year *@
|
||||
if (bestellungsposition.Datum.Day == DateTime.Now.Day && bestellungsposition.Datum.Month == DateTime.Now.Month && bestellungsposition.Datum.Year == DateTime.Now.Year)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
@ -55,7 +66,6 @@
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
@*}*@
|
||||
firstTime = false;
|
||||
}
|
||||
}
|
||||
@ -65,7 +75,7 @@
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<p id="text" readonly>Abholzeit</p>
|
||||
@* <p id="text" readonly>Abholzeit</p>
|
||||
<br />
|
||||
<form id="button" action="Bestelluebersicht">
|
||||
<input type="submit" value="30 Min" class="btn">
|
||||
@ -75,7 +85,7 @@
|
||||
</form>
|
||||
<form id="button" action="Bestelluebersicht">
|
||||
<input type="submit" value="1 Std" class="btn">
|
||||
</form>
|
||||
</form>*@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -118,6 +128,22 @@
|
||||
month = DateTime.Now.Month;
|
||||
year = DateTime.Now.Year;
|
||||
|
||||
//sort bestellungspositions by datum
|
||||
bestellungspositions = bestellungspositions.OrderByDescending(x => x.Datum).ToList();
|
||||
//sort kunden by the order of bestellungspositions
|
||||
List<Kunde> kundenSorted = new List<Kunde>();
|
||||
foreach (var bestellungsposition in bestellungspositions)
|
||||
{
|
||||
foreach (var kunde in kunden)
|
||||
{
|
||||
if (bestellungsposition.KundeIdkunde == kunde.Idkunde && !kundenSorted.Contains(kunde))
|
||||
{
|
||||
kundenSorted.Add(kunde);
|
||||
}
|
||||
}
|
||||
}
|
||||
kunden = kundenSorted;
|
||||
|
||||
}
|
||||
|
||||
public class Bestellungsposition
|
||||
|
@ -99,7 +99,7 @@
|
||||
|
||||
<div class="d-flex flex-column" style="align-items: center; margin-left: 100px;">
|
||||
@*<button class="btn_back w-75">Zurück</button>*@
|
||||
@*<button class="btn btn-danger w-75" style="border-radius: 50px; padding-top:12px; padding-bottom:12px; color:black;">Bestellung auflösen</button>*@
|
||||
@*<button class="btn btn-danger w-75" style="border-radius: 50px; padding-top:12px; padding-bottom:12px; color:black;" @onclick="Aufloesen">Bestellung auflösen</button>*@
|
||||
@*<button class="btn_forward w-75">Bestellung abschließen</button>*@
|
||||
</div>
|
||||
|
||||
@ -150,6 +150,25 @@
|
||||
localStorage.Clear();
|
||||
_navigationManager.NavigateTo("/");
|
||||
}
|
||||
|
||||
//public void Aufloesen()
|
||||
//{
|
||||
// foreach (var bestellungsposition in bestellungspositions)
|
||||
// {
|
||||
// foreach (var bestellungspositionHasMenuitem in bestellungspositionHasMenuitems)
|
||||
// {
|
||||
// if (bestellungsposition.Idbestellung == bestellungspositionHasMenuitem.Bestellungsposition_IDBestellung)
|
||||
// {
|
||||
// Http.DeleteAsync("https://localhost:7076/api/BestellungspositionHasMenuitems/" + bestellungspositionHasMenuitem.Bestellungsposition_IDBestellung + "/" + bestellungspositionHasMenuitem.MenuItem_IDMenuItem);
|
||||
// }
|
||||
// }
|
||||
// if (bestellungsposition.KundeIdkunde == kunde.Idkunde)
|
||||
// {
|
||||
// Http.DeleteAsync("https://localhost:7076/api/Bestellungspositionen/" + bestellungsposition.Idbestellung);
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
// get data from api
|
||||
|
@ -1,16 +0,0 @@
|
||||
<div class="alert alert-secondary mt-4">
|
||||
<span class="oi oi-pencil me-2" aria-hidden="true"></span>
|
||||
<strong>@Title</strong>
|
||||
|
||||
<span class="text-nowrap">
|
||||
Please take our
|
||||
<a target="_blank" class="font-weight-bold link-dark" href="https://go.microsoft.com/fwlink/?linkid=2186157">brief survey</a>
|
||||
</span>
|
||||
and tell us what you think.
|
||||
</div>
|
||||
|
||||
@code {
|
||||
// Demonstrates how a parent component can supply parameters
|
||||
[Parameter]
|
||||
public string? Title { get; set; }
|
||||
}
|
@ -3,20 +3,29 @@
|
||||
html, body {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#content {
|
||||
background-color: #C7FFD1;
|
||||
padding: 5%;
|
||||
margin-top: 1%;
|
||||
border-radius: 10px;
|
||||
position: center;
|
||||
}
|
||||
#button1 {
|
||||
background-color: #89F9A5;
|
||||
border-radius: 50px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
h1 {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.img {
|
||||
height: auto;
|
||||
max-width: 100%;
|
||||
margin: 10%;
|
||||
margin: 5%;
|
||||
}
|
||||
|
||||
form {
|
||||
@ -26,3 +35,17 @@ form {
|
||||
|
||||
}
|
||||
|
||||
p {
|
||||
color: grey;
|
||||
}
|
||||
|
||||
form {
|
||||
margin-bottom: 20px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
border-radius: 50px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user