project creation

This commit is contained in:
s452711 2021-10-13 04:17:41 +02:00
commit ff673ed20c
105 changed files with 9507 additions and 0 deletions

Binary file not shown.

3
.vs/ProjectSettings.json Normal file
View File

@ -0,0 +1,3 @@
{
"CurrentProjectSetting": null
}

View File

@ -0,0 +1,9 @@
{
"ExpandedNodes": [
"",
"\\apo-restaurant",
"\\apo-restaurant\\apo-restaurant"
],
"SelectedNode": "\\apo-restaurant\\apo-restaurant.sln",
"PreviewInSolutionExplorer": false
}

BIN
.vs/slnx.sqlite Normal file

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31613.86
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "apo-restaurant", "apo-restaurant\apo-restaurant.csproj", "{0631FEE6-160B-45E4-AF74-D7DA193BF436}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{0631FEE6-160B-45E4-AF74-D7DA193BF436}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0631FEE6-160B-45E4-AF74-D7DA193BF436}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0631FEE6-160B-45E4-AF74-D7DA193BF436}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0631FEE6-160B-45E4-AF74-D7DA193BF436}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {61B20210-ED68-4186-8A31-F593274AB500}
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace apo_restaurant.API
{
public static class KitchenAPI
{
public static void InformKitchen()
{
Console.WriteLine("Kitchen has been informed about the order.");
}
}
}

View File

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Text;
using apo_restaurant.Database.Access;
namespace apo_restaurant.API
{
public static class WarehouseAPI
{
public static DatabaseContext AccessWarehouseDB()
{
return Constants.DbContext;
}
}
}

View File

@ -0,0 +1,191 @@
using System;
using System.Collections.Generic;
using System.Text;
using static apo_restaurant.Constants;
using static apo_restaurant.API.WarehouseAPI;
using apo_restaurant.Database.Models;
using apo_restaurant.Exceptions;
using System.Linq;
namespace apo_restaurant.Classes.Cuisine
{
public class Dish
{
public int? Id { get; set; }
public string Name { get; set; }
public double? Price { get; set; }
public List<Ingredient> Ingredients { get; set; }
public Dish()
{
this.Id = null;
this.Name = CustomDishName;
this.Price = 0;
this.Ingredients = new List<Ingredient>();
}
public Dish(int id)
{
DishModel dish = AccessWarehouseDB().Dishes.Find(id);
if (dish == null)
throw new EntryNotFoundException();
this.Id = dish.Id;
this.Name = dish.Name;
this.Price = dish.Price;
this.Ingredients = new List<Ingredient>();
List<Dish_Ingredient> dishIngredients = AccessWarehouseDB()
.Dishes_Ingredients
.Where(dishIngredient => dishIngredient.DishId == this.Id)
.ToList();
foreach (Dish_Ingredient dishIngredient in dishIngredients)
{
this.Ingredients.Add(
new Ingredient(
AccessWarehouseDB().Ingredients.Find(dishIngredient.IngredientId)
)
);
}
if (this.Price == null)
this.Price = AccessWarehouseDB()
.Ingredients
.ToList()
.Where(ingredient => this.Ingredients.Any(_ingredient => _ingredient.Id == ingredient.Id))
.Sum(ingredient => ingredient.DefaultPrice);
}
// potentially to be deleted
public Dish(string name)
{
if (AccessWarehouseDB().Dishes.Where(_dish => _dish.Name == name).Count() == 0)
throw new EntryNotFoundException();
DishModel dish = AccessWarehouseDB().Dishes.Where(_dish => _dish.Name == name).First();
this.Id = dish.Id;
this.Name = dish.Name;
this.Price = dish.Price;
this.Ingredients = new List<Ingredient>();
List<Dish_Ingredient> dishIngredients = AccessWarehouseDB()
.Dishes_Ingredients
.Where(dishIngredient => dishIngredient.DishId == this.Id)
.ToList();
foreach (Dish_Ingredient dishIngredient in dishIngredients)
{
this.Ingredients.Add(
new Ingredient(
AccessWarehouseDB().Ingredients.Find(dishIngredient.IngredientId)
)
);
}
if (this.Price == null)
this.Price = AccessWarehouseDB()
.Ingredients
.ToList()
.Where(ingredient => this.Ingredients.Any(_ingredient => _ingredient.Id == ingredient.Id))
.Sum(ingredient => ingredient.DefaultPrice);
}
public void AddIngredient(int addedIngId)
{
// if dish already has added ingredient: return
if (this.Ingredients.Any(ingredient => ingredient.Id == addedIngId))
return;
Ingredient addedIngredient = new Ingredient(addedIngId);
this.Ingredients.Add(addedIngredient);
this.CheckForSubstitutes();
}
public void AddIngredient(string addedIngName)
{
// if dish already has added ingredient: return
if (this.Ingredients.Any(ingredient => ingredient.Name == addedIngName))
return;
Ingredient addedIngredient = new Ingredient(addedIngName);
this.Ingredients.Add(addedIngredient);
this.CheckForSubstitutes();
}
public void RemoveIngredient(int removedIngId)
{
// if dish already doesnt have removed ingredient: return
if (!this.Ingredients.Any(ingredient => ingredient.Id == removedIngId))
return;
this.Ingredients.Remove(this.Ingredients.Find(ingredient => ingredient.Id == removedIngId));
this.CheckForSubstitutes();
}
public void RemoveIngredient(string removedIngName)
{
// if dish already doesnt have removed ingredient: return
if (!this.Ingredients.Any(ingredient => ingredient.Name == removedIngName))
return;
this.Ingredients.Remove(this.Ingredients.Find(ingredient => ingredient.Name == removedIngName));
this.CheckForSubstitutes();
}
private void CheckForSubstitutes()
{
int numberOfIngredients = this.Ingredients.Count();
List<Dish_Ingredient> dishIngridients = AccessWarehouseDB()
.Dishes_Ingredients
.ToList();
List<DishModel> dishes = AccessWarehouseDB()
.Dishes
.ToList();
foreach (DishModel dish in dishes)
{
List<Dish_Ingredient> aDishIngredients = dishIngridients
.Where(dishIngredient => dishIngredient.DishId == dish.Id)
.ToList();
if (
numberOfIngredients == aDishIngredients.Count() &&
this.Ingredients
.All(ingridient => aDishIngredients
.Any(dishIngridient => dishIngridient.IngredientId == ingridient.Id)
)
)
{
this.Id = dish.Id;
this.Name = dish.Name;
this.Price = dish.Price;
if (this.Price == null)
this.Price = AccessWarehouseDB()
.Ingredients
.ToList()
.Where(ingredient => this.Ingredients.Any(_ingredient => _ingredient.Id == ingredient.Id))
.Sum(ingredient => ingredient.DefaultPrice);
return;
}
}
this.Id = null;
this.Name = CustomDishName;
this.Price = AccessWarehouseDB()
.Ingredients
.ToList()
.Where(ingredient => this.Ingredients.Any(_ingredient => _ingredient.Id == ingredient.Id))
.Sum(ingredient => ingredient.DefaultPrice);
}
}
}

