From c7730ffee274be7d1d7408d63c3e60c4c10b7aff Mon Sep 17 00:00:00 2001 From: klementeva Date: Thu, 14 Dec 2023 13:53:47 +0400 Subject: [PATCH] Lab 3 Ready --- tasks/klementeva-ja/lab_2/.gitignore | 477 ++++++++++++++++++ tasks/klementeva-ja/lab_2/README.MD | 75 +++ tasks/klementeva-ja/lab_2/docker-compose.yml | 16 + tasks/klementeva-ja/lab_2/resultat.png | Bin 0 -> 3862 bytes tasks/klementeva-ja/lab_2/rvip_j2.sln | 31 ++ .../lab_2/var/data/anotherData.txt | 3 + tasks/klementeva-ja/lab_2/var/data/data.txt | 6 + tasks/klementeva-ja/lab_2/var/result/data.txt | 5 + .../klementeva-ja/lab_2/var/result/result.txt | 1 + tasks/klementeva-ja/lab_2/worker-1/Dockerfile | 15 + tasks/klementeva-ja/lab_2/worker-1/Program.cs | 13 + .../lab_2/worker-1/worker-1.csproj | 11 + tasks/klementeva-ja/lab_2/worker-2/Dockerfile | 15 + tasks/klementeva-ja/lab_2/worker-2/Program.cs | 23 + .../lab_2/worker-2/worker-2.csproj | 11 + tasks/klementeva-ja/lab_3/.gitignore | 226 +++++++++ tasks/klementeva-ja/lab_3/README.md | 76 +++ tasks/klementeva-ja/lab_3/docker-compose.yml | 15 + tasks/klementeva-ja/lab_3/nginx.conf | 26 + tasks/klementeva-ja/lab_3/pic/1.png | Bin 0 -> 41951 bytes tasks/klementeva-ja/lab_3/pic/2.png | Bin 0 -> 41340 bytes tasks/klementeva-ja/lab_3/pic/3.png | Bin 0 -> 3420 bytes tasks/klementeva-ja/lab_3/pic/4.png | Bin 0 -> 2409 bytes tasks/klementeva-ja/lab_3/pic/5.png | Bin 0 -> 80005 bytes tasks/klementeva-ja/lab_3/pic/6.png | Bin 0 -> 16943 bytes tasks/klementeva-ja/lab_3/static/index.html | 13 + tasks/klementeva-ja/lab_3/worker-1/Dockerfile | 11 + tasks/klementeva-ja/lab_3/worker-1/Program.cs | 124 +++++ .../worker-1/Properties/launchSettings.json | 38 ++ .../worker-1/appsettings.Development.json | 8 + .../lab_3/worker-1/appsettings.json | 9 + .../lab_3/worker-1/worker-1.csproj | 15 + .../klementeva-ja/lab_3/worker-1/worker-1.sln | 22 + tasks/klementeva-ja/lab_3/worker-2/Dockerfile | 11 + tasks/klementeva-ja/lab_3/worker-2/Program.cs | 145 ++++++ .../worker-2/Properties/launchSettings.json | 38 ++ .../worker-2/appsettings.Development.json | 8 + .../lab_3/worker-2/appsettings.json | 9 + .../lab_3/worker-2/worker-2.csproj | 15 + .../klementeva-ja/lab_3/worker-2/worker-2.sln | 22 + 40 files changed, 1533 insertions(+) create mode 100644 tasks/klementeva-ja/lab_2/.gitignore create mode 100644 tasks/klementeva-ja/lab_2/README.MD create mode 100644 tasks/klementeva-ja/lab_2/docker-compose.yml create mode 100644 tasks/klementeva-ja/lab_2/resultat.png create mode 100644 tasks/klementeva-ja/lab_2/rvip_j2.sln create mode 100644 tasks/klementeva-ja/lab_2/var/data/anotherData.txt create mode 100644 tasks/klementeva-ja/lab_2/var/data/data.txt create mode 100644 tasks/klementeva-ja/lab_2/var/result/data.txt create mode 100644 tasks/klementeva-ja/lab_2/var/result/result.txt create mode 100644 tasks/klementeva-ja/lab_2/worker-1/Dockerfile create mode 100644 tasks/klementeva-ja/lab_2/worker-1/Program.cs create mode 100644 tasks/klementeva-ja/lab_2/worker-1/worker-1.csproj create mode 100644 tasks/klementeva-ja/lab_2/worker-2/Dockerfile create mode 100644 tasks/klementeva-ja/lab_2/worker-2/Program.cs create mode 100644 tasks/klementeva-ja/lab_2/worker-2/worker-2.csproj create mode 100644 tasks/klementeva-ja/lab_3/.gitignore create mode 100644 tasks/klementeva-ja/lab_3/README.md create mode 100644 tasks/klementeva-ja/lab_3/docker-compose.yml create mode 100644 tasks/klementeva-ja/lab_3/nginx.conf create mode 100644 tasks/klementeva-ja/lab_3/pic/1.png create mode 100644 tasks/klementeva-ja/lab_3/pic/2.png create mode 100644 tasks/klementeva-ja/lab_3/pic/3.png create mode 100644 tasks/klementeva-ja/lab_3/pic/4.png create mode 100644 tasks/klementeva-ja/lab_3/pic/5.png create mode 100644 tasks/klementeva-ja/lab_3/pic/6.png create mode 100644 tasks/klementeva-ja/lab_3/static/index.html create mode 100644 tasks/klementeva-ja/lab_3/worker-1/Dockerfile create mode 100644 tasks/klementeva-ja/lab_3/worker-1/Program.cs create mode 100644 tasks/klementeva-ja/lab_3/worker-1/Properties/launchSettings.json create mode 100644 tasks/klementeva-ja/lab_3/worker-1/appsettings.Development.json create mode 100644 tasks/klementeva-ja/lab_3/worker-1/appsettings.json create mode 100644 tasks/klementeva-ja/lab_3/worker-1/worker-1.csproj create mode 100644 tasks/klementeva-ja/lab_3/worker-1/worker-1.sln create mode 100644 tasks/klementeva-ja/lab_3/worker-2/Dockerfile create mode 100644 tasks/klementeva-ja/lab_3/worker-2/Program.cs create mode 100644 tasks/klementeva-ja/lab_3/worker-2/Properties/launchSettings.json create mode 100644 tasks/klementeva-ja/lab_3/worker-2/appsettings.Development.json create mode 100644 tasks/klementeva-ja/lab_3/worker-2/appsettings.json create mode 100644 tasks/klementeva-ja/lab_3/worker-2/worker-2.csproj create mode 100644 tasks/klementeva-ja/lab_3/worker-2/worker-2.sln diff --git a/tasks/klementeva-ja/lab_2/.gitignore b/tasks/klementeva-ja/lab_2/.gitignore new file mode 100644 index 0000000..154e127 --- /dev/null +++ b/tasks/klementeva-ja/lab_2/.gitignore @@ -0,0 +1,477 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET +project.lock.json +project.fragment.lock.json +artifacts/ + +# Tye +.tye/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.tlog +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files +*.ncb +*.aps + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# JetBrains Rider +*.sln.iml + +## +## Visual studio for Mac +## + + +# globs +Makefile.in +*.userprefs +*.usertasks +config.make +config.status +aclocal.m4 +install-sh +autom4te.cache/ +*.tar.gz +tarballs/ +test-results/ + +# Mac bundle stuff +*.dmg +*.app + +# content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore +# Windows thumbnail cache files +Thumbs.db +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk diff --git a/tasks/klementeva-ja/lab_2/README.MD b/tasks/klementeva-ja/lab_2/README.MD new file mode 100644 index 0000000..a0b78d5 --- /dev/null +++ b/tasks/klementeva-ja/lab_2/README.MD @@ -0,0 +1,75 @@ +# Отчёт по лабораторной работе №2 + +Выполнил: студентка гр. ИСЭбд-41 Клементьева Жанна. + +Вариант программы 1: Ищет в каталоге `/var/data` файл с наибольшим количеством строк и перекладывает его в `/var/result/data.txt`. + +Вариант программы 2: Ищет наименьшее число из файла `/var/data/data.txt` и сохраняет количество таких чисел из последовательности в `/var/result/result.txt`. + +## Создание приложений + +Создадим 2 приложения. +Был выбран язык C# и технология .NET 6, потому что потому. + +Для создания обычных консольных приложений воспользуемся командами: + +```sh +dotnet new console -o worker-1 +dotnet new console -o worker-2 +``` + +Согласно варианту программа 1 ищет в каталоге `/var/data` файл с наибольшим количеством строк и перекладывает его в `/var/result/data.txt`. + +[Исходный текст программы worker-1](worker-1/Program.cs) + +Согласно варианту программа 2 ищет наименьшее число из файла `/var/data/data.txt` и сохраняет количество таких чисел из последовательности в `/var/result/result.txt`. + +[Исходный текст программы worker-2](worker-2/Program.cs) + +Дополнительно создан файл [.gitignore](.gitignore) для того, чтобы не закоммитить в git ничего лишнего. + +## Настройка окружения + +Для связи двух приложений воспользуемся следующей схемой: + +1. Каталог `./data` должен быть примонтирован в каталог `/var/data` для программы 1. + Оттуда будут браться исходные данные. +2. Каталог `./result-1` должен быть примонтирован в каталог `/var/result` для программы 2. + Туда будут складываться промежуточные данные. +3. Каталог `./result-1` также должен быть примонтирован в каталог `/var/data` для программы 2. + Оттуда будут браться промежуточные результаты. +4. Каталог `./result` должен быть примонтирован в каталог `/var/result` для программы 2. + Туда будут складывать результаты финальной обработки. + +Для каждой программы были созданы файлы Dockerfile ([программа 1](worker-1/Dockerfile.yml), [программа 2](worker-1/Dockerfile.yml)) с подробным описанием процесса сборки. + +Был создан файл [docker-compose.yml](docker-compose.yml), в котором указан манифест для запуска распределённого приложения. + +Дополнительно был создан файл [.gitignore](.gitignore), чтобы исключить для сборки и коммита всё лишнее. + +## Сборка и запуск + +В каталог `./data` помещены 2 файла. +В первом файле были числа 1 2 3, во втором 1 1 7 5 3 1. + +Для запуска приложения необходимо ввести команду `docker compose up ---build`. + +Результат запуска после сборки: + +``` +[+] Running 2/0 + - Container lab_2-worker-1-1 Created + - Container lab_2-worker-2-1 Created +Attaching to lab_2-worker-1-1, lab_2-worker-2-1 +lab_2-worker-1-1 | Начало обработки файла /var/data/another data.txt +lab_2-worker-1-1 | Начало обработки файла /var/data/data.txt +lab_2-worker-1-1 exited with code 0 +lab_2-worker-2-1 | Чисел для обработки: 8 +lab_2-worker-2-1 exited with code 0 +``` + +В результате в каталоге `./result` создался файл `result.txt` с содержимым `3`, что соответствует входным данным. + +Изменение значений в файлах из каталога `./data` также изменяет содержимое в файлах из каталогов `./result-1` и `./result`. + +![resultat](resultat.png) \ No newline at end of file diff --git a/tasks/klementeva-ja/lab_2/docker-compose.yml b/tasks/klementeva-ja/lab_2/docker-compose.yml new file mode 100644 index 0000000..ef6bc7d --- /dev/null +++ b/tasks/klementeva-ja/lab_2/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.1" +services: + worker-1: + build: ./worker-1 + volumes: + #монтируем локальную папку в запущенный образ контейнера + - ./data:/var/data + - ./result-1:/var/result + worker-2: + build: ./worker-2 + volumes: + - ./result-1:/var/data + - ./result:/var/result + #добавляется зависимость, так как по условию второе приложение зависит от первого + depends_on: + - worker-1 \ No newline at end of file diff --git a/tasks/klementeva-ja/lab_2/resultat.png b/tasks/klementeva-ja/lab_2/resultat.png new file mode 100644 index 0000000000000000000000000000000000000000..6a543c73d85dfe3488affe620d468567046c9cd9 GIT binary patch literal 3862 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 maxCount){ + maxCount = lines.Count(); + lagrestFile = file; + } +} +if(File.Exists("/var/result/data.txt")) + File.Delete("/var/result/data.txt"); +File.Move(lagrestFile, "/var/result/data.txt"); \ No newline at end of file diff --git a/tasks/klementeva-ja/lab_2/worker-1/worker-1.csproj b/tasks/klementeva-ja/lab_2/worker-1/worker-1.csproj new file mode 100644 index 0000000..3f5cb43 --- /dev/null +++ b/tasks/klementeva-ja/lab_2/worker-1/worker-1.csproj @@ -0,0 +1,11 @@ + + + + Exe + net6.0 + worker_1 + enable + enable + + + diff --git a/tasks/klementeva-ja/lab_2/worker-2/Dockerfile b/tasks/klementeva-ja/lab_2/worker-2/Dockerfile new file mode 100644 index 0000000..79dccce --- /dev/null +++ b/tasks/klementeva-ja/lab_2/worker-2/Dockerfile @@ -0,0 +1,15 @@ +#указываем образ из которого будем брать все слои +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build-env +#папка, с которой мы будем работать +WORKDIR /App +#копируем файл в рабочую дерикторию +COPY . ./ +#запускаем команду +RUN dotnet restore +RUN dotnet publish -c Release -o out + +FROM mcr.microsoft.com/dotnet/aspnet:6.0 +WORKDIR /App +#копирует не из файловой системы хоста, а из того, что собрали на прерыдущей стадии +COPY --from=build-env /App/out . +ENTRYPOINT ["dotnet", "worker-2.dll"] \ No newline at end of file diff --git a/tasks/klementeva-ja/lab_2/worker-2/Program.cs b/tasks/klementeva-ja/lab_2/worker-2/Program.cs new file mode 100644 index 0000000..2d10218 --- /dev/null +++ b/tasks/klementeva-ja/lab_2/worker-2/Program.cs @@ -0,0 +1,23 @@ +using System.Text; + +int[] numbers = File.ReadAllLines("/var/data/data.txt").Select(x=> int.Parse(x)).ToArray(); +int minNumber = int.MaxValue; +int minNumberCount = 0; +foreach(var number in numbers){ + if(number > minNumber){ + continue; + } + if(number == minNumber){ + minNumberCount++; + continue; + } + if(number < minNumber){ + minNumber = number; + minNumberCount = 1; + } +} +using(FileStream fstream = new FileStream("/var/result/result.txt", FileMode.OpenOrCreate)){ + byte[] buffer = Encoding.Default.GetBytes(minNumberCount.ToString()); + await fstream.WriteAsync(buffer, 0, buffer.Length); +} +Console.WriteLine(minNumberCount); \ No newline at end of file diff --git a/tasks/klementeva-ja/lab_2/worker-2/worker-2.csproj b/tasks/klementeva-ja/lab_2/worker-2/worker-2.csproj new file mode 100644 index 0000000..960073b --- /dev/null +++ b/tasks/klementeva-ja/lab_2/worker-2/worker-2.csproj @@ -0,0 +1,11 @@ + + + + Exe + net6.0 + worker_2 + enable + enable + + + diff --git a/tasks/klementeva-ja/lab_3/.gitignore b/tasks/klementeva-ja/lab_3/.gitignore new file mode 100644 index 0000000..71ec0d1 --- /dev/null +++ b/tasks/klementeva-ja/lab_3/.gitignore @@ -0,0 +1,226 @@ +# The following command works for downloading when using Git for Windows: +# curl -LOf http://gist.githubusercontent.com/kmorcinek/2710267/raw/.gitignore +# +# Download this file using PowerShell v3 under Windows with the following comand: +# Invoke-WebRequest https://gist.githubusercontent.com/kmorcinek/2710267/raw/ -OutFile .gitignore +# +# or wget: +# wget --no-check-certificate http://gist.githubusercontent.com/kmorcinek/2710267/raw/.gitignore + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results +[Dd]ebug/ +[Rr]elease/ +x64/ +[Bb]in/ +[Oo]bj/ +# build folder is nowadays used for build scripts and should not be ignored +#build/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings +modulesbin/ +tempbin/ + +# EPiServer Site file (VPP) +AppData/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# vim +*.txt~ +*.swp +*.swo + +# Temp files when opening LibreOffice on ubuntu +.~lock.* + +# svn +.svn + +# CVS - Source Control +**/CVS/ + +# Remainings from resolving conflicts in Source Control +*.orig + +# SQL Server files +**/App_Data/*.mdf +**/App_Data/*.ldf +**/App_Data/*.sdf + + +#LightSwitch generated files +GeneratedArtifacts/ +_Pvt_Extensions/ +ModelManifest.xml + +# ========================= +# Windows detritus +# ========================= + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# OS generated files # +Icon? + +# Mac desktop service store files +.DS_Store + +# SASS Compiler cache +.sass-cache + +# Visual Studio 2014 CTP +**/*.sln.ide + +# Visual Studio temp something +.vs/ + +# dotnet stuff +project.lock.json + +# VS 2015+ +*.vc.vc.opendb +*.vc.db + +# Rider +.idea/ + +# Visual Studio Code +.vscode/ + +# Output folder used by Webpack or other FE stuff +**/node_modules/* +**/wwwroot/* + +# SpecFlow specific +*.feature.cs +*.feature.xlsx.* +*.Specs_*.html + +# UWP Projects +AppPackages/ + +##### +# End of core ignore list, below put you custom 'per project' settings (patterns or path) +##### \ No newline at end of file diff --git a/tasks/klementeva-ja/lab_3/README.md b/tasks/klementeva-ja/lab_3/README.md new file mode 100644 index 0000000..36c2f90 --- /dev/null +++ b/tasks/klementeva-ja/lab_3/README.md @@ -0,0 +1,76 @@ +# Отчет по лабораторной работе №3 REST API, Gateway и синхронный обмен между микросервисами +Выполнила студентка гр. ИСЭбд-41 Клементьева Ж.А. + +## Создание микросервисов +Создание микросервисов было реализовано следующим образом: + +1. С помощью команды `dotnet new web -n worker-2` в терминале создала первый микросервис, где решение добавила командой `dotnet new sln`. +2. Также использовала данную команду: `dotnet sln worker-2.sln add worker-2.csproj` с целью связки решения и проекта. +3. Аналогичные действия были совершены со вторым микросервисом. +4. Были добавлены библиотеки Swagger и OpenAi в проекты. +5. Также проект был запущен с помощью команды `dotnet run`. + +Скриншоты микросервисов worker 1 и worker 2: +![](pic/1.png) +![](pic/2.png) + +Путь localhost:8080: + +![](pic/3.png) + + +![](pic/4.png) + +## Синхронный обмен +Также мною был реализован код, вызывающий сихронно данные из соседнего микросервиса. +```cs +//worker-2 +app.MapGet("/Requests/", async () => +{ + var httpClient = new HttpClient(); + var secondWorkerResponse = await httpClient.GetStringAsync("http://worker-1:8080/"); + + return secondWorkerResponse.ToArray(); +}) +.WithName("GetRequests") +.WithOpenApi(); +``` +## Реализация gateway, используя nginx + +Мною был добавлен nginx.conf: + +```conf +server { + listen 8080; + listen [::]:8080; + server_name localhost; + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + } + + location /worker-1/ { + proxy_pass http://worker-1:8080/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Prefix /worker-1; + } + + location /worker-2/ { + proxy_pass http://worker-2:8080/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Prefix /worker-2; + } +} + +``` +После выполнения команды `docker-compose up` были получены такие результаты: + +Результат worker1: +![](pic/5.png) +Результат worker2: +![](pic/6.png) \ No newline at end of file diff --git a/tasks/klementeva-ja/lab_3/docker-compose.yml b/tasks/klementeva-ja/lab_3/docker-compose.yml new file mode 100644 index 0000000..e9ca4b9 --- /dev/null +++ b/tasks/klementeva-ja/lab_3/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.1" +services: + worker-1: + build: ./worker-1 + worker-2: + build: ./worker-2 + depends_on: + - worker-1 + gateway: + image: nginx:latest + ports: + - 8080:8080 + volumes: + - ./static:/usr/share/nginx/html:ro + - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro \ No newline at end of file diff --git a/tasks/klementeva-ja/lab_3/nginx.conf b/tasks/klementeva-ja/lab_3/nginx.conf new file mode 100644 index 0000000..f649a4a --- /dev/null +++ b/tasks/klementeva-ja/lab_3/nginx.conf @@ -0,0 +1,26 @@ +server { + listen 8080; + listen [::]:8080; + server_name localhost; + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + } + + location /worker-1/ { + proxy_pass http://worker-1:8080/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Prefix /worker-1; + } + + location /worker-2/ { + proxy_pass http://worker-2:8080/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Prefix /worker-2; + } +} \ No newline at end of file diff --git a/tasks/klementeva-ja/lab_3/pic/1.png b/tasks/klementeva-ja/lab_3/pic/1.png new file mode 100644 index 0000000000000000000000000000000000000000..69077f2f58c3a2640d70d1a52b5870edac5917d8 GIT binary patch literal 41951 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 QG<*YB)47&^<@WFY4-LwNBme*a literal 0 HcmV?d00001 diff --git a/tasks/klementeva-ja/lab_3/pic/2.png b/tasks/klementeva-ja/lab_3/pic/2.png new file mode 100644 index 0000000000000000000000000000000000000000..2bd8760d01eaf3855af8fcf99a576aa370cd663c GIT binary patch literal 41340 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 literal 0 HcmV?d00001 diff --git a/tasks/klementeva-ja/lab_3/pic/4.png b/tasks/klementeva-ja/lab_3/pic/4.png new file mode 100644 index 0000000000000000000000000000000000000000..2b04e0923ac60ffed6d430c9b95866686ba89c8e GIT binary patch literal 2409 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�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 DloXXM literal 0 HcmV?d00001 diff --git a/tasks/klementeva-ja/lab_3/pic/6.png b/tasks/klementeva-ja/lab_3/pic/6.png new file mode 100644 index 0000000000000000000000000000000000000000..06a68db09617374419fd211700f93ad63bcb8e4b GIT binary patch literal 16943 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 bf(aX(XaY{k#-IQ60YO<_U9MclJmmiX&w3XU literal 0 HcmV?d00001 diff --git a/tasks/klementeva-ja/lab_3/static/index.html b/tasks/klementeva-ja/lab_3/static/index.html new file mode 100644 index 0000000..9e75aa0 --- /dev/null +++ b/tasks/klementeva-ja/lab_3/static/index.html @@ -0,0 +1,13 @@ + + + + + + Тестовое приложение по лабораторной работе №3 + + +

