mirror of
https://github.com/Lendaia/oe-alga-feladatok.git
synced 2026-04-23 12:26:07 +01:00
fixingthisshit
This commit is contained in:
@@ -7,10 +7,4 @@
|
|||||||
<RootNamespace>OE.ALGA</RootNamespace>
|
<RootNamespace>OE.ALGA</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.10" />
|
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.10" />
|
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Drawing;
|
|
||||||
|
|
||||||
namespace OE.ALGA;
|
namespace OE.ALGA;
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using static System.Net.Mime.MediaTypeNames;
|
|
||||||
|
|
||||||
namespace OE.ALGA.Adatszerkezetek
|
namespace OE.ALGA.Adatszerkezetek
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Data.Common;
|
|
||||||
using Newtonsoft.Json.Converters;
|
|
||||||
|
|
||||||
namespace OE.ALGA.Adatszerkezetek
|
namespace OE.ALGA.Adatszerkezetek
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,89 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace OE.ALGA;
|
|
||||||
|
|
||||||
public static class Class1
|
|
||||||
{
|
|
||||||
public static void Cheatsheet()
|
|
||||||
{
|
|
||||||
//deklaráció
|
|
||||||
int asd;
|
|
||||||
//értékadás
|
|
||||||
asd = 2;
|
|
||||||
//egyben
|
|
||||||
int lol = 2;
|
|
||||||
//adat típusok
|
|
||||||
int egesz = 1;
|
|
||||||
double tort = 2.2;
|
|
||||||
string szoveg = "gooning";
|
|
||||||
bool eldontendo = true;
|
|
||||||
int[] tomb; //ez egy int típusú tömb de lehet bármi
|
|
||||||
tomb = [1, 2, 3];
|
|
||||||
List<int> lista = new List<int>(); // ez egy int típusú lista de lehet bármi
|
|
||||||
lista.Add(1); // listához így tudsz új elemet adni
|
|
||||||
// side note, a lista egy dinamikus tömbb, érettségin azt használd
|
|
||||||
|
|
||||||
//kapuk
|
|
||||||
if (eldontendo)
|
|
||||||
{
|
|
||||||
//ha az állítás igaz ez történik.. pl
|
|
||||||
egesz++;
|
|
||||||
}
|
|
||||||
else if (egesz == 1)
|
|
||||||
{
|
|
||||||
//ha az előző nem teljesül megnézzük ezt. Ha ez teljesül akkor pl
|
|
||||||
lista.Add(5);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//bármilyen más esetben ez teljesül pl
|
|
||||||
Console.WriteLine("Send nudes"); //képernyőre kiírás
|
|
||||||
string user = Console.ReadLine(); // képernyőről beolvasás. Ez mindog string lesz szóval sztringbe tudod elmenteni
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (lol) // a megadott változót vizsgáljuk
|
|
||||||
{
|
|
||||||
case (2): //ha ez az érték kettő akkor pl
|
|
||||||
int elem = tomb[1]; // a tömb második elemét kimentjük egy azonos típusú változóba
|
|
||||||
break;
|
|
||||||
case (3):
|
|
||||||
Random rnd = new Random(); // random szám generátor létrehozása
|
|
||||||
int randomnumber = rnd.Next(10); //új random szám generálása az end generátoron keresztül
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//loopok
|
|
||||||
|
|
||||||
for (int i = 0; i < 3; i++) //az i létrehozott intet egyesével növeljük amíg el nem éri a hármat
|
|
||||||
{
|
|
||||||
Console.WriteLine(tomb[i]);
|
|
||||||
// ez azt jelenti hogy az i először nulla lesz, ez kissebb mint három így belép a kódblokkba és végrehajtja azt. tehát kiírja a tömb i-edik azaz először
|
|
||||||
//nulladik elemét. Majd hozzáad az ihez egyet. Így az i = 1. Még ez is kissebb mint 3 ezért ismét belép. És így tovább.
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (int i in lista) // ezt csak tömbök vagy listák bejárására használjuk
|
|
||||||
{
|
|
||||||
//fontos hogy a meghatározott elem típúsa azonos egyen a lista vagy tömb típúsával. A foreach egyesével minden elemmet egyenlővé tesz az i vel
|
|
||||||
// és be fog lépni a kódblokkba
|
|
||||||
if (i == 2) //tehát itt az i először egyenlő a listánk első elemével.
|
|
||||||
{
|
|
||||||
eldontendo = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
while (eldontendo) //ez azt jelenti hogy amíg a zárójelben lévő kijelentés teljesül
|
|
||||||
{
|
|
||||||
//addig belép az alábbi kódblokkba
|
|
||||||
// figyelj hogy csak olyan dolgot írj a zárójelbe ami változik mert különben örökké a ciklusba maradunk muhaha
|
|
||||||
int[] xd = new int[5]; //létrehozunk egy 5 elem hosszú tömböt
|
|
||||||
int hovarakjuk = Convert.ToInt16(Console.ReadLine()); //a Convert beépített metódust tudod használni a típúsok megváltoztatására
|
|
||||||
// a zárójelben lévő elemet itt inté alakítjuk. De ez lehet .ToString vagy ToBool vagy bármi egyéb logikus lépés
|
|
||||||
if (hovarakjuk < xd.Length) // a .Lenghtet tömbök hosszának meghatározására tudod használni
|
|
||||||
{
|
|
||||||
xd[hovarakjuk] = 1; // itt az xd tömbünk "hovarakjuk"adik elemét egyenlővé tesszük 1el
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Newtonsoft.Json;
|
|
||||||
|
|
||||||
namespace OE.ALGA;
|
|
||||||
|
|
||||||
public class Employee
|
|
||||||
{
|
|
||||||
int Id { get; set; }
|
|
||||||
string Name { get; set; }
|
|
||||||
string Position { get; set; }
|
|
||||||
List<Project> Projects { get; set; } = new List<Project>();
|
|
||||||
}
|
|
||||||
public class Project
|
|
||||||
{
|
|
||||||
int Id { get; set; }
|
|
||||||
string ProjectName { get; set; }
|
|
||||||
DateOnly StartDate { get; set; }
|
|
||||||
DateOnly EndDate { get; set; }
|
|
||||||
List<Task> Tasks { get; set; } = new List<Task>();
|
|
||||||
}
|
|
||||||
public class Task
|
|
||||||
{
|
|
||||||
int Id { get; set; }
|
|
||||||
string TaskName { get; set; }
|
|
||||||
int HoursSpent { get; set; }
|
|
||||||
}
|
|
||||||
public class Workers : DbContext
|
|
||||||
{
|
|
||||||
public DbSet<Employee> Employees { get; set; }
|
|
||||||
public DbSet<Project> Projects { get; set; }
|
|
||||||
public DbSet<Task> Tasks { get; set; }
|
|
||||||
|
|
||||||
public Workers()
|
|
||||||
{
|
|
||||||
Database.EnsureDeleted();
|
|
||||||
Database.EnsureCreated();
|
|
||||||
}
|
|
||||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
|
||||||
{
|
|
||||||
optionsBuilder.UseSqlServer(@"Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=workerdb;Integrated Security=True;MultipleActiveResultSets=true");
|
|
||||||
base.OnConfiguring(optionsBuilder);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public class Launch
|
|
||||||
{
|
|
||||||
static void ThatsAMain()
|
|
||||||
{
|
|
||||||
string json = File.ReadAllText("/home/mirai/alga/ALGA/workers.json");
|
|
||||||
List<Employee> employees = JsonConvert.DeserializeObject<List<Employee>>(json);
|
|
||||||
Workers context = new Workers();
|
|
||||||
context.Employees.AddRange(employees);
|
|
||||||
context.SaveChanges();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,7 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
|
|
||||||
namespace OE.ALGA.Optimalizalas
|
namespace OE.ALGA.Optimalizalas
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Globalization;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
|
|
||||||
namespace OE.ALGA.Optimalizalas
|
namespace OE.ALGA.Optimalizalas
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Formats.Asn1;
|
|
||||||
using System.Linq;
|
|
||||||
using Microsoft.Identity.Client;
|
|
||||||
|
|
||||||
namespace OE.ALGA.Optimalizalas
|
namespace OE.ALGA.Optimalizalas
|
||||||
{
|
{
|
||||||
|
|||||||
102
ALGA/Product.cs
102
ALGA/Product.cs
@@ -1,102 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Reflection;
|
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
|
|
||||||
namespace OE.ALGA;
|
|
||||||
|
|
||||||
public class Product
|
|
||||||
{
|
|
||||||
[Validation(AttributeValidation.NotEmpty)]
|
|
||||||
public string Name { get; }
|
|
||||||
|
|
||||||
[Validation(AttributeValidation.PositiveNumber)]
|
|
||||||
public decimal Price { get; }
|
|
||||||
|
|
||||||
[Validation(AttributeValidation.NonNegative)]
|
|
||||||
public int Quantity { get; }
|
|
||||||
|
|
||||||
[Validation(AttributeValidation.FutureDate)]
|
|
||||||
public DateTime? Experiation { get; }
|
|
||||||
|
|
||||||
public Product(string name, decimal price, int quantity, DateTime? experiarion)
|
|
||||||
{
|
|
||||||
Name = name;
|
|
||||||
Price = price;
|
|
||||||
Quantity = quantity;
|
|
||||||
Experiation = experiarion;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public enum AttributeValidation
|
|
||||||
{
|
|
||||||
NotEmpty,
|
|
||||||
PositiveNumber,
|
|
||||||
NonNegative,
|
|
||||||
FutureDate
|
|
||||||
}
|
|
||||||
public class ValidationAttribute : Attribute
|
|
||||||
{
|
|
||||||
public AttributeValidation Rule { get; }
|
|
||||||
public ValidationAttribute(AttributeValidation rule)
|
|
||||||
{
|
|
||||||
Rule = rule;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public static class Validator
|
|
||||||
{
|
|
||||||
public static void Validate(Product product)
|
|
||||||
{
|
|
||||||
bool flag = false;
|
|
||||||
var t = product.GetType();
|
|
||||||
|
|
||||||
foreach (var p in t.GetProperties())
|
|
||||||
{
|
|
||||||
var value = p.GetValue(product);
|
|
||||||
|
|
||||||
switch (p.GetCustomAttribute<ValidationAttribute>().Rule)
|
|
||||||
{
|
|
||||||
case AttributeValidation.NotEmpty:
|
|
||||||
if (Convert.ToString(value) == "")
|
|
||||||
{
|
|
||||||
flag = true;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AttributeValidation.PositiveNumber:
|
|
||||||
if (Convert.ToInt32(value) <= 0)
|
|
||||||
{
|
|
||||||
flag = true;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AttributeValidation.NonNegative:
|
|
||||||
if (Convert.ToInt32(value) < 0)
|
|
||||||
{
|
|
||||||
flag = true;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AttributeValidation.FutureDate:
|
|
||||||
if (Convert.ToDateTime(value) < DateTime.Now)
|
|
||||||
{
|
|
||||||
flag = true;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
if (flag)
|
|
||||||
{
|
|
||||||
throw new WrongProductException();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Console.WriteLine("Product added successfuly");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public class WrongProductException : Exception
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,470 +0,0 @@
|
|||||||
[
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"name": "Kiss Péter",
|
|
||||||
|
|
||||||
"position": "Fejlesztő",
|
|
||||||
|
|
||||||
"projects": [
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"projectName": "Webalkalmazás fejlesztés",
|
|
||||||
|
|
||||||
"startDate": "2023-01-15",
|
|
||||||
|
|
||||||
"endDate": "2023-03-20",
|
|
||||||
|
|
||||||
"tasks": [
|
|
||||||
|
|
||||||
{ "taskName": "Front-end implementáció", "hoursSpent": 40 },
|
|
||||||
|
|
||||||
{ "taskName": "Back-end implementáció", "hoursSpent": 60 }
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"projectName": "Mobilalkalmazás fejlesztés",
|
|
||||||
|
|
||||||
"startDate": "2023-04-10",
|
|
||||||
|
|
||||||
"endDate": "2023-06-30",
|
|
||||||
|
|
||||||
"tasks": [
|
|
||||||
|
|
||||||
{ "taskName": "UI tervezés", "hoursSpent": 20 },
|
|
||||||
|
|
||||||
{ "taskName": "API integráció", "hoursSpent": 50 }
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"name": "Nagy Anna",
|
|
||||||
|
|
||||||
"position": "Projektmenedzser",
|
|
||||||
|
|
||||||
"projects": [
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"projectName": "Szoftver tesztelés",
|
|
||||||
|
|
||||||
"startDate": "2023-02-01",
|
|
||||||
|
|
||||||
"endDate": "2023-03-10",
|
|
||||||
|
|
||||||
"tasks": [
|
|
||||||
|
|
||||||
{ "taskName": "Tesztelési terv készítése", "hoursSpent": 15 },
|
|
||||||
|
|
||||||
{ "taskName": "Automatizált tesztek", "hoursSpent": 45 }
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"name": "Szabó László",
|
|
||||||
|
|
||||||
"position": "Elemző",
|
|
||||||
|
|
||||||
"projects": [
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"projectName": "Adatgyűjtés",
|
|
||||||
|
|
||||||
"startDate": "2023-01-20",
|
|
||||||
|
|
||||||
"endDate": "2023-04-05",
|
|
||||||
|
|
||||||
"tasks": [
|
|
||||||
|
|
||||||
{ "taskName": "Adattisztítás", "hoursSpent": 30 },
|
|
||||||
|
|
||||||
{ "taskName": "Adatvizualizáció", "hoursSpent": 25 }
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"name": "Horváth Emese",
|
|
||||||
|
|
||||||
"position": "Marketing szakértő",
|
|
||||||
|
|
||||||
"projects": [
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"projectName": "Kampánytervezés",
|
|
||||||
|
|
||||||
"startDate": "2023-03-01",
|
|
||||||
|
|
||||||
"endDate": "2023-05-15",
|
|
||||||
|
|
||||||
"tasks": [
|
|
||||||
|
|
||||||
{ "taskName": "Célcsoport elemzés", "hoursSpent": 10 },
|
|
||||||
|
|
||||||
{ "taskName": "Kampány kivitelezés", "hoursSpent": 35 }
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"name": "Molnár Zoltán",
|
|
||||||
|
|
||||||
"position": "Backend fejlesztő",
|
|
||||||
|
|
||||||
"projects": [
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"projectName": "Adatbázis optimalizáció",
|
|
||||||
|
|
||||||
"startDate": "2023-02-10",
|
|
||||||
|
|
||||||
"endDate": "2023-03-30",
|
|
||||||
|
|
||||||
"tasks": [
|
|
||||||
|
|
||||||
{ "taskName": "Lekérdezések optimalizálása", "hoursSpent": 25 },
|
|
||||||
|
|
||||||
{ "taskName": "Indexek készítése", "hoursSpent": 20 }
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"name": "Kovács Gábor",
|
|
||||||
|
|
||||||
"position": "Frontend fejlesztő",
|
|
||||||
|
|
||||||
"projects": [
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"projectName": "UI fejlesztés",
|
|
||||||
|
|
||||||
"startDate": "2023-01-05",
|
|
||||||
|
|
||||||
"endDate": "2023-02-15",
|
|
||||||
|
|
||||||
"tasks": [
|
|
||||||
|
|
||||||
{ "taskName": "HTML/CSS fejlesztés", "hoursSpent": 35 },
|
|
||||||
|
|
||||||
{ "taskName": "JavaScript implementáció", "hoursSpent": 30 }
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"name": "Tóth Erika",
|
|
||||||
|
|
||||||
"position": "Tesztmérnök",
|
|
||||||
|
|
||||||
"projects": [
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"projectName": "Szoftver minőségbiztosítás",
|
|
||||||
|
|
||||||
"startDate": "2023-04-01",
|
|
||||||
|
|
||||||
"endDate": "2023-06-01",
|
|
||||||
|
|
||||||
"tasks": [
|
|
||||||
|
|
||||||
{ "taskName": "Tesztelés", "hoursSpent": 50 },
|
|
||||||
|
|
||||||
{ "taskName": "Hibajavítás", "hoursSpent": 20 }
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"name": "Varga András",
|
|
||||||
|
|
||||||
"position": "Projektmenedzser",
|
|
||||||
|
|
||||||
"projects": [
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"projectName": "Agilis fejlesztés",
|
|
||||||
|
|
||||||
"startDate": "2023-01-15",
|
|
||||||
|
|
||||||
"endDate": "2023-04-20",
|
|
||||||
|
|
||||||
"tasks": [
|
|
||||||
|
|
||||||
{ "taskName": "Csapat koordinálás", "hoursSpent": 30 },
|
|
||||||
|
|
||||||
{ "taskName": "Időterv készítés", "hoursSpent": 25 }
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"name": "Bognár Rita",
|
|
||||||
|
|
||||||
"position": "Adatbányász",
|
|
||||||
|
|
||||||
"projects": [
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"projectName": "Piackutatás",
|
|
||||||
|
|
||||||
"startDate": "2023-03-10",
|
|
||||||
|
|
||||||
"endDate": "2023-05-20",
|
|
||||||
|
|
||||||
"tasks": [
|
|
||||||
|
|
||||||
{ "taskName": "Adatgyűjtés", "hoursSpent": 40 },
|
|
||||||
|
|
||||||
{ "taskName": "Elemzés", "hoursSpent": 30 }
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"name": "Szilágyi Tamás",
|
|
||||||
|
|
||||||
"position": "DevOps mérnök",
|
|
||||||
|
|
||||||
"projects": [
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"projectName": "Infrastruktúra automatizálás",
|
|
||||||
|
|
||||||
"startDate": "2023-02-15",
|
|
||||||
|
|
||||||
"endDate": "2023-03-30",
|
|
||||||
|
|
||||||
"tasks": [
|
|
||||||
|
|
||||||
{ "taskName": "CI/CD pipeline fejlesztés", "hoursSpent": 60 },
|
|
||||||
|
|
||||||
{ "taskName": "Deploy folyamatok optimalizálása", "hoursSpent": 30 }
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"name": "Kiss Júlia",
|
|
||||||
|
|
||||||
"position": "Szoftverfejlesztő",
|
|
||||||
|
|
||||||
"projects": [
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"projectName": "E-kereskedelmi platform fejlesztés",
|
|
||||||
|
|
||||||
"startDate": "2023-01-25",
|
|
||||||
|
|
||||||
"endDate": "2023-04-15",
|
|
||||||
|
|
||||||
"tasks": [
|
|
||||||
|
|
||||||
{ "taskName": "Backend logika", "hoursSpent": 45 },
|
|
||||||
|
|
||||||
{ "taskName": "Frontend integráció", "hoursSpent": 35 }
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"name": "Tóth László",
|
|
||||||
|
|
||||||
"position": "Full Stack fejlesztő",
|
|
||||||
|
|
||||||
"projects": [
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"projectName": "Mobilalkalmazás UI/UX fejlesztés",
|
|
||||||
|
|
||||||
"startDate": "2023-02-01",
|
|
||||||
|
|
||||||
"endDate": "2023-05-01",
|
|
||||||
|
|
||||||
"tasks": [
|
|
||||||
|
|
||||||
{ "taskName": "UI tervezés", "hoursSpent": 40 },
|
|
||||||
|
|
||||||
{ "taskName": "Backend integráció", "hoursSpent": 50 }
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"name": "Farkas János",
|
|
||||||
|
|
||||||
"position": "Adatbiztonsági szakértő",
|
|
||||||
|
|
||||||
"projects": [
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"projectName": "Biztonsági audit",
|
|
||||||
|
|
||||||
"startDate": "2023-03-05",
|
|
||||||
|
|
||||||
"endDate": "2023-06-10",
|
|
||||||
|
|
||||||
"tasks": [
|
|
||||||
|
|
||||||
{ "taskName": "Sebezhetőségek felderítése", "hoursSpent": 20 },
|
|
||||||
|
|
||||||
{ "taskName": "Javítási javaslatok", "hoursSpent": 30 }
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"name": "Nagy Attila",
|
|
||||||
|
|
||||||
"position": "Tesztelő",
|
|
||||||
|
|
||||||
"projects": [
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"projectName": "Mobilalkalmazás tesztelés",
|
|
||||||
|
|
||||||
"startDate": "2023-01-20",
|
|
||||||
|
|
||||||
"endDate": "2023-02-25",
|
|
||||||
|
|
||||||
"tasks": [
|
|
||||||
|
|
||||||
{ "taskName": "Automatizált tesztelés", "hoursSpent": 25 },
|
|
||||||
|
|
||||||
{ "taskName": "Kézi tesztelés", "hoursSpent": 40 }
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"name": "Kovács Róbert",
|
|
||||||
|
|
||||||
"position": "Üzleti elemző",
|
|
||||||
|
|
||||||
"projects": [
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
"projectName": "Folyamat elemzés",
|
|
||||||
|
|
||||||
"startDate": "2023-01-10",
|
|
||||||
|
|
||||||
"endDate": "2023-04-10",
|
|
||||||
|
|
||||||
"tasks": [
|
|
||||||
|
|
||||||
{ "taskName": "Folyamat elemzése", "hoursSpent": 30 },
|
|
||||||
|
|
||||||
{ "taskName": "Dokumentáció", "hoursSpent": 15 }
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -16,8 +16,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sandbox", "Sandbox\Sandbox.
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tesztek", "Tesztek\Tesztek.csproj", "{AFE58A8F-D9BA-4EBF-810D-F7E07E5A296C}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tesztek", "Tesztek\Tesztek.csproj", "{AFE58A8F-D9BA-4EBF-810D-F7E07E5A296C}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "zh", "zh\zh.csproj", "{EABD26DD-3AE7-4941-BDFD-79862E7279F5}"
|
|
||||||
EndProject
|
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@@ -44,10 +42,6 @@ Global
|
|||||||
{AFE58A8F-D9BA-4EBF-810D-F7E07E5A296C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{AFE58A8F-D9BA-4EBF-810D-F7E07E5A296C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{AFE58A8F-D9BA-4EBF-810D-F7E07E5A296C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{AFE58A8F-D9BA-4EBF-810D-F7E07E5A296C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{AFE58A8F-D9BA-4EBF-810D-F7E07E5A296C}.Release|Any CPU.Build.0 = Release|Any CPU
|
{AFE58A8F-D9BA-4EBF-810D-F7E07E5A296C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{EABD26DD-3AE7-4941-BDFD-79862E7279F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{EABD26DD-3AE7-4941-BDFD-79862E7279F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{EABD26DD-3AE7-4941-BDFD-79862E7279F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{EABD26DD-3AE7-4941-BDFD-79862E7279F5}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
110
zh/Program.cs
110
zh/Program.cs
@@ -1,110 +0,0 @@
|
|||||||
using System.Reflection;
|
|
||||||
using System.Security.Cryptography.X509Certificates;
|
|
||||||
using System.Xml.Serialization;
|
|
||||||
using Castle.Components.DictionaryAdapter.Xml;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Microsoft.VisualBasic;
|
|
||||||
|
|
||||||
namespace zh
|
|
||||||
{
|
|
||||||
public class ProductPackage
|
|
||||||
{
|
|
||||||
public List<Category> Categories { get; set; } = new List<Category>();
|
|
||||||
}
|
|
||||||
public class Category
|
|
||||||
{
|
|
||||||
string Name { get; set; }
|
|
||||||
public List<Product> Products = new List<Product>();
|
|
||||||
}
|
|
||||||
public class Product
|
|
||||||
{
|
|
||||||
[Requirements(Requirement.RequiredNonEmpty)]
|
|
||||||
public string Sku { get; set; }
|
|
||||||
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
[Requirements(Requirement.RequiredNonNegative)]
|
|
||||||
public int Price { get; set; }
|
|
||||||
}
|
|
||||||
public class Program
|
|
||||||
{
|
|
||||||
public static void Main()
|
|
||||||
{
|
|
||||||
ProductPackage productackage = new ProductPackage();
|
|
||||||
XmlSerializer serializer = new XmlSerializer(typeof(ProductPackage));
|
|
||||||
using (StreamReader reader = new StreamReader("zh/products.xml"))
|
|
||||||
{
|
|
||||||
productackage.Categories = (List<Category>)serializer.Deserialize(reader);
|
|
||||||
}
|
|
||||||
Shop shop = new Shop();
|
|
||||||
shop.Category.AddRange(productackage.Categories);
|
|
||||||
shop.SaveChanges();
|
|
||||||
List<Product> expensive = new List<Product>();
|
|
||||||
foreach (Category category in productackage.Categories)
|
|
||||||
{
|
|
||||||
expensive.Concat(from x in category.Products
|
|
||||||
where x.Price > 10000
|
|
||||||
select x);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public enum Requirement
|
|
||||||
{
|
|
||||||
RequiredNonEmpty,
|
|
||||||
RequiredNonNegative
|
|
||||||
}
|
|
||||||
public class RequirementsAttribute : Attribute
|
|
||||||
{
|
|
||||||
public Requirement Rule { get; set; }
|
|
||||||
public RequirementsAttribute(Requirement rule)
|
|
||||||
{
|
|
||||||
Rule = rule;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public class Validator
|
|
||||||
{
|
|
||||||
public static void Validate(Product product)
|
|
||||||
{
|
|
||||||
var t = product.GetType();
|
|
||||||
var p = t.GetProperty("Sku");
|
|
||||||
var a = p.GetCustomAttribute<RequirementsAttribute>();
|
|
||||||
var v = p.GetValue(product);
|
|
||||||
if (a.Rule == Requirement.RequiredNonEmpty)
|
|
||||||
{
|
|
||||||
if (v == null || (string)v == "")
|
|
||||||
{
|
|
||||||
throw new WrongProductException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(a.Rule == Requirement.RequiredNonNegative)
|
|
||||||
{
|
|
||||||
if ((int)v < 0)
|
|
||||||
{
|
|
||||||
throw new WrongProductException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public class WrongProductException : Exception
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
public class Shop : DbContext
|
|
||||||
{
|
|
||||||
//public DbSet<ProductPackage> ProductPackage { get; set; }
|
|
||||||
public DbSet<Category> Category { get; set; }
|
|
||||||
public DbSet<Product> Product { get; set; }
|
|
||||||
public DbSet<Product> Expensive { get; set; }
|
|
||||||
public Shop()
|
|
||||||
{
|
|
||||||
Database.EnsureDeleted();
|
|
||||||
Database.EnsureCreated();
|
|
||||||
}
|
|
||||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
|
||||||
{
|
|
||||||
string connStr = @"Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=Shopdb;Integrated Security=True;MultipleActiveResultSets=true";
|
|
||||||
optionsBuilder.UseSqlServer(connStr);
|
|
||||||
base.OnConfiguring(optionsBuilder);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
164
zh/products.xml
164
zh/products.xml
@@ -1,164 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<ProductPackage>
|
|
||||||
<Categories>
|
|
||||||
<Category>
|
|
||||||
<Name>Coffee</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>COF-1001</Sku><Name>Premium Arabica</Name><Price>12990</Price></Product>
|
|
||||||
<Product><Sku></Sku><Name>Extra Dark Roast</Name><Price>9990</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Tea</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>TEA-2001</Sku><Name>Green Tea</Name><Price>14990</Price></Product>
|
|
||||||
<Product><Sku>TEA-2002</Sku><Name>Black Tea</Name><Price>8990</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Chocolate</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>CHO-3001</Sku><Name>Dark Chocolate 85%</Name><Price>11990</Price></Product>
|
|
||||||
<Product><Sku>CHO-3002</Sku><Name>Milk Chocolate</Name><Price>4990</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Biscuits</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>BIS-4001</Sku><Name>Butter Cookies</Name><Price>10990</Price></Product>
|
|
||||||
<Product><Sku>BIS-4002</Sku><Name>Chocolate Chip</Name><Price>9990</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Juice</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>JUI-5001</Sku><Name>Orange Juice</Name><Price>6990</Price></Product>
|
|
||||||
<Product><Sku>JUI-5002</Sku><Name>Mango Juice</Name><Price>10990</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Snacks</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>SNA-6001</Sku><Name>Potato Chips</Name><Price>4990</Price></Product>
|
|
||||||
<Product><Sku>SNA-6002</Sku><Name>Nachos Cheese</Name><Price>11990</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Water</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>WAT-7001</Sku><Name>Mineral Water 0.5L</Name><Price>1990</Price></Product>
|
|
||||||
<Product><Sku>WAT-7002</Sku><Name>Mineral Water 1.5L</Name><Price>2490</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Energy Drinks</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>ENE-8001</Sku><Name>Energy Boost</Name><Price>11990</Price></Product>
|
|
||||||
<Product><Sku>ENE-8002</Sku><Name>Zero Sugar Energy</Name><Price>10990</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Beer</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>BEE-9001</Sku><Name>Lager Classic</Name><Price>5990</Price></Product>
|
|
||||||
<Product><Sku></Sku><Name>Craft IPA</Name><Price>12990</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Wine</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>WIN-10001</Sku><Name>Red Merlot</Name><Price>18990</Price></Product>
|
|
||||||
<Product><Sku>WIN-10002</Sku><Name>White Chardonnay</Name><Price>17990</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Cheese</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>CHE-11001</Sku><Name>Gouda</Name><Price>8990</Price></Product>
|
|
||||||
<Product><Sku>CHE-11002</Sku><Name>Parmesan</Name><Price>13990</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Meat</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>MEA-12001</Sku><Name>Beef Steak</Name><Price>25990</Price></Product>
|
|
||||||
<Product><Sku>MEA-12002</Sku><Name>Pork Sausage</Name><Price>9990</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Fish</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>FIS-13001</Sku><Name>Salmon Fillet</Name><Price>18990</Price></Product>
|
|
||||||
<Product><Sku>FIS-13002</Sku><Name>Tuna Can</Name><Price>6990</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Vegetables</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>VEG-14001</Sku><Name>Broccoli</Name><Price>4990</Price></Product>
|
|
||||||
<Product><Sku>VEG-14002</Sku><Name>Carrots</Name><Price>2990</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Fruits</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>FRU-15001</Sku><Name>Bananas</Name><Price>3990</Price></Product>
|
|
||||||
<Product><Sku>FRU-15002</Sku><Name>Apples</Name><Price>4490</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Dairy</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku></Sku><Name>Whole Milk</Name><Price>2590</Price></Product>
|
|
||||||
<Product><Sku>DAI-16002</Sku><Name>Yogurt</Name><Price>3290</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Bread</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>BRE-17001</Sku><Name>Wholegrain Bread</Name><Price>6990</Price></Product>
|
|
||||||
<Product><Sku>BRE-17002</Sku><Name>White Toast</Name><Price>5990</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Electronics</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>ELE-18001</Sku><Name>Wireless Headphones</Name><Price>29990</Price></Product>
|
|
||||||
<Product><Sku>ELE-18002</Sku><Name>Bluetooth Speaker</Name><Price>24990</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Books</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>BOO-19001</Sku><Name>Programming in C#</Name><Price>15990</Price></Product>
|
|
||||||
<Product><Sku>BOO-19002</Sku><Name>History of AI</Name><Price>18990</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
|
|
||||||
<Category>
|
|
||||||
<Name>Games</Name>
|
|
||||||
<Products>
|
|
||||||
<Product><Sku>GAM-20001</Sku><Name>Chess Set</Name><Price>8990</Price></Product>
|
|
||||||
<Product><Sku></Sku><Name>Video Game Controller</Name><Price>21990</Price></Product>
|
|
||||||
</Products>
|
|
||||||
</Category>
|
|
||||||
</Categories>
|
|
||||||
</ProductPackage>
|
|
||||||
16
zh/zh.csproj
16
zh/zh.csproj
@@ -1,16 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.10" />
|
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.10" />
|
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" Version="9.0.10" />
|
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.10" />
|
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
Reference in New Issue
Block a user