View File

@ -0,0 +1,56 @@
using System;
using System.Collections.Generic;
using System.Text;
using static apo_restaurant.Constants;
using apo_restaurant.Exceptions;
using apo_restaurant.Database.Models;
using System.Linq;
namespace apo_restaurant.Classes.Cuisine
{
public class Ingredient
{
public int Id { get; }
public int Quantity { get; set; }
public string Name { get; }
public double DefaultPrice { get; }
public Ingredient(int id)
{
IngredientModel ingredient = DbContext.Ingredients.Find(id);
if (ingredient == null)
throw new EntryNotFoundException();
this.Id = ingredient.Id;
this.Quantity = ingredient.Quantity;
this.Name = ingredient.Name;
this.DefaultPrice = ingredient.DefaultPrice;
}
public Ingredient(string name)
{
IngredientModel ingredient = DbContext
.Ingredients
.Where(_ingredient => _ingredient.Name == name)
.First();
if (ingredient == null)
throw new EntryNotFoundException();
this.Id = ingredient.Id;
this.Quantity = ingredient.Quantity;
this.Name = ingredient.Name;
this.DefaultPrice = ingredient.DefaultPrice;
}
public Ingredient(IngredientModel ingredientModel)
{
this.Id = ingredientModel.Id;
this.Quantity = ingredientModel.Quantity;
this.Name = ingredientModel.Name;
this.DefaultPrice = ingredientModel.DefaultPrice;
}
}
}

View File