Клементьева Ж.А. ИСЭбд-41.

+

Запрос к worker-1

+

Запрос к worker-2

+ + \ No newline at end of file diff --git a/tasks/klementeva-ja/lab_3/worker-1/Dockerfile b/tasks/klementeva-ja/lab_3/worker-1/Dockerfile new file mode 100644 index 0000000..7a8ce23 --- /dev/null +++ b/tasks/klementeva-ja/lab_3/worker-1/Dockerfile @@ -0,0 +1,11 @@ +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env +WORKDIR /app + +COPY . ./ +RUN dotnet restore +RUN dotnet publish -c Release -o out + +FROM mcr.microsoft.com/dotnet/aspnet:8.0 +WORKDIR /app +COPY --from=build-env /app/out . +ENTRYPOINT ["dotnet", "worker-1.dll"] \ No newline at end of file diff --git a/tasks/klementeva-ja/lab_3/worker-1/Program.cs b/tasks/klementeva-ja/lab_3/worker-1/Program.cs new file mode 100644 index 0000000..60c42a4 --- /dev/null +++ b/tasks/klementeva-ja/lab_3/worker-1/Program.cs @@ -0,0 +1,124 @@ +List requests = new() +{ + new Request() { Uuid= Guid.Parse("7184fa5f-b786-4478-863a-99cc000eb752"), Title = "Расход на внедрение системы менеджмента качества", SourceOfFunds = "Шуреков", Sum = 100000, IsCompleted = false }, + new Request() { Uuid= Guid.Parse("55a9aed1-218a-468e-92b9-99f6a6a34543"), Title = "Расход на сопровождение проекта", SourceOfFunds = "Клементьев", Sum = 25000, IsCompleted = true }, +}; + +var builder = WebApplication.CreateBuilder(args); + +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +var app = builder.Build(); + +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(); +} + +app.UseHttpsRedirection(); + +app.MapGet("/", () => +{ + return requests.Select(r => new RequestEntityDto() + { + Uuid = r.Uuid, + Title = r.Title, + Sum = r.Sum, + SourceOfFunds = r.SourceOfFunds, + IsCompleted = r.IsCompleted, + }); +}) +.WithName("GetRequests") +.WithOpenApi(); + +app.MapGet("/{uuid}", (Guid uuid) => +{ + var request = requests.FirstOrDefault(r => r.Uuid == uuid); + if (request == null) + return Results.NotFound(); + return Results.Json(new RequestEntityDto() + { + Uuid = request.Uuid, + Title = request.Title, + Sum = request.Sum, + SourceOfFunds = request.SourceOfFunds, + IsCompleted = request.IsCompleted, + }); +}) +.WithName("GetRequestByGUID") +.WithOpenApi(); + +app.MapPost("/{title}/{sourceOfFunds}/{sum}/{isCompleted}", (string title, string sourceOfFunds, decimal sum, bool isCompleted) => +{ + Guid NewGuid = Guid.NewGuid(); + requests.Add(new Request() { Uuid = NewGuid, Title = (string)title, SourceOfFunds = (string)sourceOfFunds, Sum = (decimal)sum, IsCompleted = (bool)isCompleted}); + + var request = requests.FirstOrDefault(r => r.Uuid == NewGuid); + if (request == null) + return Results.NotFound(); + return Results.Json(new RequestEntityDto() + { + Uuid = request.Uuid, + Title = request.Title, + Sum = request.Sum, + SourceOfFunds = request.SourceOfFunds, + IsCompleted = request.IsCompleted, + }); +}) +.WithName("PostRequest") +.WithOpenApi(); + +app.MapPatch("/{uuid}/{title}/{sourceOfFunds}/{sum}/{isCompleted}", (Guid uuid, string ?title, string ?sourceOfFunds, decimal sum, bool isCompleted) => +{ + var request = requests.FirstOrDefault(r => r.Uuid == uuid); + if (request == null) + return Results.NotFound(); + if (title != null) request.Title = title; + if (sourceOfFunds != ",") request.SourceOfFunds = sourceOfFunds; + if (sum != request.Sum && sum != 0) request.Sum = sum; + if (isCompleted != request.IsCompleted) request.IsCompleted = isCompleted; + + return Results.Json(new RequestEntityDto() + { + Uuid = request.Uuid, + Title = request.Title, + Sum = request.Sum, + SourceOfFunds = request.SourceOfFunds, + IsCompleted = request.IsCompleted, + }); +}) +.WithName("UpdateRequest") +.WithOpenApi(); + +app.MapDelete("/{uuid}", (Guid uuid) => +{ + var request = requests.FirstOrDefault(r => r.Uuid == uuid); + if (request == null) + return Results.NotFound(); + requests.Remove(request); + return Results.Json(new RequestEntityDto() + { + Uuid = request.Uuid, + Title = request.Title, + Sum = request.Sum, + SourceOfFunds = request.SourceOfFunds, + IsCompleted = request.IsCompleted, + }); +}) +.WithName("DeleteRequestByGUID") +.WithOpenApi(); + +app.Run(); + +public class Request +{ + public Guid Uuid { get; set; } + public string Title { get; set; } = string.Empty; + public string SourceOfFunds { get; set; } = string.Empty; + public decimal Sum { get; set; } = 0; + public bool IsCompleted { get; set; } +} + +public class RequestEntityDto : Request { } \ No newline at end of file diff --git a/tasks/klementeva-ja/lab_3/worker-1/Properties/launchSettings.json b/tasks/klementeva-ja/lab_3/worker-1/Properties/launchSettings.json new file mode 100644 index 0000000..bab6706 --- /dev/null +++ b/tasks/klementeva-ja/lab_3/worker-1/Properties/launchSettings.json @@ -0,0 +1,38 @@ +{ + "$schema": "http://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:51956", + "sslPort": 44303 + } + }, + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "http://localhost:5197", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:7027;http://localhost:5197", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/tasks/klementeva-ja/lab_3/worker-1/appsettings.Development.json b/tasks/klementeva-ja/lab_3/worker-1/appsettings.Development.json new file mode 100644 index 0000000..3b823ef --- /dev/null +++ b/tasks/klementeva-ja/lab_3/worker-1/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/tasks/klementeva-ja/lab_3/worker-1/appsettings.json b/tasks/klementeva-ja/lab_3/worker-1/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/tasks/klementeva-ja/lab_3/worker-1/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/tasks/klementeva-ja/lab_3/worker-1/worker-1.csproj b/tasks/klementeva-ja/lab_3/worker-1/worker-1.csproj new file mode 100644 index 0000000..795c30e --- /dev/null +++ b/tasks/klementeva-ja/lab_3/worker-1/worker-1.csproj @@ -0,0 +1,15 @@ + + + + net8.0 + enable + enable + worker_1 + + + + + + + + diff --git a/tasks/klementeva-ja/lab_3/worker-1/worker-1.sln b/tasks/klementeva-ja/lab_3/worker-1/worker-1.sln new file mode 100644 index 0000000..fc4131f --- /dev/null +++ b/tasks/klementeva-ja/lab_3/worker-1/worker-1.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "worker-1", "worker-1.csproj", "{90F6C7BD-78E2-47C8-A702-DD47E74D3865}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {90F6C7BD-78E2-47C8-A702-DD47E74D3865}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {90F6C7BD-78E2-47C8-A702-DD47E74D3865}.Debug|Any CPU.Build.0 = Debug|Any CPU + {90F6C7BD-78E2-47C8-A702-DD47E74D3865}.Release|Any CPU.ActiveCfg = Release|Any CPU + {90F6C7BD-78E2-47C8-A702-DD47E74D3865}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/tasks/klementeva-ja/lab_3/worker-2/Dockerfile b/tasks/klementeva-ja/lab_3/worker-2/Dockerfile new file mode 100644 index 0000000..7f6b963 --- /dev/null +++ b/tasks/klementeva-ja/lab_3/worker-2/Dockerfile @@ -0,0 +1,11 @@ +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env +WORKDIR /app + +COPY . ./ +RUN dotnet restore +RUN dotnet publish -c Release -o out + +FROM mcr.microsoft.com/dotnet/aspnet:8.0 +WORKDIR /app +COPY --from=build-env /app/out . +ENTRYPOINT ["dotnet", "worker-2.dll"] \ No newline at end of file diff --git a/tasks/klementeva-ja/lab_3/worker-2/Program.cs b/tasks/klementeva-ja/lab_3/worker-2/Program.cs new file mode 100644 index 0000000..a432b93 --- /dev/null +++ b/tasks/klementeva-ja/lab_3/worker-2/Program.cs @@ -0,0 +1,145 @@ + +List agrs = new() +{ + new Agreement() { Uuid= Guid.NewGuid(), Number = "ISO-13485", Date = new DateOnly(), Sum = 50000, IdRequest = Guid.Parse("7184fa5f-b786-4478-863a-99cc000eb752") } +}; + +var builder = WebApplication.CreateBuilder(args); + +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +var app = builder.Build(); + +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(); +} + +app.UseHttpsRedirection(); + +app.MapGet("/", () => +{ + return agrs.Select(r => new AgreementEntityDto() + { + Uuid = r.Uuid, + Number = r.Number, + Sum = r.Sum, + Date = r.Date, + IdRequest = r.IdRequest, + }); +}) +.WithName("GetAgreements") +.WithOpenApi(); + +app.MapGet("/{uuid}", (Guid uuid) => +{ + var agr = agrs.FirstOrDefault(r => r.Uuid == uuid); + if (agr == null) + return Results.NotFound(); + return Results.Json(new AgreementEntityDto() + { + Uuid = agr.Uuid, + Number = agr.Number, + Sum = agr.Sum, + Date = agr.Date, + IdRequest = agr.IdRequest, + }); +}) +.WithName("GetAgreementByGUID") +.WithOpenApi(); + +app.MapPost("/{number}/{date}/{sum}/{idRequest}", (string? number, DateOnly date, decimal sum, Guid idRequest) => +{ + Guid NewGuid = Guid.NewGuid(); + agrs.Add(new Agreement() { Uuid = NewGuid, Number = (string)number, Date = (DateOnly)date, Sum = (decimal)sum, IdRequest = (Guid)idRequest }); + + var agr = agrs.FirstOrDefault(r => r.Uuid == NewGuid); + if (agr == null) + return Results.NotFound(); + return Results.Json(new AgreementEntityDto() + { + Uuid = agr.Uuid, + Number = agr.Number, + Sum = agr.Sum, + Date = agr.Date, + IdRequest = agr.IdRequest, + }); +}) +.WithName("PostAgreement") +.WithOpenApi(); + +app.MapPatch("/{uuid}/{number}/{date}/{sum}/{idRequest}", (Guid uuid, string ?number, DateOnly date, decimal sum, Guid idRequest) => +{ + var agr = agrs.FirstOrDefault(r => r.Uuid == uuid); + if (agr == null) + return Results.NotFound(); + if (number != ",") agr.Number = number; + if (date != null)agr.Date = date; + if (sum != agr.Sum && sum != 0) agr.Sum = sum; + if (idRequest != agr.IdRequest) agr.IdRequest = idRequest; + + return Results.Json(new AgreementEntityDto() + { + Uuid = agr.Uuid, + Number = agr.Number, + Sum = agr.Sum, + Date = agr.Date, + IdRequest = agr.IdRequest, + }); +}) +.WithName("UpdateAgreement") +.WithOpenApi(); + +app.MapDelete("/{uuid}", (Guid uuid) => +{ + var agr = agrs.FirstOrDefault(r => r.Uuid == uuid); + if (agr == null) + return Results.NotFound(); + agrs.Remove(agr); + return Results.Json(new AgreementEntityDto() + { + Uuid = agr.Uuid, + Number = agr.Number, + Sum = agr.Sum, + Date = agr.Date, + IdRequest = agr.IdRequest, + }); +}) +.WithName("DeleteAgreement") +.WithOpenApi(); + +app.MapGet("/Requests/", async () => +{ + var httpClient = new HttpClient(); + var secondWorkerResponse = await httpClient.GetStringAsync("http://worker-1:8080/"); + + return secondWorkerResponse.ToArray(); +}) +.WithName("GetRequests") +.WithOpenApi(); + +app.Run(); + +public class Agreement +{ + public Guid Uuid { get; set; } + public string Number { get; set; } = string.Empty; + public DateOnly Date { get; set; } + public Guid IdRequest { get; set; } + public decimal Sum { get; set; } = 0; +} + +public class AgreementEntityDto : Agreement { } + +public class Request +{ + public Guid Uuid { get; set; } + public string Title { get; set; } = string.Empty; + public string SourceOfFunds { get; set; } = string.Empty; + public decimal Sum { get; set; } = 0; + public bool IsCompleted { get; set; } +} + +public class RequestEntityDto : Request { } \ No newline at end of file diff --git a/tasks/klementeva-ja/lab_3/worker-2/Properties/launchSettings.json b/tasks/klementeva-ja/lab_3/worker-2/Properties/launchSettings.json new file mode 100644 index 0000000..c0a3346 --- /dev/null +++ b/tasks/klementeva-ja/lab_3/worker-2/Properties/launchSettings.json @@ -0,0 +1,38 @@ +{ + "$schema": "http://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:36404", + "sslPort": 44384 + } + }, + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "http://localhost:5101", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:7125;http://localhost:5101", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/tasks/klementeva-ja/lab_3/worker-2/appsettings.Development.json b/tasks/klementeva-ja/lab_3/worker-2/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/tasks/klementeva-ja/lab_3/worker-2/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/tasks/klementeva-ja/lab_3/worker-2/appsettings.json b/tasks/klementeva-ja/lab_3/worker-2/appsettings.json new file mode 100644 index 0000000..b41ccef --- /dev/null +++ b/tasks/klementeva-ja/lab_3/worker-2/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/tasks/klementeva-ja/lab_3/worker-2/worker-2.csproj b/tasks/klementeva-ja/lab_3/worker-2/worker-2.csproj new file mode 100644 index 0000000..9e8d22f --- /dev/null +++ b/tasks/klementeva-ja/lab_3/worker-2/worker-2.csproj @@ -0,0 +1,15 @@ + + + + net8.0 + enable + enable + worker_2 + + + + + + + + diff --git a/tasks/klementeva-ja/lab_3/worker-2/worker-2.sln b/tasks/klementeva-ja/lab_3/worker-2/worker-2.sln new file mode 100644 index 0000000..8f8c96d --- /dev/null +++ b/tasks/klementeva-ja/lab_3/worker-2/worker-2.sln @@ -0,0 +1,22 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "worker-2", "worker-2.csproj", "{C9D63524-2C63-4E86-91B6-D86955CFA5F8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C9D63524-2C63-4E86-91B6-D86955CFA5F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C9D63524-2C63-4E86-91B6-D86955CFA5F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C9D63524-2C63-4E86-91B6-D86955CFA5F8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C9D63524-2C63-4E86-91B6-D86955CFA5F8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal