From e6e5311f41674fdb20a210484a822fb99c76da67 Mon Sep 17 00:00:00 2001 From: pin11kurochkin Date: Fri, 5 Jan 2024 03:31:59 +0300 Subject: [PATCH 1/5] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=81=D1=83=D1=89=D0=BD=D0=BE=D1=81=D1=82=D0=B8?= =?UTF-8?q?=20=D0=BA=D0=BE=D1=80=D0=B7=D0=B8=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DeliveryService_ASP.NET.sln | 13 ++++++++++ ...veryService.Services.BacketAPI.Core.csproj | 9 +++++++ .../Entities/ShoppingCart.cs | 25 +++++++++++++++++++ .../Entities/ShoppingCartItem.cs | 9 +++++++ 4 files changed, 56 insertions(+) create mode 100644 Services/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BacketAPI.Core.csproj create mode 100644 Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCart.cs create mode 100644 Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCartItem.cs diff --git a/DeliveryService_ASP.NET.sln b/DeliveryService_ASP.NET.sln index 6251c1b..7afa243 100644 --- a/DeliveryService_ASP.NET.sln +++ b/DeliveryService_ASP.NET.sln @@ -117,6 +117,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AuthAPI", "AuthAPI", "{D602 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DeliveryService.AuthAPI", "Services\AuthAPI\DeliveryService.AuthAPI\DeliveryService.AuthAPI.csproj", "{65BFA16E-4839-4F88-988B-D922EB90AE6C}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BacketAPI", "BacketAPI", "{6EF1F7C5-8F9C-4A0A-868B-4E1C2FB1E8E1}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{0C72ACCB-B634-42D0-A957-A1F57C75C11B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeliveryService.Services.BacketAPI.Core", "Services\DeliveryService.Services.BacketAPI.Core\DeliveryService.Services.BacketAPI.Core.csproj", "{422B30D8-7AAC-4BE8-A429-34147EA1BDA7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -251,6 +257,10 @@ Global {65BFA16E-4839-4F88-988B-D922EB90AE6C}.Debug|Any CPU.Build.0 = Debug|Any CPU {65BFA16E-4839-4F88-988B-D922EB90AE6C}.Release|Any CPU.ActiveCfg = Release|Any CPU {65BFA16E-4839-4F88-988B-D922EB90AE6C}.Release|Any CPU.Build.0 = Release|Any CPU + {422B30D8-7AAC-4BE8-A429-34147EA1BDA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {422B30D8-7AAC-4BE8-A429-34147EA1BDA7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {422B30D8-7AAC-4BE8-A429-34147EA1BDA7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {422B30D8-7AAC-4BE8-A429-34147EA1BDA7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -308,6 +318,9 @@ Global {0615BB07-258F-444C-916D-CAED870A014C} = {91CB81BB-753A-492E-A07F-A89284D5F090} {D602E2F2-3A5A-483C-A55E-6F65E5597EAC} = {E6E51EE1-41B2-4693-BFCF-2ECDA6A48655} {65BFA16E-4839-4F88-988B-D922EB90AE6C} = {D602E2F2-3A5A-483C-A55E-6F65E5597EAC} + {6EF1F7C5-8F9C-4A0A-868B-4E1C2FB1E8E1} = {E6E51EE1-41B2-4693-BFCF-2ECDA6A48655} + {0C72ACCB-B634-42D0-A957-A1F57C75C11B} = {6EF1F7C5-8F9C-4A0A-868B-4E1C2FB1E8E1} + {422B30D8-7AAC-4BE8-A429-34147EA1BDA7} = {0C72ACCB-B634-42D0-A957-A1F57C75C11B} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {8C515027-DD6A-4FB2-A343-04CC8DDFD87E} diff --git a/Services/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BacketAPI.Core.csproj b/Services/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BacketAPI.Core.csproj new file mode 100644 index 0000000..132c02c --- /dev/null +++ b/Services/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BacketAPI.Core.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCart.cs b/Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCart.cs new file mode 100644 index 0000000..3651c20 --- /dev/null +++ b/Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCart.cs @@ -0,0 +1,25 @@ +namespace DeliveryService.Services.BacketAPI.Core.Entities; + +public class ShoppingCart +{ + public string UserName { get; set; } + + public List Items { get; set; } = new List(); + + public ShoppingCart(string userName) + { + UserName = userName; + } + + public decimal TotalPrice + { + get + { + decimal totalPrice = 0; + foreach (var item in Items) + totalPrice += item.Price * item.Quantity; + + return totalPrice; + } + } +} diff --git a/Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCartItem.cs b/Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCartItem.cs new file mode 100644 index 0000000..a40e313 --- /dev/null +++ b/Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCartItem.cs @@ -0,0 +1,9 @@ +namespace DeliveryService.Services.BacketAPI.Core.Entities; + +public class ShoppingCartItem +{ + public string ProductId { get; set; } + public string ProductName { get; set; } + public int Quantity { get; set; } + public decimal Price { get; set; } +} From d6102debc276b1ab3bfbb0ac04fbee232f32aa88 Mon Sep 17 00:00:00 2001 From: pin11kurochkin Date: Fri, 5 Jan 2024 03:34:20 +0300 Subject: [PATCH 2/5] =?UTF-8?q?=D0=90=D0=B1=D1=81=D1=82=D1=80=D0=B0=D0=BA?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20=D1=80=D0=B5=D0=BF=D0=BE=D0=B7=D0=B8=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=B8=D1=8F=20=D0=BA=D0=BE=D1=80=D0=B7=D0=B8=D0=BD?= =?UTF-8?q?=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DeliveryService_ASP.NET.sln | 4 ++-- ...=> DeliveryService.Services.BasketAPI.Core.csproj} | 0 .../Entities/ShoppingCart.cs | 2 +- .../Entities/ShoppingCartItem.cs | 2 +- .../Interfaces/IBasketRepository.cs | 11 +++++++++++ 5 files changed, 15 insertions(+), 4 deletions(-) rename Services/DeliveryService.Services.BacketAPI.Core/{DeliveryService.Services.BacketAPI.Core.csproj => DeliveryService.Services.BasketAPI.Core.csproj} (100%) create mode 100644 Services/DeliveryService.Services.BacketAPI.Core/Interfaces/IBasketRepository.cs diff --git a/DeliveryService_ASP.NET.sln b/DeliveryService_ASP.NET.sln index 7afa243..23d2500 100644 --- a/DeliveryService_ASP.NET.sln +++ b/DeliveryService_ASP.NET.sln @@ -117,11 +117,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AuthAPI", "AuthAPI", "{D602 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DeliveryService.AuthAPI", "Services\AuthAPI\DeliveryService.AuthAPI\DeliveryService.AuthAPI.csproj", "{65BFA16E-4839-4F88-988B-D922EB90AE6C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BacketAPI", "BacketAPI", "{6EF1F7C5-8F9C-4A0A-868B-4E1C2FB1E8E1}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BasketAPI", "BasketAPI", "{6EF1F7C5-8F9C-4A0A-868B-4E1C2FB1E8E1}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{0C72ACCB-B634-42D0-A957-A1F57C75C11B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeliveryService.Services.BacketAPI.Core", "Services\DeliveryService.Services.BacketAPI.Core\DeliveryService.Services.BacketAPI.Core.csproj", "{422B30D8-7AAC-4BE8-A429-34147EA1BDA7}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeliveryService.Services.BasketAPI.Core", "Services\DeliveryService.Services.BacketAPI.Core\DeliveryService.Services.BasketAPI.Core.csproj", "{422B30D8-7AAC-4BE8-A429-34147EA1BDA7}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/Services/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BacketAPI.Core.csproj b/Services/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core.csproj similarity index 100% rename from Services/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BacketAPI.Core.csproj rename to Services/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core.csproj diff --git a/Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCart.cs b/Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCart.cs index 3651c20..f90358b 100644 --- a/Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCart.cs +++ b/Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCart.cs @@ -1,4 +1,4 @@ -namespace DeliveryService.Services.BacketAPI.Core.Entities; +namespace DeliveryService.Services.BasketAPI.Core.Entities; public class ShoppingCart { diff --git a/Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCartItem.cs b/Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCartItem.cs index a40e313..bb22744 100644 --- a/Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCartItem.cs +++ b/Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCartItem.cs @@ -1,4 +1,4 @@ -namespace DeliveryService.Services.BacketAPI.Core.Entities; +namespace DeliveryService.Services.BasketAPI.Core.Entities; public class ShoppingCartItem { diff --git a/Services/DeliveryService.Services.BacketAPI.Core/Interfaces/IBasketRepository.cs b/Services/DeliveryService.Services.BacketAPI.Core/Interfaces/IBasketRepository.cs new file mode 100644 index 0000000..7dd97f3 --- /dev/null +++ b/Services/DeliveryService.Services.BacketAPI.Core/Interfaces/IBasketRepository.cs @@ -0,0 +1,11 @@ +using DeliveryService.Services.BasketAPI.Core.Entities; + +namespace DeliveryService.Services.BasketAPI.Core.Interfaces; + +public interface IBasketRepository +{ + Task GetBasket(string userName); + Task UpdateBasket(ShoppingCart basket); + Task DeleteBasket(string userName); + Task UpdatePrices(string productId, decimal newPrice); +} From c7e4c97b31b64fc869c84e891e4d41274f4877d1 Mon Sep 17 00:00:00 2001 From: pin11kurochkin Date: Fri, 5 Jan 2024 03:42:40 +0300 Subject: [PATCH 3/5] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DeliveryService_ASP.NET.sln | 22 ++++++++++++++----- ...veryService.Services.BasketAPI.Core.csproj | 0 .../Entities/ShoppingCart.cs | 0 .../Entities/ShoppingCartItem.cs | 0 .../Interfaces/IBasketRepository.cs | 0 ...e.Services.BasketAPI.Infrastructure.csproj | 9 ++++++++ 6 files changed, 25 insertions(+), 6 deletions(-) rename Services/{DeliveryService.Services.BacketAPI.Core => BasketAPI/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core}/DeliveryService.Services.BasketAPI.Core.csproj (100%) rename Services/{DeliveryService.Services.BacketAPI.Core => BasketAPI/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core}/Entities/ShoppingCart.cs (100%) rename Services/{DeliveryService.Services.BacketAPI.Core => BasketAPI/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core}/Entities/ShoppingCartItem.cs (100%) rename Services/{DeliveryService.Services.BacketAPI.Core => BasketAPI/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core}/Interfaces/IBasketRepository.cs (100%) create mode 100644 Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/DeliveryService.Services.BasketAPI.Infrastructure.csproj diff --git a/DeliveryService_ASP.NET.sln b/DeliveryService_ASP.NET.sln index 23d2500..6719e34 100644 --- a/DeliveryService_ASP.NET.sln +++ b/DeliveryService_ASP.NET.sln @@ -121,7 +121,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BasketAPI", "BasketAPI", "{ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{0C72ACCB-B634-42D0-A957-A1F57C75C11B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeliveryService.Services.BasketAPI.Core", "Services\DeliveryService.Services.BacketAPI.Core\DeliveryService.Services.BasketAPI.Core.csproj", "{422B30D8-7AAC-4BE8-A429-34147EA1BDA7}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Infrastructure", "Infrastructure", "{BB8F27D3-8523-42AE-B474-F8386236A1CD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeliveryService.Services.BasketAPI.Infrastructure", "Services\BasketAPI\DeliveryService.Services.BasketAPI.Infrastructure\DeliveryService.Services.BasketAPI.Infrastructure.csproj", "{961065EC-6D53-42C9-ACBD-8DA3F8C7BBDE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DeliveryService.Services.BasketAPI.Core", "Services\BasketAPI\DeliveryService.Services.BacketAPI.Core\DeliveryService.Services.BasketAPI.Core\DeliveryService.Services.BasketAPI.Core.csproj", "{75E21D7A-A473-4062-9E55-D78BF48527B5}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -257,10 +261,14 @@ Global {65BFA16E-4839-4F88-988B-D922EB90AE6C}.Debug|Any CPU.Build.0 = Debug|Any CPU {65BFA16E-4839-4F88-988B-D922EB90AE6C}.Release|Any CPU.ActiveCfg = Release|Any CPU {65BFA16E-4839-4F88-988B-D922EB90AE6C}.Release|Any CPU.Build.0 = Release|Any CPU - {422B30D8-7AAC-4BE8-A429-34147EA1BDA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {422B30D8-7AAC-4BE8-A429-34147EA1BDA7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {422B30D8-7AAC-4BE8-A429-34147EA1BDA7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {422B30D8-7AAC-4BE8-A429-34147EA1BDA7}.Release|Any CPU.Build.0 = Release|Any CPU + {961065EC-6D53-42C9-ACBD-8DA3F8C7BBDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {961065EC-6D53-42C9-ACBD-8DA3F8C7BBDE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {961065EC-6D53-42C9-ACBD-8DA3F8C7BBDE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {961065EC-6D53-42C9-ACBD-8DA3F8C7BBDE}.Release|Any CPU.Build.0 = Release|Any CPU + {75E21D7A-A473-4062-9E55-D78BF48527B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {75E21D7A-A473-4062-9E55-D78BF48527B5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {75E21D7A-A473-4062-9E55-D78BF48527B5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {75E21D7A-A473-4062-9E55-D78BF48527B5}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -320,7 +328,9 @@ Global {65BFA16E-4839-4F88-988B-D922EB90AE6C} = {D602E2F2-3A5A-483C-A55E-6F65E5597EAC} {6EF1F7C5-8F9C-4A0A-868B-4E1C2FB1E8E1} = {E6E51EE1-41B2-4693-BFCF-2ECDA6A48655} {0C72ACCB-B634-42D0-A957-A1F57C75C11B} = {6EF1F7C5-8F9C-4A0A-868B-4E1C2FB1E8E1} - {422B30D8-7AAC-4BE8-A429-34147EA1BDA7} = {0C72ACCB-B634-42D0-A957-A1F57C75C11B} + {BB8F27D3-8523-42AE-B474-F8386236A1CD} = {6EF1F7C5-8F9C-4A0A-868B-4E1C2FB1E8E1} + {961065EC-6D53-42C9-ACBD-8DA3F8C7BBDE} = {BB8F27D3-8523-42AE-B474-F8386236A1CD} + {75E21D7A-A473-4062-9E55-D78BF48527B5} = {0C72ACCB-B634-42D0-A957-A1F57C75C11B} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {8C515027-DD6A-4FB2-A343-04CC8DDFD87E} diff --git a/Services/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core.csproj b/Services/BasketAPI/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core/DeliveryService.Services.BasketAPI.Core.csproj similarity index 100% rename from Services/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core.csproj rename to Services/BasketAPI/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core/DeliveryService.Services.BasketAPI.Core.csproj diff --git a/Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCart.cs b/Services/BasketAPI/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core/Entities/ShoppingCart.cs similarity index 100% rename from Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCart.cs rename to Services/BasketAPI/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core/Entities/ShoppingCart.cs diff --git a/Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCartItem.cs b/Services/BasketAPI/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core/Entities/ShoppingCartItem.cs similarity index 100% rename from Services/DeliveryService.Services.BacketAPI.Core/Entities/ShoppingCartItem.cs rename to Services/BasketAPI/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core/Entities/ShoppingCartItem.cs diff --git a/Services/DeliveryService.Services.BacketAPI.Core/Interfaces/IBasketRepository.cs b/Services/BasketAPI/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core/Interfaces/IBasketRepository.cs similarity index 100% rename from Services/DeliveryService.Services.BacketAPI.Core/Interfaces/IBasketRepository.cs rename to Services/BasketAPI/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core/Interfaces/IBasketRepository.cs diff --git a/Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/DeliveryService.Services.BasketAPI.Infrastructure.csproj b/Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/DeliveryService.Services.BasketAPI.Infrastructure.csproj new file mode 100644 index 0000000..132c02c --- /dev/null +++ b/Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/DeliveryService.Services.BasketAPI.Infrastructure.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + From d7d95c47a8d7db195861854dea54016715b29adb Mon Sep 17 00:00:00 2001 From: pin11kurochkin Date: Fri, 5 Jan 2024 03:47:00 +0300 Subject: [PATCH 4/5] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=20=D1=80=D0=B5=D0=BF=D0=BE=D0=B7=D0=B8=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=B8=D1=8F=20=D0=BA=D0=BE=D1=80=D0=B7=D0=B8=D0=BD?= =?UTF-8?q?=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Interfaces/IBasketRepository.cs | 1 - ...e.Services.BasketAPI.Infrastructure.csproj | 9 ++++ .../Repositories/BasketRepository.cs | 44 +++++++++++++++++++ 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/Repositories/BasketRepository.cs diff --git a/Services/BasketAPI/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core/Interfaces/IBasketRepository.cs b/Services/BasketAPI/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core/Interfaces/IBasketRepository.cs index 7dd97f3..22fd680 100644 --- a/Services/BasketAPI/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core/Interfaces/IBasketRepository.cs +++ b/Services/BasketAPI/DeliveryService.Services.BacketAPI.Core/DeliveryService.Services.BasketAPI.Core/Interfaces/IBasketRepository.cs @@ -7,5 +7,4 @@ public interface IBasketRepository Task GetBasket(string userName); Task UpdateBasket(ShoppingCart basket); Task DeleteBasket(string userName); - Task UpdatePrices(string productId, decimal newPrice); } diff --git a/Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/DeliveryService.Services.BasketAPI.Infrastructure.csproj b/Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/DeliveryService.Services.BasketAPI.Infrastructure.csproj index 132c02c..0611dd9 100644 --- a/Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/DeliveryService.Services.BasketAPI.Infrastructure.csproj +++ b/Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/DeliveryService.Services.BasketAPI.Infrastructure.csproj @@ -6,4 +6,13 @@ enable + + + + + + + + + diff --git a/Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/Repositories/BasketRepository.cs b/Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/Repositories/BasketRepository.cs new file mode 100644 index 0000000..81d3ace --- /dev/null +++ b/Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/Repositories/BasketRepository.cs @@ -0,0 +1,44 @@ +using DeliveryService.Services.BasketAPI.Core.Entities; +using DeliveryService.Services.BasketAPI.Core.Interfaces; +using Newtonsoft.Json; +using StackExchange.Redis; + +namespace DeliveryService.Services.BasketAPI.Infrastructure.Repositories; + +public class BasketRepository : IBasketRepository +{ + private readonly IConnectionMultiplexer _connectionMultiplexer; + private readonly IDatabase _database; + + public BasketRepository(IConnectionMultiplexer connectionMultiplexer) + { + _connectionMultiplexer = connectionMultiplexer; + _database = _connectionMultiplexer.GetDatabase(); + } + + public async Task DeleteBasket(string userName) + { + return await _database.KeyDeleteAsync(userName); + } + + public async Task GetBasket(string userName) + { + var basketString = await _database.StringGetAsync(userName); + + if (basketString.HasValue) + { + return JsonConvert.DeserializeObject(basketString.ToString()); + } + + return new ShoppingCart(userName); + } + + public async Task UpdateBasket(ShoppingCart basket) + { + var result = await _database.StringSetAsync(basket.UserName, JsonConvert.SerializeObject(basket)); + if (result) + return await GetBasket(basket.UserName); + + return basket; + } +} From af4260ea3aab00d4fa412930b7a3ca8c876ae88f Mon Sep 17 00:00:00 2001 From: pin11kurochkin Date: Fri, 5 Jan 2024 03:53:30 +0300 Subject: [PATCH 5/5] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=81=D0=BB=D0=BE=D0=B9=20Infrastructure?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...e.Services.BasketAPI.Infrastructure.csproj | 4 +++ .../DependencyInjection.cs | 33 +++++++++++++++++++ .../DependencyInjection.cs | 2 +- 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/DependencyInjection.cs diff --git a/Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/DeliveryService.Services.BasketAPI.Infrastructure.csproj b/Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/DeliveryService.Services.BasketAPI.Infrastructure.csproj index 0611dd9..f499580 100644 --- a/Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/DeliveryService.Services.BasketAPI.Infrastructure.csproj +++ b/Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/DeliveryService.Services.BasketAPI.Infrastructure.csproj @@ -7,8 +7,12 @@ + + + + diff --git a/Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/DependencyInjection.cs b/Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/DependencyInjection.cs new file mode 100644 index 0000000..0f32cf0 --- /dev/null +++ b/Services/BasketAPI/DeliveryService.Services.BasketAPI.Infrastructure/DependencyInjection.cs @@ -0,0 +1,33 @@ +using System.Configuration; +using DeliveryService.Services.BasketAPI.Core.Interfaces; +using DeliveryService.Services.BasketAPI.Infrastructure.Repositories; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using StackExchange.Redis; + +namespace DeliveryService.Services.BasketAPI.Infrastructure; + +public static class DependencyInjection +{ + public static IServiceCollection AddInfrastructure(this IServiceCollection services, + IConfiguration configuration) + { + services.AddRedis(configuration); + return services; + } + + public static IServiceCollection AddRedis(this IServiceCollection services, + IConfiguration configuration) + { + services.AddSingleton(sp => + ConnectionMultiplexer.Connect(new ConfigurationOptions + { + EndPoints = { configuration["CacheSettings:ConnectionString"] }, + AbortOnConnectFail = false, + })); + + services.AddScoped(); + + return services; + } +} diff --git a/Services/OrderAPI/DeliveryService.Services.OrderAPI.Infrastructure/DependencyInjection.cs b/Services/OrderAPI/DeliveryService.Services.OrderAPI.Infrastructure/DependencyInjection.cs index 8868112..56d0aae 100644 --- a/Services/OrderAPI/DeliveryService.Services.OrderAPI.Infrastructure/DependencyInjection.cs +++ b/Services/OrderAPI/DeliveryService.Services.OrderAPI.Infrastructure/DependencyInjection.cs @@ -36,7 +36,7 @@ public static IServiceCollection AddInfrastructure( return services; } - public static IServiceCollection AddAuth(this IServiceCollection services, + private static IServiceCollection AddAuth(this IServiceCollection services, ConfigurationManager configuration) { var jwtSettings = new JwtSettings();