@ -0,0 +1,129 @@
using System;
using System.Collections.Generic;
using System.Text;
using static apo_restaurant.Database.Access.DatabaseAccesser;
using static apo_restaurant.API.WarehouseAPI;
using System.Linq;
using apo_restaurant.Classes.Cuisine;
using apo_restaurant.Exceptions;
namespace apo_restaurant.Classes.Orders
{
public class Order
{
public List<OrderElement> OrderElements { get; set; }
public OrderElement EditedOrderElement { get; set; }
public List<Ingredient> IngredientsNeeded = new List<Ingredient>();
public Order()
{
OrderElements = new List<OrderElement>();
}
public void AddOrderElement()
{
OrderElements.Add(new OrderElement());
}
public void AddOrderElement(int id, string note)
{
List<Ingredient> ingredients = GetDishIngredients(id);
foreach (Ingredient ingredient in ingredients)
if (!this.IngredientsNeeded.Any(_ingredient => _ingredient.Id == ingredient.Id))
{
Ingredient addedIngredient = new Ingredient(ingredient.Id);
addedIngredient.Quantity = 0;
this.IngredientsNeeded.Add(addedIngredient);
}
// checking if any required ingredient isnt out
foreach (Ingredient ingredient in ingredients)
if (AccessWarehouseDB()
.Ingredients
.Find(ingredient.Id)
.Quantity == 0)
throw new MissingIngredientException();
foreach (Ingredient ingredient in ingredients)
if (this.IngredientsNeeded
.Any(_ingredient => _ingredient.Id == ingredient.Id) &&
this.IngredientsNeeded
.Where(_ingredient => _ingredient.Id == ingredient.Id)
.First().Quantity == ingredient.Quantity)
throw new MissingIngredientException();
foreach (Ingredient ingredient in ingredients)
this.IngredientsNeeded
.Where(_ingredient => _ingredient.Id == ingredient.Id)
.First().Quantity += 1;
OrderElements.Add(new OrderElement(id, note));
}
public void RemoveOrderElement(int index)
{
OrderElement orderElement = this.OrderElements.ElementAt(index);
foreach (Ingredient ingredient in orderElement.OrderedDish.Ingredients)
{
this.IngredientsNeeded
.Where(_ingredient => _ingredient.Id == ingredient.Id)
.First().Quantity -= 1;
}
this.OrderElements.RemoveAt(index);
}
public void ChangeEditedOrderElement(int index)
{
if (index >= this.OrderElements.Count())
return;
this.EditedOrderElement = this.OrderElements.ElementAt(index);
}
public void AddIngredientToEditedOrderElement(int ingredientId)
{
if (!this.IngredientsNeeded.Any(_ingredient => _ingredient.Id == ingredientId))
{
Ingredient addedIngredient = new Ingredient(ingredientId);
addedIngredient.Quantity = 0;
this.IngredientsNeeded.Add(addedIngredient);
}
// checking if the required ingredient isnt out
if (AccessWarehouseDB()
.Ingredients
.Find(ingredientId)
.Quantity == 0)
throw new MissingIngredientException();
if (AccessWarehouseDB().Ingredients
.Find(ingredientId)
.Quantity == this.IngredientsNeeded
.Where(ingredient => ingredient.Id == ingredientId)
.First().Quantity)
throw new MissingIngredientException();
EditedOrderElement.OrderedDish.AddIngredient(ingredientId);
this.IngredientsNeeded
.Where(ingredient => ingredient.Id == ingredientId)
.First().Quantity += 1;
}
public void RemoveIngredientFromEditedOrderElement(int id)
{
this.IngredientsNeeded
.Where(ingredient => ingredient.Id == id)
.First().Quantity -= 1;
this.EditedOrderElement.OrderedDish.RemoveIngredient(id);
}
}
}

View File

@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Text;
using apo_restaurant.Classes.Cuisine;
namespace apo_restaurant.Classes.Orders
{
public class OrderElement
{
public Dish OrderedDish { get; set; }
public string Note { get; set; }
public OrderElement()
{
this.OrderedDish = new Dish();
}
public OrderElement(int id, string note)
{
this.OrderedDish = new Dish(id);
this.Note = note;
}
public OrderElement(string name)
{
this.OrderedDish = new Dish(name);
}
}
}

View File

@ -0,0 +1,265 @@
using apo_restaurant.Classes.Cuisine;
using apo_restaurant.Classes.Orders;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using static apo_restaurant.API.WarehouseAPI;
using static apo_restaurant.Database.Access.DatabaseAccesser;
namespace apo_restaurant.Classes.UI
{
public static class UserInterface
{
public static int OptionsMenu()
{
int userInput = -1;
string optionsMenu =
"\n" +
"1. Choose a dish from menu\n" +
"2. Edit a dish\n" +
"3. Remove a dish\n" +
"4. See order in detail\n" +
"0. Send order\n" +
": ";
do
{
Console.Write(optionsMenu);
try
{
userInput = int.Parse(Console.ReadLine());
}
catch (Exception)
{
Console.Clear();
continue;
}
Console.Clear();
} while (userInput < 0 || userInput > 4);
return(userInput);
}
public static OrderElement MainMenu()
{
int userInput = -1;
List<Dish> dishes = GetDishes();
OrderElement orderElement = new OrderElement();
do
{
for(int i = 0; i < dishes.Count(); i++)
{
Dish dish = dishes.ElementAt(i);
Console.Write((i + 1) + ") " + dish.Name + "\n | price: " + dish.Price + "\n | ingredients: [ ");
dish.Ingredients.ForEach(ingredient => Console.Write(ingredient.Name + ", "));
Console.WriteLine("]\n");
}
Console.Write(": ");
try
{
userInput = int.Parse(Console.ReadLine());
}
catch (Exception)
{
Console.Clear();
continue;
}
Console.Clear();
} while (userInput < 1 || userInput > dishes.Count());
orderElement.OrderedDish = dishes.ElementAt(userInput - 1);
Console.WriteLine("Write a note: ");
string note = Console.ReadLine();
Console.Clear();
orderElement.Note = note;
return (orderElement);
}
public static int EditingMenu(OrderElement orderElement)
{
int userInput = -1;
string editingMenu =
"1) Edit choosen Dish\n" +
"2) Edit note\n" +
"3) Change choosen dish\n" +
"4) Create a new custom dish\n" +
"0) Go back";
do
{
if(orderElement != null)
{
Console.WriteLine("[CHOOSEN]");
Console.Write(orderElement.OrderedDish.Name + "\nprice: " + orderElement.OrderedDish.Price + "\ningredients: [ ");
orderElement.OrderedDish.Ingredients.ForEach(ingredient => Console.Write(ingredient.Name + ", "));
Console.WriteLine("]\nnote:" + orderElement.Note + "\n\n");
}
else
{
Console.WriteLine("No dish is choosen for editing!");
}
Console.WriteLine(editingMenu);
try
{
userInput = int.Parse(Console.ReadLine());
}
catch (Exception)
{
Console.Clear();
continue;
}
Console.Clear();
} while (userInput < 0 || userInput > 4);
return (userInput);
}
public static int EditingMenu_Choose(List<OrderElement> orderElements)
{
int userInput = -1;
do
{
for (int i = 0; i < orderElements.Count(); i++)
{
Dish dish = orderElements.ElementAt(i).OrderedDish;
Console.Write((i + 1) + ") " + dish.Name + "\n | price: " + dish.Price + "\n | ingredients: [ ");
dish.Ingredients.ForEach(ingredient => Console.Write(ingredient.Name + ", "));
Console.WriteLine("]\n");
}
Console.Write(": ");
try
{
userInput = int.Parse(Console.ReadLine());
}
catch (Exception)
{
Console.Clear();
continue;
}
Console.Clear();
} while (userInput < 1 || userInput > orderElements.Count());
return (userInput);
}
public static void EditingMenu_Edit(Order order)
{
int userInput = -2;
List<Ingredient> ingredientsToAdd = GetIngredients();
List<Ingredient> ingredientsToRemove = order.EditedOrderElement.OrderedDish.Ingredients;
do
{
Console.WriteLine("[EDITED]");
Dish dish = order.EditedOrderElement.OrderedDish;
Console.Write(" | " + dish.Name + "\n | price: " + dish.Price + "\n | ingredients: [ ");
dish.Ingredients.ForEach(ingredient => Console.Write(ingredient.Name + ", "));
Console.WriteLine("]\n | comment: " + order.EditedOrderElement.Note);
Console.WriteLine();
Console.WriteLine("-1) quit");
Console.WriteLine("0) remove ingredients");
for (int i = 0; i < ingredientsToAdd.Count(); i++)
Console.WriteLine((i + 1) + ") add " + ingredientsToAdd.ElementAt(i).Name);
Console.Write(": ");
try
{
userInput = int.Parse(Console.ReadLine());
}
catch (Exception)
{
Console.Clear();
continue;
}
Console.Clear();
if (userInput > 0 && userInput <= ingredientsToAdd.Count())
{
try
{
order.AddIngredientToEditedOrderElement(ingredientsToAdd.ElementAt(userInput - 1).Id);
}
catch (Exception)
{
}
}
} while (userInput < -1 || userInput > 0);
if (userInput == -1)
return;
do
{
Console.WriteLine("[EDITED]");
Dish dish = order.EditedOrderElement.OrderedDish;
Console.Write(" | " + dish.Name + "\n | price: " + dish.Price + "\n | ingredients: [ ");
dish.Ingredients.ForEach(ingredient => Console.Write(ingredient.Name + ", "));
Console.WriteLine("]\n | comment: " + order.EditedOrderElement.Note);
Console.WriteLine();
Console.WriteLine("0) quit");
for (int i = 0; i < ingredientsToRemove.Count(); i++)
Console.WriteLine((i + 1) + ") remove " + ingredientsToRemove.ElementAt(i).Name);
Console.Write(": ");
try
{
userInput = int.Parse(Console.ReadLine());
}
catch (Exception)
{
Console.Clear();
continue;
}
Console.Clear();
if (userInput > 0 && userInput <= ingredientsToRemove.Count())
{
try
{
order.RemoveIngredientFromEditedOrderElement(ingredientsToRemove.ElementAt(userInput - 1).Id);
}
catch (Exception)
{
}
}
} while (userInput != 0);
}
}
}

View File

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Text;
using apo_restaurant.Database.Access;
namespace apo_restaurant
{
public static class Constants
{
public static string ConnectionString = @"Server=localhost;Database=ApoRestaurantProjectDB_01;Integrated Security=True;";
public static string CustomDishName = "custom dish";
public static DatabaseContext DbContext;
static Constants()
{
DbContext = new DatabaseContext();
}
}
}

View File

@ -0,0 +1,66 @@
using System;
using System.Collections.Generic;
using System.Text;
using static apo_restaurant.API.WarehouseAPI;
using apo_restaurant.Database.Models;
using System.Linq;
using apo_restaurant.Classes.Cuisine;
namespace apo_restaurant.Database.Access
{
public static class DatabaseAccesser
{
public static List<Dish> GetDishes()
{
List<Dish> dishes = new List<Dish>();
List<DishModel> dishModels = AccessWarehouseDB().Dishes.ToList();
foreach (DishModel dishModel in dishModels)
dishes.Add(new Dish(dishModel.Id));
return (dishes);
}
public static List<Ingredient> GetIngredients()
{
List<Ingredient> ingredients = new List<Ingredient>();
List<IngredientModel> ingredientModels = AccessWarehouseDB().Ingredients.ToList();
foreach (IngredientModel ingredientModel in ingredientModels)
ingredients.Add(new Ingredient(ingredientModel));
return (ingredients);
}
public static List<IngredientModel> GetDishIngredientModels(int id)
{
List<Dish_Ingredient> dishIngredientRelations = AccessWarehouseDB()
.Dishes_Ingredients
.Where(dishesIngredients => dishesIngredients.DishId == id)
.ToList();
return (AccessWarehouseDB()
.Ingredients
.ToList()
.Where(ingredient => dishIngredientRelations.Any(dishIngredient => dishIngredient.IngredientId == ingredient.Id))
.ToList()
);
}
public static List<Ingredient> GetDishIngredients(int id)
{
List<Ingredient> ingredients = new List<Ingredient>();
foreach (IngredientModel ingredientModel in GetDishIngredientModels(id))
ingredients.Add(new Ingredient(ingredientModel));
return (ingredients);
}
public static Ingredient GetDishIngredient(int id)
{
return (new Ingredient(AccessWarehouseDB().Ingredients.Find(id)));
}
}
}

View File

@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.EntityFrameworkCore;
using static apo_restaurant.Constants;
using apo_restaurant.Database.Models;
namespace apo_restaurant.Database.Access
{
public class DatabaseContext : DbContext
{
public DbSet<IngredientModel> Ingredients { get; set; }
public DbSet<DishModel> Dishes { get; set; }
public DbSet<Dish_Ingredient> Dishes_Ingredients { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(ConnectionString);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Dish_Ingredient>()
.HasKey(c => new { c.DishId, c.IngredientId });
modelBuilder.Entity<Dish_Ingredient>()
.HasOne(d => d.Dish)
.WithMany(i => i.Dish_Ingredients)
.HasForeignKey(di => di.DishId);
modelBuilder.Entity<Dish_Ingredient>()
.HasOne(i => i.Ingredient)
.WithMany(i => i.Dish_Ingredients)
.HasForeignKey(ii => ii.IngredientId);
}
}
}

View File

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace apo_restaurant.Database.Models
{
public class DishModel
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
[MaxLength(48)]
public string Name { get; set; }
public double? Price { get; set; }
public List<Dish_Ingredient> Dish_Ingredients { get; set; }
}
}

View File

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
namespace apo_restaurant.Database.Models
{
public class Dish_Ingredient
{
[Key]
public int DishId { get; set; }
[ForeignKey("DishId")]
public DishModel Dish { get; set; }
[Key]
public int IngredientId { get; set; }
[ForeignKey("IngredientId")]
public IngredientModel Ingredient { get; set; }
}
}

View File

@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace apo_restaurant.Database.Models
{
public class IngredientModel
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
public int Quantity { get; set; }
[Required]
[MaxLength(48)]
public string Name { get; set; }
[Required]
public double DefaultPrice { get; set; }
public List<Dish_Ingredient> Dish_Ingredients { get; set; }
}
}

View File

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace apo_restaurant.Exceptions
{
public class EntryNotFoundException : Exception
{
public override string Message
{
get
{
return "searched entry was not found";
}
}
}
}

View File

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace apo_restaurant.Exceptions
{
class MissingIngredientException : Exception
{
public override string Message
{
get
{
return "some ingredient(s) required for the dish are missing";
}
}
}
}

View File

@ -0,0 +1,113 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using apo_restaurant.Database.Access;
namespace apo_restaurant.Migrations
{
[DbContext(typeof(DatabaseContext))]
[Migration("20211012175624_CreateDB")]
partial class CreateDB
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("Relational:MaxIdentifierLength", 128)
.HasAnnotation("ProductVersion", "5.0.11")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
modelBuilder.Entity("apo_restaurant.Database.Models.DishModel", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(48)
.HasColumnType("nvarchar(48)");
b.Property<double?>("Price")
.HasColumnType("float");
b.HasKey("Id");
b.ToTable("Dishes");
});
modelBuilder.Entity("apo_restaurant.Database.Models.Dish_Ingredient", b =>
{
b.Property<int>("DishId")
.HasColumnType("int");
b.Property<int>("IngredientId")
.HasColumnType("int");
b.HasKey("DishId", "IngredientId");
b.HasIndex("IngredientId");
b.ToTable("Dishes_Ingredients");
});
modelBuilder.Entity("apo_restaurant.Database.Models.IngredientModel", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<double>("DefaultPrice")
.HasColumnType("float");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(48)
.HasColumnType("nvarchar(48)");
b.Property<int>("Quantity")
.HasColumnType("int");
b.HasKey("Id");
b.ToTable("Ingredients");
});
modelBuilder.Entity("apo_restaurant.Database.Models.Dish_Ingredient", b =>
{
b.HasOne("apo_restaurant.Database.Models.DishModel", "Dish")
.WithMany("Dish_Ingredients")
.HasForeignKey("DishId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("apo_restaurant.Database.Models.IngredientModel", "Ingredient")
.WithMany("Dish_Ingredients")
.HasForeignKey("IngredientId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Dish");
b.Navigation("Ingredient");
});
modelBuilder.Entity("apo_restaurant.Database.Models.DishModel", b =>
{
b.Navigation("Dish_Ingredients");
});
modelBuilder.Entity("apo_restaurant.Database.Models.IngredientModel", b =>
{
b.Navigation("Dish_Ingredients");
});
#pragma warning restore 612, 618
}
}
}

View File

@ -0,0 +1,80 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace apo_restaurant.Migrations
{
public partial class CreateDB : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Dishes",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Name = table.Column<string>(type: "nvarchar(48)", maxLength: 48, nullable: false),
Price = table.Column<double>(type: "float", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Dishes", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Ingredients",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Quantity = table.Column<int>(type: "int", nullable: false),
Name = table.Column<string>(type: "nvarchar(48)", maxLength: 48, nullable: false),
DefaultPrice = table.Column<double>(type: "float", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Ingredients", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Dishes_Ingredients",
columns: table => new
{
DishId = table.Column<int>(type: "int", nullable: false),
IngredientId = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Dishes_Ingredients", x => new { x.DishId, x.IngredientId });
table.ForeignKey(
name: "FK_Dishes_Ingredients_Dishes_DishId",
column: x => x.DishId,
principalTable: "Dishes",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Dishes_Ingredients_Ingredients_IngredientId",
column: x => x.IngredientId,
principalTable: "Ingredients",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_Dishes_Ingredients_IngredientId",
table: "Dishes_Ingredients",
column: "IngredientId");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Dishes_Ingredients");
migrationBuilder.DropTable(
name: "Dishes");
migrationBuilder.DropTable(
name: "Ingredients");
}
}
}

View File

@ -0,0 +1,111 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using apo_restaurant.Database.Access;
namespace apo_restaurant.Migrations
{
[DbContext(typeof(DatabaseContext))]
partial class DatabaseContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("Relational:MaxIdentifierLength", 128)
.HasAnnotation("ProductVersion", "5.0.11")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
modelBuilder.Entity("apo_restaurant.Database.Models.DishModel", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(48)
.HasColumnType("nvarchar(48)");
b.Property<double?>("Price")
.HasColumnType("float");
b.HasKey("Id");
b.ToTable("Dishes");
});
modelBuilder.Entity("apo_restaurant.Database.Models.Dish_Ingredient", b =>
{
b.Property<int>("DishId")
.HasColumnType("int");
b.Property<int>("IngredientId")
.HasColumnType("int");
b.HasKey("DishId", "IngredientId");
b.HasIndex("IngredientId");
b.ToTable("Dishes_Ingredients");
});
modelBuilder.Entity("apo_restaurant.Database.Models.IngredientModel", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<double>("DefaultPrice")
.HasColumnType("float");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(48)
.HasColumnType("nvarchar(48)");
b.Property<int>("Quantity")
.HasColumnType("int");
b.HasKey("Id");
b.ToTable("Ingredients");
});
modelBuilder.Entity("apo_restaurant.Database.Models.Dish_Ingredient", b =>
{
b.HasOne("apo_restaurant.Database.Models.DishModel", "Dish")
.WithMany("Dish_Ingredients")
.HasForeignKey("DishId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("apo_restaurant.Database.Models.IngredientModel", "Ingredient")
.WithMany("Dish_Ingredients")
.HasForeignKey("IngredientId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Dish");
b.Navigation("Ingredient");
});
modelBuilder.Entity("apo_restaurant.Database.Models.DishModel", b =>
{
b.Navigation("Dish_Ingredients");
});
modelBuilder.Entity("apo_restaurant.Database.Models.IngredientModel", b =>
{
b.Navigation("Dish_Ingredients");
});
#pragma warning restore 612, 618
}
}
}

View File

