From 993d701ee610ed7a5177b357f71ebf54b7cbf271 Mon Sep 17 00:00:00 2001 From: ruden Date: Mon, 4 Dec 2023 23:02:10 +0300 Subject: [PATCH] mironor-eo-lab-3 --- tasks/mironov-eo/lab_3/.gitignore | 456 ++++++++++++++++++ tasks/mironov-eo/lab_3/README.md | 105 ++++ tasks/mironov-eo/lab_3/docker-compose.yml | 15 + tasks/mironov-eo/lab_3/nginx.conf | 26 + tasks/mironov-eo/lab_3/pic/1.png | Bin 0 -> 35492 bytes tasks/mironov-eo/lab_3/pic/2.png | Bin 0 -> 35640 bytes tasks/mironov-eo/lab_3/pic/3.png | Bin 0 -> 24904 bytes tasks/mironov-eo/lab_3/pic/4.png | Bin 0 -> 10074 bytes tasks/mironov-eo/lab_3/pic/5.png | Bin 0 -> 21803 bytes tasks/mironov-eo/lab_3/pic/6.png | Bin 0 -> 23361 bytes tasks/mironov-eo/lab_3/static/index.html | 12 + tasks/mironov-eo/lab_3/worker-1/Dockerfile | 11 + .../Models/Company/Create/CompanyForm.cs | 11 + .../Models/Company/Get/CompanyResult.cs | 13 + .../Models/Company/GetList/CompanyResult.cs | 13 + .../Models/Company/Update/CompanyForm.cs | 11 + tasks/mironov-eo/lab_3/worker-1/Program.cs | 131 +++++ .../worker-1/Properties/launchSettings.json | 38 ++ .../worker-1/appsettings.Development.json | 8 + .../lab_3/worker-1/appsettings.json | 9 + .../mironov-eo/lab_3/worker-1/worker-1.csproj | 15 + tasks/mironov-eo/lab_3/worker-1/worker-1.sln | 22 + tasks/mironov-eo/lab_3/worker-2/Dockerfile | 11 + .../Models/Employee/Create/EmployeeForm.cs | 13 + .../Models/Employee/Get/EmployeeResult.cs | 15 + .../Models/Employee/GetList/EmployeeResult.cs | 15 + .../Models/Employee/Update/EmployeeForm.cs | 13 + tasks/mironov-eo/lab_3/worker-2/Program.cs | 172 +++++++ .../worker-2/Properties/launchSettings.json | 38 ++ .../worker-2/appsettings.Development.json | 8 + .../lab_3/worker-2/appsettings.json | 9 + .../mironov-eo/lab_3/worker-2/worker-2.csproj | 15 + tasks/mironov-eo/lab_3/worker-2/worker-2.sln | 22 + 33 files changed, 1227 insertions(+) create mode 100644 tasks/mironov-eo/lab_3/.gitignore create mode 100644 tasks/mironov-eo/lab_3/README.md create mode 100644 tasks/mironov-eo/lab_3/docker-compose.yml create mode 100644 tasks/mironov-eo/lab_3/nginx.conf create mode 100644 tasks/mironov-eo/lab_3/pic/1.png create mode 100644 tasks/mironov-eo/lab_3/pic/2.png create mode 100644 tasks/mironov-eo/lab_3/pic/3.png create mode 100644 tasks/mironov-eo/lab_3/pic/4.png create mode 100644 tasks/mironov-eo/lab_3/pic/5.png create mode 100644 tasks/mironov-eo/lab_3/pic/6.png create mode 100644 tasks/mironov-eo/lab_3/static/index.html create mode 100644 tasks/mironov-eo/lab_3/worker-1/Dockerfile create mode 100644 tasks/mironov-eo/lab_3/worker-1/Models/Company/Create/CompanyForm.cs create mode 100644 tasks/mironov-eo/lab_3/worker-1/Models/Company/Get/CompanyResult.cs create mode 100644 tasks/mironov-eo/lab_3/worker-1/Models/Company/GetList/CompanyResult.cs create mode 100644 tasks/mironov-eo/lab_3/worker-1/Models/Company/Update/CompanyForm.cs create mode 100644 tasks/mironov-eo/lab_3/worker-1/Program.cs create mode 100644 tasks/mironov-eo/lab_3/worker-1/Properties/launchSettings.json create mode 100644 tasks/mironov-eo/lab_3/worker-1/appsettings.Development.json create mode 100644 tasks/mironov-eo/lab_3/worker-1/appsettings.json create mode 100644 tasks/mironov-eo/lab_3/worker-1/worker-1.csproj create mode 100644 tasks/mironov-eo/lab_3/worker-1/worker-1.sln create mode 100644 tasks/mironov-eo/lab_3/worker-2/Dockerfile create mode 100644 tasks/mironov-eo/lab_3/worker-2/Models/Employee/Create/EmployeeForm.cs create mode 100644 tasks/mironov-eo/lab_3/worker-2/Models/Employee/Get/EmployeeResult.cs create mode 100644 tasks/mironov-eo/lab_3/worker-2/Models/Employee/GetList/EmployeeResult.cs create mode 100644 tasks/mironov-eo/lab_3/worker-2/Models/Employee/Update/EmployeeForm.cs create mode 100644 tasks/mironov-eo/lab_3/worker-2/Program.cs create mode 100644 tasks/mironov-eo/lab_3/worker-2/Properties/launchSettings.json create mode 100644 tasks/mironov-eo/lab_3/worker-2/appsettings.Development.json create mode 100644 tasks/mironov-eo/lab_3/worker-2/appsettings.json create mode 100644 tasks/mironov-eo/lab_3/worker-2/worker-2.csproj create mode 100644 tasks/mironov-eo/lab_3/worker-2/worker-2.sln diff --git a/tasks/mironov-eo/lab_3/.gitignore b/tasks/mironov-eo/lab_3/.gitignore new file mode 100644 index 0000000..3c395b3 --- /dev/null +++ b/tasks/mironov-eo/lab_3/.gitignore @@ -0,0 +1,456 @@ +var/result/ + +## 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/master/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 +*.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 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/ + +# 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 + +## +## 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 + +# JetBrains Rider +.idea/ +*.sln.iml + +## +## Visual Studio Code +## +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json diff --git a/tasks/mironov-eo/lab_3/README.md b/tasks/mironov-eo/lab_3/README.md new file mode 100644 index 0000000..3601335 --- /dev/null +++ b/tasks/mironov-eo/lab_3/README.md @@ -0,0 +1,105 @@ +# Отчет по лабораторной работе №3 + +Выполнил студент гр. ИСЭбд-41 Миронов Е.О. + +## REST API, Gateway и синхронный обмен между микросервисами + +## Создание микросервисов + +1. С помощью команды `dotnet new web -n worker-1` в терминале создал первый микросервис +2. Добавил решение командой `dotnet new sln` +3. Связал решение и проект командой `dotnet sln worker-1.sln add worker-1.csproj` +4. Повторил действие для второго микросервиса +5. Добавил библиотеку Swagger и OpenAi в проекты и запустил с помощью команды `dotnet run` +6. Заложил в приложения следующую логику : + + worker-1 - CRUD для сущности Company + + worker-2 - CRUD для сущности Employee + + К одной Company относится много Employee + +Скриншоты API обоих приложений: +![](pic/1.png) +![](pic/2.png) + +## Реализация синхронного обмена + +Реализовал простое хранилище, которое при инициализации обращается вызывает сихронно данные из соседнего микросервиса. +Далее эти данные используются при обработке запросов к API + +```cs +public class Storage +{ + private static Random rand = new Random(); + + public static CompanyDal[] Companies { get; set; } + + public static List Employees { get; set; } + + static Storage() + { + var client = new HttpClient(); + string reqUrl = $"http://worker-1:8080/Companies/"; + Companies = client.GetFromJsonAsync(reqUrl).Result;//для простоты блокируем + + Employees = new List() + { + new EmployeeDal() { EmployeeId = Guid.NewGuid(), BirthDate = DateTime.Today.AddDays(-100), CompanyId = Companies[rand.Next(Companies.Length)].CompanyId, FullName = "Миронов Евгений Олегович", Position = "Ведущий разработчик" }, + new EmployeeDal() { EmployeeId = Guid.NewGuid(), BirthDate = DateTime.Today.AddDays(-150), CompanyId = Companies[rand.Next(Companies.Length)].CompanyId, FullName = "Сидоров Петр Иванович", Position = "Уборщик" } + }; + } +} +``` + +## Реализация 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`: + +Docker: + +![](pic/3.png) + +index.html на gateway-1: + +![](pic/4.png) + +worker-1: + +![](pic/5.png) + +worker-2: +companyId - берется из другого приложения. Идентификаторы совпали -> все отработало корректно +![](pic/6.png) \ No newline at end of file diff --git a/tasks/mironov-eo/lab_3/docker-compose.yml b/tasks/mironov-eo/lab_3/docker-compose.yml new file mode 100644 index 0000000..e9ca4b9 --- /dev/null +++ b/tasks/mironov-eo/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/mironov-eo/lab_3/nginx.conf b/tasks/mironov-eo/lab_3/nginx.conf new file mode 100644 index 0000000..f649a4a --- /dev/null +++ b/tasks/mironov-eo/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/mironov-eo/lab_3/pic/1.png b/tasks/mironov-eo/lab_3/pic/1.png new file mode 100644 index 0000000000000000000000000000000000000000..8e43f8b304dd0425126f3ed0f6a14acb8c194848 GIT binary patch literal 35492 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 i^iz)iR{=jOrc0UVeF}8| literal 0 HcmV?d00001 diff --git a/tasks/mironov-eo/lab_3/pic/2.png b/tasks/mironov-eo/lab_3/pic/2.png new file mode 100644 index 0000000000000000000000000000000000000000..2a7a1f768763875907e6a2bf86f36a6311a18b39 GIT binary patch literal 35640 zcmeFZcT`hb)Gr$KsKNf2t}oX zp#=yXr1us=C)~~XzW3dC$GCUAcklc6jRAwOv)9^d&NbJZzu9)Ernw}_^8whlV>hkvrC^?lL1PWVIg1pxCO5K=(dr=Rw zwC~P1syw~^hVdUBXxJcPTb}wguOS!sG0$3cHrHeD`zv?2vj4m~NNJZ9xIc{`yn1{q z_tkCe*wkr9uH$&jE1_FE=TcIKTk7I&)-ecgaVP4^F<#Ke$;ydMB_$>6N^uz(nJyUL z+M-Us$W_e(`L?%@s2j0ZY?q}F{oSx^YWIlSL8Y0`fVF%0r=AaW|Vb@tXZK zppS_7lfz*CBpL25SLwBSR7%Q#?TfYJ00R&hOzRNS_FhR!j;Y5zyyP!}ir|?CeG{rgz`Q4%iN@ z>s(v87QTNA1eZtR8SdVQ?Xtue%eSUlig32Fk2xO1tzHMQ7=~rjyGt|6PuQrvp;gV!m_y}uuvpnJ>qSw zne+1`)f<81JI9aV*gKa@N+0hl)rn(E>;0>eogqS5d5g{O>U|CobDpsG2GoH+{_0=7 zdn3>cEk++=mc5e>2i2Zjmfl>ooBsIfTxe$rLV@6>7P8=j43=oNRLw8-PP zJcFE|g@~c{-n*iifaaa6&sWo|1%B5^gu%RvES8KEc4EcpbvAe zGl=(redddnxdH-ZG6Um5penhOKL8Q%1ojIA>ZkZGK>&eXNdlyUK(@gE-$0s z=$RN(QxQ%YD()q)mDIQa(XS|S=8m_qCBJ~0 zyR=P|6a7aGH?cmgkIK9f6`zv3D}M#_(e2Br@5cp&ed_46)5w2{CzcjIUJXqLS3GfC zn^_LF4S<3`vwy4-U%TwA6rP2o7Xf!MN%`>fKoL)^sTKEio&HRz7kmHqHIx|yvTQHT zx!D$kL!@p%@ua#m5x<2QK31I6w_&m;+Sjl!?nE%fLez0Ob`jJce?ie%mIs$c2p)+xN$1SpNig z;wpqIn94MOkL-7m9fMc6!FehE{UY4N*Med&YZ!U*k>Jzw7dc|VFI>K)gXgHuzWTi{ z$%;%#C;GiOesGwNMhcYKm2h?7!*7f#7--3o58RaZRhyxuQxB76uYkCuwwCt`O(YtW zu+xPBK75V({UY_x!bDES^V@W05KgvenKkC&ZJB}#2Xl2ZpR>75>qubZ1yiIw(*4(m zY1`NY1t;oO9O_RJA4act$ef&Y+z8H=Z+%(|r9iuGj7xQ()f^%UtRFxKy9YK= z#W)+Mc@G5A{J7%XEXG!Pyf$?Udyq`i5z&5BK*f2G{<0i?qH!f6*l$M-o4KLhOidf@ zH--U^oKFsKe@+vDR!mC&>Hs+Yh7dwO&Ufbmov*W_>jnm+#~YaDp+&?U343?TB#`<#7bT^ z9q;S3x0ivPsYC?EQX!js*JWl%h{4}SgUg;9wF&Y!{kk4EOP03$v*M+cWEUrOjax>P znAyjR)^5*fY{59+pZY?(d&_^t(4Jp4sil+x?@NTw@Wdo#sefMhelijK@5*HSdVaJe z>QHDQ7KT%kncl_nBe&GdFXiuRMY;zyY5fj#IX5!?+2H1>-L^q_o+RJ9<^7H(7q8HF z;fG{@lAsuNUNE7VOxWwV&~9Q#2@pqY<;lA!Xqmj`pu#`+6ena1B?Z@~wt1$_z__C#n!dRy}*u$HsD$ z(K?)o6223JLJxze{rh#cE&TU51tz17M|R~dc>0d=CEr4L^tjwMbQ4Ol$4qN}P~pep zb`5F>5^&PLuohEJICjCD71}m@J2cP%0AM*W9C+{Ee&4dogmY=)6 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%0A(U1d9kMF6djU18;ZfZ!#HOsI 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 literal 0 HcmV?d00001 diff --git a/tasks/mironov-eo/lab_3/pic/4.png b/tasks/mironov-eo/lab_3/pic/4.png new file mode 100644 index 0000000000000000000000000000000000000000..beae180e77e6c50bd2ee9aadada0fbcafa19b747 GIT binary patch literal 10074 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 aqS33eSzD;GmM8(jqElDah9DJRz55s9qu-tY literal 0 HcmV?d00001 diff --git a/tasks/mironov-eo/lab_3/pic/5.png b/tasks/mironov-eo/lab_3/pic/5.png new file mode 100644 index 0000000000000000000000000000000000000000..7db03cd35e91cca071fceac565d4e8da81c9b06a GIT binary patch literal 21803 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 M5l0-$?1NMO1TAlCssI20 literal 0 HcmV?d00001 diff --git a/tasks/mironov-eo/lab_3/pic/6.png b/tasks/mironov-eo/lab_3/pic/6.png new file mode 100644 index 0000000000000000000000000000000000000000..a0d70a1f84eb3075ed2180ed1fb4bc337b8c6d09 GIT binary patch literal 23361 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 h_v^-DE$u3TwHzxUM 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 literal 0 HcmV?d00001 diff --git a/tasks/mironov-eo/lab_3/static/index.html b/tasks/mironov-eo/lab_3/static/index.html new file mode 100644 index 0000000..bf552f9 --- /dev/null +++ b/tasks/mironov-eo/lab_3/static/index.html @@ -0,0 +1,12 @@ + + + + + + Тестовое приложение для л/р 3 + + +

