From e6e3e646018d9c7b4a5fc8cf2fcfb71ea3002713 Mon Sep 17 00:00:00 2001 From: Dimitar Byalkov Date: Sun, 7 Mar 2021 11:30:53 +0200 Subject: [PATCH 1/2] Sync (#2) * EntityFramework * commit Americans * commit changes * change * class product * product business * methods buy and sell * private atributes Co-authored-by: ani-konarcheva Co-authored-by: Aneliya Konarcheva <60808931+annie-prog@users.noreply.github.com> --- .../LuminousSales/Business/DealsBusiness.cs | 12 ++++ .../Business/PermissionsBusiness.cs | 11 ++++ .../LuminousSales/Business/ProductBusiness.cs | 66 +++++++++++++++++++ .../LuminousSales/Business/RolesBusiness.cs | 11 ++++ .../Business/RolesToPermissionBusiness.cs | 12 ++++ .../LuminousSales/Business/StocksBusiness.cs | 11 ++++ .../LuminousSales/Business/UsersBusiness.cs | 11 ++++ .../Business/UsersToRolesBusiness.cs | 11 ++++ .../LuminousSales/Data/Model/Product.cs | 14 ++++ .../LuminousSales/Data/ProductContext.cs | 17 +++++ .../LuminousSales/LuminousSales.csproj | 4 ++ LuminousSales/LuminousSales/Program.cs | 5 +- 12 files changed, 183 insertions(+), 2 deletions(-) create mode 100644 LuminousSales/LuminousSales/Business/DealsBusiness.cs create mode 100644 LuminousSales/LuminousSales/Business/PermissionsBusiness.cs create mode 100644 LuminousSales/LuminousSales/Business/ProductBusiness.cs create mode 100644 LuminousSales/LuminousSales/Business/RolesBusiness.cs create mode 100644 LuminousSales/LuminousSales/Business/RolesToPermissionBusiness.cs create mode 100644 LuminousSales/LuminousSales/Business/StocksBusiness.cs create mode 100644 LuminousSales/LuminousSales/Business/UsersBusiness.cs create mode 100644 LuminousSales/LuminousSales/Business/UsersToRolesBusiness.cs create mode 100644 LuminousSales/LuminousSales/Data/Model/Product.cs create mode 100644 LuminousSales/LuminousSales/Data/ProductContext.cs diff --git a/LuminousSales/LuminousSales/Business/DealsBusiness.cs b/LuminousSales/LuminousSales/Business/DealsBusiness.cs new file mode 100644 index 0000000..a32ceee --- /dev/null +++ b/LuminousSales/LuminousSales/Business/DealsBusiness.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace LuminousSales.Business +{ + public class DealsBusiness + { + private DealContext dealContext; + + } +} diff --git a/LuminousSales/LuminousSales/Business/PermissionsBusiness.cs b/LuminousSales/LuminousSales/Business/PermissionsBusiness.cs new file mode 100644 index 0000000..7215886 --- /dev/null +++ b/LuminousSales/LuminousSales/Business/PermissionsBusiness.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace LuminousSales.Business +{ + public class PermissionsBusiness + { + private PermissionContext permissionContext; + } +} diff --git a/LuminousSales/LuminousSales/Business/ProductBusiness.cs b/LuminousSales/LuminousSales/Business/ProductBusiness.cs new file mode 100644 index 0000000..b2e0978 --- /dev/null +++ b/LuminousSales/LuminousSales/Business/ProductBusiness.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using LuminousSales.Data; +using LuminousSales.Data.Model; + +namespace LuminousSales.Business +{ + public class ProductBusiness + { + private ProductContext productContext; + + public List GetAll() + { + using (productContext = new ProductContext()) + { + return productContext.Products.ToList(); + } + } + + public Product Get(int id) + { + using (productContext = new ProductContext()) + { + return productContext.Products.Find(id); + } + } + + public void Buy(Product product) + { + using (productContext = new ProductContext()) + { + productContext.Products.Add(product); + productContext.SaveChanges(); + } + } + + public void Update(Product product) + { + using (productContext = new ProductContext()) + { + var item = productContext.Products.Find(product.Id); + if (item != null) + { + productContext.Entry(item).CurrentValues.SetValues(product); + productContext.SaveChanges(); + } + } + } + + public void Sell(int id) + { + using (productContext = new ProductContext()) + { + var product = productContext.Products.Find(id); + if (product != null) + { + productContext.Products.Remove(product); + productContext.SaveChanges(); + } + } + } + + } +} diff --git a/LuminousSales/LuminousSales/Business/RolesBusiness.cs b/LuminousSales/LuminousSales/Business/RolesBusiness.cs new file mode 100644 index 0000000..ab41249 --- /dev/null +++ b/LuminousSales/LuminousSales/Business/RolesBusiness.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace LuminousSales.Business +{ + public class RolesBusiness + { + private RoleContext roleContext; + } +} diff --git a/LuminousSales/LuminousSales/Business/RolesToPermissionBusiness.cs b/LuminousSales/LuminousSales/Business/RolesToPermissionBusiness.cs new file mode 100644 index 0000000..80a0db9 --- /dev/null +++ b/LuminousSales/LuminousSales/Business/RolesToPermissionBusiness.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace LuminousSales.Business +{ + public class RolesToPermissionBusiness + { + private RolesToPermissionContext rolesToPermissionContext; + + } +} diff --git a/LuminousSales/LuminousSales/Business/StocksBusiness.cs b/LuminousSales/LuminousSales/Business/StocksBusiness.cs new file mode 100644 index 0000000..cba3963 --- /dev/null +++ b/LuminousSales/LuminousSales/Business/StocksBusiness.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace LuminousSales.Business +{ + public class StocksBusiness + { + private StockContext stockContext; + } +} diff --git a/LuminousSales/LuminousSales/Business/UsersBusiness.cs b/LuminousSales/LuminousSales/Business/UsersBusiness.cs new file mode 100644 index 0000000..fe5e878 --- /dev/null +++ b/LuminousSales/LuminousSales/Business/UsersBusiness.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace LuminousSales.Business +{ + public class UsersBusiness + { + private UserContext userContext; + } +} diff --git a/LuminousSales/LuminousSales/Business/UsersToRolesBusiness.cs b/LuminousSales/LuminousSales/Business/UsersToRolesBusiness.cs new file mode 100644 index 0000000..253f76f --- /dev/null +++ b/LuminousSales/LuminousSales/Business/UsersToRolesBusiness.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace LuminousSales.Business +{ + public class UsersToRolesBusiness + { + private UsersToRolesContext usersToRolesContext; + } +} diff --git a/LuminousSales/LuminousSales/Data/Model/Product.cs b/LuminousSales/LuminousSales/Data/Model/Product.cs new file mode 100644 index 0000000..cbf3b96 --- /dev/null +++ b/LuminousSales/LuminousSales/Data/Model/Product.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace LuminousSales.Data.Model +{ + public class Product + { + public int Id { get; set; } + public string Name { get; set; } + public decimal Price { get; set; } + public int AmountInStock { get; set; } + } +} diff --git a/LuminousSales/LuminousSales/Data/ProductContext.cs b/LuminousSales/LuminousSales/Data/ProductContext.cs new file mode 100644 index 0000000..730cb2b --- /dev/null +++ b/LuminousSales/LuminousSales/Data/ProductContext.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Data.Entity; +using System.Text; +using LuminousSales.Data.Model; + +namespace LuminousSales.Data +{ + public class ProductContext : DbContext + { + public ProductContext():base("name = ProductContext") + { + + } + public DbSet Products { get; set; } + } +} diff --git a/LuminousSales/LuminousSales/LuminousSales.csproj b/LuminousSales/LuminousSales/LuminousSales.csproj index c73e0d1..983efc4 100644 --- a/LuminousSales/LuminousSales/LuminousSales.csproj +++ b/LuminousSales/LuminousSales/LuminousSales.csproj @@ -5,4 +5,8 @@ netcoreapp3.1 + + + + diff --git a/LuminousSales/LuminousSales/Program.cs b/LuminousSales/LuminousSales/Program.cs index d1f6b85..2fb4f7b 100644 --- a/LuminousSales/LuminousSales/Program.cs +++ b/LuminousSales/LuminousSales/Program.cs @@ -2,13 +2,14 @@ namespace LuminousSales { - class Program + public class Program { static void Main(string[] args) { int a = int.Parse(Console.ReadLine()); Console.WriteLine(a); - Console.WriteLine("Jazcurka"); + + } } } From 199ac62f4bd7995846d5664ac6ef850f1b77d4ed Mon Sep 17 00:00:00 2001 From: batgo6o Date: Sun, 7 Mar 2021 11:31:52 +0200 Subject: [PATCH 2/2] Models Class Library Upodated --- LuminousSales/LuminousSales.sln | 8 ++++++- LuminousSales/Models/LuminousContext.cs | 23 +++++++++++++++++++ LuminousSales/Models/Models.csproj | 11 +++++++++ LuminousSales/Models/Models/Deal.cs | 15 ++++++++++++ .../Models/Interfaces/IBaseProperties.cs | 12 ++++++++++ .../Models/Interfaces/IBaseSalesProperties.cs | 15 ++++++++++++ LuminousSales/Models/Models/Permission.cs | 11 +++++++++ LuminousSales/Models/Models/Product.cs | 12 ++++++++++ LuminousSales/Models/Models/Role.cs | 14 +++++++++++ LuminousSales/Models/Models/Stock.cs | 17 ++++++++++++++ LuminousSales/Models/Models/User.cs | 17 ++++++++++++++ 11 files changed, 154 insertions(+), 1 deletion(-) create mode 100644 LuminousSales/Models/LuminousContext.cs create mode 100644 LuminousSales/Models/Models.csproj create mode 100644 LuminousSales/Models/Models/Deal.cs create mode 100644 LuminousSales/Models/Models/Interfaces/IBaseProperties.cs create mode 100644 LuminousSales/Models/Models/Interfaces/IBaseSalesProperties.cs create mode 100644 LuminousSales/Models/Models/Permission.cs create mode 100644 LuminousSales/Models/Models/Product.cs create mode 100644 LuminousSales/Models/Models/Role.cs create mode 100644 LuminousSales/Models/Models/Stock.cs create mode 100644 LuminousSales/Models/Models/User.cs diff --git a/LuminousSales/LuminousSales.sln b/LuminousSales/LuminousSales.sln index 318ed99..3fabfc3 100644 --- a/LuminousSales/LuminousSales.sln +++ b/LuminousSales/LuminousSales.sln @@ -3,7 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.31019.35 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LuminousSales", "LuminousSales\LuminousSales.csproj", "{0B102226-3EAB-4DA3-9C1F-4053E4FA2232}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LuminousSales", "LuminousSales\LuminousSales.csproj", "{0B102226-3EAB-4DA3-9C1F-4053E4FA2232}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Models", "Models\Models.csproj", "{40C482BF-B9C4-4460-BB1C-5A90959D1838}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -15,6 +17,10 @@ Global {0B102226-3EAB-4DA3-9C1F-4053E4FA2232}.Debug|Any CPU.Build.0 = Debug|Any CPU {0B102226-3EAB-4DA3-9C1F-4053E4FA2232}.Release|Any CPU.ActiveCfg = Release|Any CPU {0B102226-3EAB-4DA3-9C1F-4053E4FA2232}.Release|Any CPU.Build.0 = Release|Any CPU + {40C482BF-B9C4-4460-BB1C-5A90959D1838}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40C482BF-B9C4-4460-BB1C-5A90959D1838}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40C482BF-B9C4-4460-BB1C-5A90959D1838}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40C482BF-B9C4-4460-BB1C-5A90959D1838}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/LuminousSales/Models/LuminousContext.cs b/LuminousSales/Models/LuminousContext.cs new file mode 100644 index 0000000..e8abac4 --- /dev/null +++ b/LuminousSales/Models/LuminousContext.cs @@ -0,0 +1,23 @@ +using Microsoft.EntityFrameworkCore; +using Models.Models; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Models +{ + class LuminousContext : DbContext + { + public LuminousContext(): base("name=LuminousContext") + { + + } + public DbSet User { get; set; } + public DbSet Role { get; set; } + public DbSet Permission { get; set; } + public DbSet Product { get; set; } + public DbSet Deal{ get; set; } + public DbSet Stock { get; set; } + + } +} diff --git a/LuminousSales/Models/Models.csproj b/LuminousSales/Models/Models.csproj new file mode 100644 index 0000000..bc27cae --- /dev/null +++ b/LuminousSales/Models/Models.csproj @@ -0,0 +1,11 @@ + + + + netstandard2.0 + + + + + + + diff --git a/LuminousSales/Models/Models/Deal.cs b/LuminousSales/Models/Models/Deal.cs new file mode 100644 index 0000000..fb87625 --- /dev/null +++ b/LuminousSales/Models/Models/Deal.cs @@ -0,0 +1,15 @@ +using Models.Models.Interfaces; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; + +namespace Models.Models +{ + public class Deal : IBaseSalesProperties + { + public User User { get; set; } + public ICollection ProductsADeal { get; set; } + public double Amount { get; set; } + [Timestamp] + public byte[] Time { get; set; } + } +} \ No newline at end of file diff --git a/LuminousSales/Models/Models/Interfaces/IBaseProperties.cs b/LuminousSales/Models/Models/Interfaces/IBaseProperties.cs new file mode 100644 index 0000000..d877d96 --- /dev/null +++ b/LuminousSales/Models/Models/Interfaces/IBaseProperties.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Models.Models.Interfaces +{ + public interface IBaseProperties + { + int Id { get; set; } + string Name { get; set; } + } +} diff --git a/LuminousSales/Models/Models/Interfaces/IBaseSalesProperties.cs b/LuminousSales/Models/Models/Interfaces/IBaseSalesProperties.cs new file mode 100644 index 0000000..2ee3472 --- /dev/null +++ b/LuminousSales/Models/Models/Interfaces/IBaseSalesProperties.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Text; + +namespace Models.Models.Interfaces +{ + interface IBaseSalesProperties + { + User User { get; set; } + ICollection ProductsADeal { get; set;} + double Amount { get; set; } + public byte[] Time { get; set; } + } +} diff --git a/LuminousSales/Models/Models/Permission.cs b/LuminousSales/Models/Models/Permission.cs new file mode 100644 index 0000000..523351c --- /dev/null +++ b/LuminousSales/Models/Models/Permission.cs @@ -0,0 +1,11 @@ +using Models.Models.Interfaces; + +namespace Models.Models +{ + public class Permission : IBaseProperties + { + public int Id { get; set; } + + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/LuminousSales/Models/Models/Product.cs b/LuminousSales/Models/Models/Product.cs new file mode 100644 index 0000000..0e49343 --- /dev/null +++ b/LuminousSales/Models/Models/Product.cs @@ -0,0 +1,12 @@ +using Models.Models.Interfaces; + +namespace Models.Models +{ + public class Product : IBaseProperties + { + public int Id { get; set; } + public string Name { get; set; } + public double Price { get; set; } + public double AvailableInStock { get; set; } + } +} \ No newline at end of file diff --git a/LuminousSales/Models/Models/Role.cs b/LuminousSales/Models/Models/Role.cs new file mode 100644 index 0000000..c267db3 --- /dev/null +++ b/LuminousSales/Models/Models/Role.cs @@ -0,0 +1,14 @@ +using Models.Models.Interfaces; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; + +namespace Models.Models +{ + public class Role : IBaseProperties + { + public int Id { get; set; } + public string Name { get; set; } + public ICollection UsersWithTheRole { get; set; } + public ICollection RolesPermissions{ get; set; } + } +} \ No newline at end of file diff --git a/LuminousSales/Models/Models/Stock.cs b/LuminousSales/Models/Models/Stock.cs new file mode 100644 index 0000000..1d6e4cb --- /dev/null +++ b/LuminousSales/Models/Models/Stock.cs @@ -0,0 +1,17 @@ +using Models.Models.Interfaces; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Text; + +namespace Models.Models +{ + class Stock : IBaseSalesProperties + { + public User User { get; set; } + public ICollection ProductsADeal { get; set; } + public double Amount { get; set; } + [Timestamp] + public byte[] Time { get; set; } + } +} diff --git a/LuminousSales/Models/Models/User.cs b/LuminousSales/Models/Models/User.cs new file mode 100644 index 0000000..3691aa5 --- /dev/null +++ b/LuminousSales/Models/Models/User.cs @@ -0,0 +1,17 @@ +using Models.Models.Interfaces; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Models.Models +{ + public class User : IBaseProperties + { + public int Id { get; set; } + public string Name { get; set; } + public string Passcode { get; set; } + public Role Role { get; set; } + public ICollection ItemsSoldByUser{ get; set; } + public ICollection ItemsStockedByUser { get; set; } + } +}