@ -0,0 +1,202 @@
using System;
using System.Linq;
using static apo_restaurant.Constants;
using static apo_restaurant.Classes.UI.UserInterface;
using static apo_restaurant.API.KitchenAPI;
using apo_restaurant.Database.Models;
using apo_restaurant.Classes.Cuisine;
using apo_restaurant.Classes.Orders;
namespace apo_restaurant_prototype
{
class Program
{
static void Main(string[] args)
{
InsertTestDataToDB();
Order order = new Order();
while(true)
{
Console.WriteLine("order total price: " + order.OrderElements.Sum(orderElement => orderElement.OrderedDish.Price));
int option = OptionsMenu();
Console.WriteLine();
switch (option)
{
case 0:
InformKitchen();
break;
case 1:
OrderElement orderElement = MainMenu();
try
{
order.AddOrderElement((int)orderElement.OrderedDish.Id, orderElement.Note);
}
catch (Exception)
{
Console.WriteLine("some ingredients necessary to create this dish are missing!");
Console.WriteLine("dish cant have been added to the order!");
}
break;
case 2:
while(true)
{
int emOption = EditingMenu(order.EditedOrderElement);
if (emOption == 0)
break;
if (emOption == 1 && order.EditedOrderElement != null)
EditingMenu_Edit(order);
else if (emOption == 1)
Console.WriteLine("no dish is choosen as edited right now!");
if (emOption == 2 && order.EditedOrderElement != null)
{
Console.WriteLine("write the new note: ");
string note = Console.ReadLine();
order.EditedOrderElement.Note = note;
}
else if (emOption == 2)
Console.WriteLine("no dish is choosen as edited right now!");
if (emOption == 3)
{
if(order.OrderElements.Count() != 0)
{
int newEditedElementIndex = EditingMenu_Choose(order.OrderElements);
order.EditedOrderElement = order.OrderElements.ElementAt(newEditedElementIndex - 1);
}
else
{
Console.WriteLine("no dishes to edit!");
}
}
if (emOption == 4)
{
order.AddOrderElement();
order.EditedOrderElement = order.OrderElements.Last();
}
}
break;
case 3:
int removedDishIndex = EditingMenu_Choose(order.OrderElements);
order.RemoveOrderElement(removedDishIndex - 1);
break;
case 4:
for (int i = 0; i < order.OrderElements.Count(); i++)
{
Dish dish = order.OrderElements.ElementAt(i).OrderedDish;
Console.Write((i + 1) + ") " + dish.Name + "\n | price: " + dish.Price + "\n | ingredients: [ ");
dish.Ingredients.ForEach(ingredient => Console.Write(ingredient.Name + ", "));
Console.WriteLine("]\n | comment: " + order.OrderElements.ElementAt(i).Note);
Console.WriteLine();
}
Console.WriteLine("\nclick enter to quit");
Console.ReadLine();
Console.Clear();
break;
}
}
}
private static void InsertTestDataToDB()
{
if (DbContext.Dishes.Count() != 0)
return;
Console.WriteLine("inserting test data to DB");
IngredientModel spaghetti = new IngredientModel()
{
Quantity = 2,
Name = "spaghetti",
DefaultPrice = 5.99
};
IngredientModel shellPasta = new IngredientModel()
{
Quantity = 4,
Name = "shell pasta",
DefaultPrice = 4.99
};
IngredientModel tomatoSauce = new IngredientModel()
{
Quantity = 3,
Name = "tomato sauce",
DefaultPrice = 3.99
};
IngredientModel creamSauce = new IngredientModel()
{
Quantity = 0,
Name = "cream sauce",
DefaultPrice = 4.99
};
IngredientModel pizzaBottom = new IngredientModel()
{
Quantity = 2,
Name = "pizza bottom",
DefaultPrice = 19.99
};
IngredientModel mozzarella = new IngredientModel()
{
Quantity = 1,
Name = "mozzarella",
DefaultPrice = 4.99
};
DishModel spaghettiCarbonara =
new DishModel
{
Name = "spaghetti carbonara",
Price = 8.99,
Dish_Ingredients = null
};
DishModel pastaNapolitana =
new DishModel
{
Name = "shell pasta napolitana",
Price = null,
Dish_Ingredients = null
};
DishModel margherita =
new DishModel
{
Name = "margherita",
Price = 19.99,
Dish_Ingredients = null
};
DbContext.AddRange(
spaghetti,
shellPasta,
tomatoSauce,
creamSauce,
pizzaBottom,
mozzarella,
spaghettiCarbonara,
pastaNapolitana,
margherita
);
DbContext.SaveChanges();
DbContext.UpdateRange();
}
}
}

View File

@ -0,0 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>apo_restaurant</RootNamespace>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.11" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.11" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.11">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,9 @@
{
"runtimeOptions": {
"additionalProbingPaths": [
"C:\\Users\\s452711\\.dotnet\\store\\|arch|\\|tfm|",
"C:\\Users\\s452711\\.nuget\\packages",
"c:\\software\\vs19_s\\NuGetPackages"
]
}
}

View File