Миронов Е.О. ИСЭбд-41.

+
+

Отправить запрос к worker-2

+ \ No newline at end of file diff --git a/tasks/mironov-eo/lab_3/worker-1/Dockerfile b/tasks/mironov-eo/lab_3/worker-1/Dockerfile new file mode 100644 index 0000000..7a8ce23 --- /dev/null +++ b/tasks/mironov-eo/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/mironov-eo/lab_3/worker-1/Models/Company/Create/CompanyForm.cs b/tasks/mironov-eo/lab_3/worker-1/Models/Company/Create/CompanyForm.cs new file mode 100644 index 0000000..c800e05 --- /dev/null +++ b/tasks/mironov-eo/lab_3/worker-1/Models/Company/Create/CompanyForm.cs @@ -0,0 +1,11 @@ +namespace worker_1.Models.Company.Create +{ + public class CompanyForm + { + public string Name { get; set; } + + public string FieldOfActivity { get; set; } + + public string Location { get; set; } + } +} diff --git a/tasks/mironov-eo/lab_3/worker-1/Models/Company/Get/CompanyResult.cs b/tasks/mironov-eo/lab_3/worker-1/Models/Company/Get/CompanyResult.cs new file mode 100644 index 0000000..560f06f --- /dev/null +++ b/tasks/mironov-eo/lab_3/worker-1/Models/Company/Get/CompanyResult.cs @@ -0,0 +1,13 @@ +namespace worker_1.Models.Company.Get +{ + public class CompanyResult + { + public Guid CompanyId { get; set; } + + public string Name { get; set; } + + public string FieldOfActivity { get; set; } + + public string Location { get; set; } + } +} diff --git a/tasks/mironov-eo/lab_3/worker-1/Models/Company/GetList/CompanyResult.cs b/tasks/mironov-eo/lab_3/worker-1/Models/Company/GetList/CompanyResult.cs new file mode 100644 index 0000000..8ed49a9 --- /dev/null +++ b/tasks/mironov-eo/lab_3/worker-1/Models/Company/GetList/CompanyResult.cs @@ -0,0 +1,13 @@ +namespace worker_1.Models.Company.GetList +{ + public class CompanyResult + { + public Guid CompanyId { get; set; } + + public string Name { get; set; } + + public string FieldOfActivity { get; set; } + + public string Location { get; set; } + } +} diff --git a/tasks/mironov-eo/lab_3/worker-1/Models/Company/Update/CompanyForm.cs b/tasks/mironov-eo/lab_3/worker-1/Models/Company/Update/CompanyForm.cs new file mode 100644 index 0000000..aff3165 --- /dev/null +++ b/tasks/mironov-eo/lab_3/worker-1/Models/Company/Update/CompanyForm.cs @@ -0,0 +1,11 @@ +namespace worker_1.Models.Company.Update +{ + public class CompanyForm + { + public string Name { get; set; } + + public string FieldOfActivity { get; set; } + + public string Location { get; set; } + } +} diff --git a/tasks/mironov-eo/lab_3/worker-1/Program.cs b/tasks/mironov-eo/lab_3/worker-1/Program.cs new file mode 100644 index 0000000..8790d78 --- /dev/null +++ b/tasks/mironov-eo/lab_3/worker-1/Program.cs @@ -0,0 +1,131 @@ +using Microsoft.AspNetCore.Mvc; + +List companies = new() +{ + new CompanyDal() { CompanyId = Guid.NewGuid(), Name = "Microsoft", FieldOfActivity = "Информационные технологии", Location = "США"}, + new CompanyDal() { CompanyId = Guid.NewGuid(), Name = "Додо пицца", FieldOfActivity = "Питание", Location = "Россия"}, + new CompanyDal() { CompanyId = Guid.NewGuid(), Name = "Renault", FieldOfActivity = "Автомобилестроение", Location = "Франция"}, +}; + + + +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("/Companies/", () => +{ + var result = companies.Select(r => new worker_1.Models.Company.GetList.CompanyResult() + { + CompanyId = r.CompanyId, + Name = r.Name, + FieldOfActivity = r.FieldOfActivity, + Location = r.Location, + }).ToArray(); + + return Results.Ok(result); +}) +.WithName("List") +.WithOpenApi(); + +app.MapGet("/Companies/{companyId}", (Guid companyId) => +{ + var company = companies.FirstOrDefault(r => r.CompanyId == companyId); + if (company is null) + { + return Results.NotFound($"Не найдена компания {companyId}"); + } + + return Results.Json(new worker_1.Models.Company.Get.CompanyResult() + { + CompanyId = company.CompanyId, + Name = company.Name, + FieldOfActivity = company.FieldOfActivity, + Location = company.Location, + }); +}) +.WithName("Get") +.WithOpenApi(); + +app.MapPost("/Companies/", ([FromBody] worker_1.Models.Company.Create.CompanyForm request) => +{ + Guid companyId = Guid.NewGuid(); + companies.Add(new CompanyDal() + { + CompanyId = companyId, + FieldOfActivity = request.FieldOfActivity, + Location = request.Location, + Name = request.Name, + }); + + return Results.Ok(companyId); +}) +.WithName("Create") +.WithOpenApi(); + +app.MapPatch("/Companies/{companyId}", (Guid companyId, [FromBody] worker_1.Models.Company.Create.CompanyForm request) => +{ + var company = companies.FirstOrDefault(r => r.CompanyId == companyId); + if (company is null) + { + return Results.NotFound($"Не найдена компания {companyId}"); + } + + if (!string.IsNullOrEmpty(request.Name)) + { + company.Name = request.Name; + } + + if (!string.IsNullOrEmpty(request.Location)) + { + company.Location = request.Location; + } + + if (!string.IsNullOrEmpty(request.FieldOfActivity)) + { + company.FieldOfActivity = request.FieldOfActivity; + } + return Results.Ok(company); +}) +.WithName("Update") +.WithOpenApi(); + +app.MapDelete("/Companies/{companyId}", (Guid companyId) => +{ + var company = companies.FirstOrDefault(r => r.CompanyId == companyId); + if (company is null) + { + return Results.NotFound($"Не найдена компания {companyId}"); + } + + companies.Remove(company); + return Results.Ok(companyId); +}) +.WithName("Delete") +.WithOpenApi(); + +app.Run(); + + + +public class CompanyDal +{ + public Guid CompanyId { get; set; } + + public string Name { get; set; } + + public string FieldOfActivity { get; set; } + + public string Location { get; set; } +} \ No newline at end of file diff --git a/tasks/mironov-eo/lab_3/worker-1/Properties/launchSettings.json b/tasks/mironov-eo/lab_3/worker-1/Properties/launchSettings.json new file mode 100644 index 0000000..bab6706 --- /dev/null +++ b/tasks/mironov-eo/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/mironov-eo/lab_3/worker-1/appsettings.Development.json b/tasks/mironov-eo/lab_3/worker-1/appsettings.Development.json new file mode 100644 index 0000000..3b823ef --- /dev/null +++ b/tasks/mironov-eo/lab_3/worker-1/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/tasks/mironov-eo/lab_3/worker-1/appsettings.json b/tasks/mironov-eo/lab_3/worker-1/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/tasks/mironov-eo/lab_3/worker-1/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/tasks/mironov-eo/lab_3/worker-1/worker-1.csproj b/tasks/mironov-eo/lab_3/worker-1/worker-1.csproj new file mode 100644 index 0000000..795c30e --- /dev/null +++ b/tasks/mironov-eo/lab_3/worker-1/worker-1.csproj @@ -0,0 +1,15 @@ + + + + net8.0 + enable + enable + worker_1 + + + + + + + + diff --git a/tasks/mironov-eo/lab_3/worker-1/worker-1.sln b/tasks/mironov-eo/lab_3/worker-1/worker-1.sln new file mode 100644 index 0000000..fc4131f --- /dev/null +++ b/tasks/mironov-eo/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/mironov-eo/lab_3/worker-2/Dockerfile b/tasks/mironov-eo/lab_3/worker-2/Dockerfile new file mode 100644 index 0000000..7f6b963 --- /dev/null +++ b/tasks/mironov-eo/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/mironov-eo/lab_3/worker-2/Models/Employee/Create/EmployeeForm.cs b/tasks/mironov-eo/lab_3/worker-2/Models/Employee/Create/EmployeeForm.cs new file mode 100644 index 0000000..3f57ff3 --- /dev/null +++ b/tasks/mironov-eo/lab_3/worker-2/Models/Employee/Create/EmployeeForm.cs @@ -0,0 +1,13 @@ +namespace worker_2.Models.Employee.Create +{ + public class EmployeeForm + { + public DateTime? BirthDate { get; set; } + + public Guid CompanyId { get; set; } + + public string FullName { get; set; } + + public string Position { get; set; } + } +} diff --git a/tasks/mironov-eo/lab_3/worker-2/Models/Employee/Get/EmployeeResult.cs b/tasks/mironov-eo/lab_3/worker-2/Models/Employee/Get/EmployeeResult.cs new file mode 100644 index 0000000..e9448c8 --- /dev/null +++ b/tasks/mironov-eo/lab_3/worker-2/Models/Employee/Get/EmployeeResult.cs @@ -0,0 +1,15 @@ +namespace worker_2.Models.Employee.Get +{ + public class EmployeeResult + { + public Guid EmployeeId { get; set; } + + public DateTime? BirthDate { get; set; } + + public Guid CompanyId { get; set; } + + public string FullName { get; set; } + + public string Position { get; set; } + } +} diff --git a/tasks/mironov-eo/lab_3/worker-2/Models/Employee/GetList/EmployeeResult.cs b/tasks/mironov-eo/lab_3/worker-2/Models/Employee/GetList/EmployeeResult.cs new file mode 100644 index 0000000..869926a --- /dev/null +++ b/tasks/mironov-eo/lab_3/worker-2/Models/Employee/GetList/EmployeeResult.cs @@ -0,0 +1,15 @@ +namespace worker_2.Models.Employee.GetList +{ + public class EmployeeResult + { + public Guid EmployeeId { get; set; } + + public DateTime? BirthDate { get; set; } + + public Guid CompanyId { get; set; } + + public string FullName { get; set; } + + public string Position { get; set; } + } +} diff --git a/tasks/mironov-eo/lab_3/worker-2/Models/Employee/Update/EmployeeForm.cs b/tasks/mironov-eo/lab_3/worker-2/Models/Employee/Update/EmployeeForm.cs new file mode 100644 index 0000000..5a44bfa --- /dev/null +++ b/tasks/mironov-eo/lab_3/worker-2/Models/Employee/Update/EmployeeForm.cs @@ -0,0 +1,13 @@ +namespace worker_2.Models.Employee.Update +{ + public class EmployeeForm + { + public DateTime BirthDate { get; set; } + + public Guid CompanyId { get; set; } + + public string FullName { get; set; } + + public string Position { get; set; } + } +} diff --git a/tasks/mironov-eo/lab_3/worker-2/Program.cs b/tasks/mironov-eo/lab_3/worker-2/Program.cs new file mode 100644 index 0000000..584177c --- /dev/null +++ b/tasks/mironov-eo/lab_3/worker-2/Program.cs @@ -0,0 +1,172 @@ + +using Microsoft.AspNetCore.Mvc; +using System.Text; + + +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("/Employees/", () => +{ + var result = Storage.Employees.Select(r => new worker_2.Models.Employee.GetList.EmployeeResult() + { + CompanyId = r.CompanyId, + FullName = r.FullName, + BirthDate = r.BirthDate, + EmployeeId = r.EmployeeId, + Position = r.Position, + }).ToArray(); + + return Results.Ok(result); +}) +.WithName("List") +.WithOpenApi(); + +app.MapGet("/Employees/{employeeId}", (Guid employeeId) => +{ + var employee = Storage.Employees.FirstOrDefault(r => r.EmployeeId == employeeId); + if (employee is null) + { + return Results.NotFound($"Не найден работник {employeeId}"); + } + + return Results.Json(new worker_2.Models.Employee.Get.EmployeeResult() + { + CompanyId = employee.CompanyId, + FullName = employee.FullName, + BirthDate = employee.BirthDate, + EmployeeId = employee.EmployeeId, + Position = employee.Position, + }); +}) +.WithName("Get") +.WithOpenApi(); + +app.MapPost("/Employees/", ([FromBody] worker_2.Models.Employee.Create.EmployeeForm request) => +{ + if (Storage.Companies.FirstOrDefault(x => x.CompanyId == request.CompanyId) is null) + { + return Results.NotFound($"Не найдена компания {request.CompanyId}"); + } + Guid employeeId = Guid.NewGuid(); + Storage.Employees.Add(new EmployeeDal() + { + EmployeeId = employeeId, + BirthDate = request.BirthDate, + CompanyId = request.CompanyId, + FullName = request.FullName, + Position = request.Position, + }); + + return Results.Ok(employeeId); +}) +.WithName("Create") +.WithOpenApi(); + +app.MapPatch("/Employees/{employeeId}", (Guid employeeId, [FromBody] worker_2.Models.Employee.Create.EmployeeForm request) => +{ + var employee = Storage.Employees.FirstOrDefault(r => r.EmployeeId == employeeId); + if (employee is null) + { + return Results.NotFound($"Не найден работник {employeeId}"); + } + + if(Storage.Companies.FirstOrDefault(x => x.CompanyId == request.CompanyId) is null) + { + return Results.NotFound($"Не найдена компания {request.CompanyId}"); + } + + if (!string.IsNullOrEmpty(request.FullName)) + { + employee.FullName = request.FullName; + } + + if (!string.IsNullOrEmpty(request.Position)) + { + employee.Position = request.Position; + } + + if (request.BirthDate.HasValue) + { + employee.BirthDate = request.BirthDate.Value; + } + return Results.Ok(employee); +}) +.WithName("Update") +.WithOpenApi(); + +app.MapDelete("/Employees/{employeeId}", (Guid employeeId) => +{ + var employee = Storage.Employees.FirstOrDefault(r => r.EmployeeId == employeeId); + if (employee is null) + { + return Results.NotFound($"Не найден работник {employeeId}"); + } + + Storage.Employees.Remove(employee); + return Results.Ok(employeeId); +}) +.WithName("Delete") +.WithOpenApi(); + +app.Run(); + + +public class EmployeeDal +{ + public Guid EmployeeId { get; set; } + + public DateTime? BirthDate { get; set; } + + public Guid CompanyId { get; set; } + + public string FullName { get; set; } + + public string Position { get; set; } +} + +public class CompanyDal +{ + public Guid CompanyId { get; set; } + + public string Name { get; set; } + + public string FieldOfActivity { get; set; } + + public string Location { get; set; } +} + +public class Storage +{ + private static Random rand = new Random(); + + public static CompanyDal[] Companies { get; set; } + + public static List Employees { get; set; } + + static Storage() + { + var client = new HttpClient(); + string reqUrl = $"http://worker-1:8080/Companies/"; + Companies = client.GetFromJsonAsync(reqUrl).Result;//для простоты блокируем + + Employees = new List() + { + new EmployeeDal() { EmployeeId = Guid.NewGuid(), BirthDate = DateTime.Today.AddDays(-100), CompanyId = Companies[rand.Next(Companies.Length)].CompanyId, FullName = "Миронов Евгений Олегович", Position = "Ведущий разработчик" }, + new EmployeeDal() { EmployeeId = Guid.NewGuid(), BirthDate = DateTime.Today.AddDays(-150), CompanyId = Companies[rand.Next(Companies.Length)].CompanyId, FullName = "Сидоров Петр Иванович", Position = "Уборщик" } + }; + } +} + diff --git a/tasks/mironov-eo/lab_3/worker-2/Properties/launchSettings.json b/tasks/mironov-eo/lab_3/worker-2/Properties/launchSettings.json new file mode 100644 index 0000000..c0a3346 --- /dev/null +++ b/tasks/mironov-eo/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/mironov-eo/lab_3/worker-2/appsettings.Development.json b/tasks/mironov-eo/lab_3/worker-2/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/tasks/mironov-eo/lab_3/worker-2/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/tasks/mironov-eo/lab_3/worker-2/appsettings.json b/tasks/mironov-eo/lab_3/worker-2/appsettings.json new file mode 100644 index 0000000..b41ccef --- /dev/null +++ b/tasks/mironov-eo/lab_3/worker-2/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/tasks/mironov-eo/lab_3/worker-2/worker-2.csproj b/tasks/mironov-eo/lab_3/worker-2/worker-2.csproj new file mode 100644 index 0000000..9e8d22f --- /dev/null +++ b/tasks/mironov-eo/lab_3/worker-2/worker-2.csproj @@ -0,0 +1,15 @@ + + + + net8.0 + enable + enable + worker_2 + + + + + + + + diff --git a/tasks/mironov-eo/lab_3/worker-2/worker-2.sln b/tasks/mironov-eo/lab_3/worker-2/worker-2.sln new file mode 100644 index 0000000..8f8c96d --- /dev/null +++ b/tasks/mironov-eo/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

Отправить запрос к worker-1