@ -0,0 +1,9 @@
{
"runtimeOptions": {
"tfm": "netcoreapp3.1",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "3.1.0"
}
}
}

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v3.1", FrameworkDisplayName = "")]

View File

@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("apo-restaurant")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("apo-restaurant")]
[assembly: System.Reflection.AssemblyTitleAttribute("apo-restaurant")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.

View File

@ -0,0 +1 @@
1a30143c2086a2f8e42e481622556c5579702b12

View File

@ -0,0 +1,3 @@
is_global = true
build_property.RootNamespace = apo_restaurant
build_property.ProjectDir = C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\

View File

@ -0,0 +1 @@
c37af5e6469b67e4d9df09bf3207ef6349b5b7cd

View File

@ -0,0 +1,65 @@
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\apo-restaurant.exe
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\apo-restaurant.deps.json
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\apo-restaurant.runtimeconfig.json
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\apo-restaurant.runtimeconfig.dev.json
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\apo-restaurant.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\apo-restaurant.pdb
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Humanizer.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.Data.SqlClient.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.EntityFrameworkCore.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.EntityFrameworkCore.Abstractions.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.EntityFrameworkCore.Design.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.EntityFrameworkCore.Relational.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.EntityFrameworkCore.SqlServer.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Caching.Abstractions.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Caching.Memory.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Configuration.Abstractions.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.Extensions.DependencyInjection.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.Extensions.DependencyInjection.Abstractions.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Logging.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Options.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.Extensions.Primitives.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.Identity.Client.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.IdentityModel.JsonWebTokens.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.IdentityModel.Logging.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.IdentityModel.Protocols.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.IdentityModel.Tokens.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Microsoft.Win32.SystemEvents.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\Newtonsoft.Json.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\System.Collections.Immutable.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\System.ComponentModel.Annotations.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\System.Configuration.ConfigurationManager.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\System.Diagnostics.DiagnosticSource.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\System.Drawing.Common.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\System.IdentityModel.Tokens.Jwt.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\System.Runtime.Caching.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\System.Security.Cryptography.ProtectedData.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\System.Security.Permissions.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\System.Windows.Extensions.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\runtimes\unix\lib\netcoreapp3.1\Microsoft.Data.SqlClient.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp3.1\Microsoft.Data.SqlClient.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\runtimes\win-arm\native\Microsoft.Data.SqlClient.SNI.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\runtimes\win-arm\native\Microsoft.Data.SqlClient.SNI.pdb
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\runtimes\win-arm64\native\Microsoft.Data.SqlClient.SNI.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\runtimes\win-arm64\native\Microsoft.Data.SqlClient.SNI.pdb
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\runtimes\win-x64\native\Microsoft.Data.SqlClient.SNI.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\runtimes\win-x64\native\Microsoft.Data.SqlClient.SNI.pdb
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\runtimes\win-x86\native\Microsoft.Data.SqlClient.SNI.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\runtimes\win-x86\native\Microsoft.Data.SqlClient.SNI.pdb
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp3.0\Microsoft.Win32.SystemEvents.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\runtimes\unix\lib\netcoreapp3.0\System.Drawing.Common.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp3.0\System.Drawing.Common.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\runtimes\win\lib\netstandard2.0\System.Runtime.Caching.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\runtimes\win\lib\netstandard2.0\System.Security.Cryptography.ProtectedData.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp3.0\System.Windows.Extensions.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\obj\Debug\netcoreapp3.1\apo-restaurant.csproj.AssemblyReference.cache
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\obj\Debug\netcoreapp3.1\apo-restaurant.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\obj\Debug\netcoreapp3.1\apo-restaurant.AssemblyInfoInputs.cache
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\obj\Debug\netcoreapp3.1\apo-restaurant.AssemblyInfo.cs
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\obj\Debug\netcoreapp3.1\apo-restaurant.csproj.CoreCompileInputs.cache
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\obj\Debug\netcoreapp3.1\apo-restaurant.csproj.CopyComplete
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\obj\Debug\netcoreapp3.1\apo-restaurant.dll
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\obj\Debug\netcoreapp3.1\apo-restaurant.pdb
C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\obj\Debug\netcoreapp3.1\apo-restaurant.genruntimeconfig.cache

View File

@ -0,0 +1 @@
ac3a01c0bf85e32591af79cb3381060a9cf3f100

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v3.1", FrameworkDisplayName = "")]

View File

@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("apo-restaurant")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("apo-restaurant")]
[assembly: System.Reflection.AssemblyTitleAttribute("apo-restaurant")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.

View File

@ -0,0 +1 @@
50cd77202520f8642cfa6a6712f4b3e11f886964

View File

@ -0,0 +1,3 @@
is_global = true
build_property.RootNamespace = apo_restaurant
build_property.ProjectDir = C:\Users\s452711\Source\Repos\APO_Restaurant_Project\apo-restaurant\apo-restaurant\

Some files were not shown because too many files have changed in this diff Show More