From 7dd1ded10461a3861a88bf8d7bdc6fb8f840a382 Mon Sep 17 00:00:00 2001 From: Sidney Andrews Date: Tue, 29 Oct 2024 08:27:01 -0400 Subject: [PATCH] Clean working branch due to solution name change --- .dockerignore | 25 - .gitignore | 484 ------------------ Cosmos.Samples.NoSQL.Quickstart.sln | 22 - Dockerfile | 24 - Microsoft.Samples.Cosmos.NoSQL.Quickstart.sln | 34 -- ...ples.Cosmos.NoSQL.Quickstart.Models.csproj | 7 - models/Product.cs | 10 - services/DemoService.cs | 105 ---- services/Interfaces/IDemoService.cs | 8 - ...es.Cosmos.NoSQL.Quickstart.Services.csproj | 14 - web/App.razor | 11 - web/Components/App.razor | 24 - web/Components/Layout/MainLayout.razor | 13 - web/Components/Pages/Home.razor | 97 ---- web/Components/Routes.razor | 11 - web/Components/_Imports.razor | 12 - ...Cosmos.Samples.NoSQL.Quickstart.Web.csproj | 14 - web/Dockerfile | 25 - web/MainLayout.razor | 8 - ...Samples.Cosmos.NoSQL.Quickstart.Web.csproj | 17 - web/Models/Product.cs | 10 - web/Pages/Index.razor | 81 --- web/Pages/_Host.cshtml | 33 -- web/Program.cs | 33 -- web/Properties/launchSettings.json | 23 - web/Services/DemoService.cs | 109 ---- web/_Imports.razor | 5 - web/appsettings.json | 10 - web/wwwroot/favicon.ico | Bin 15406 -> 0 bytes 29 files changed, 1269 deletions(-) delete mode 100644 .dockerignore delete mode 100644 .gitignore delete mode 100644 Cosmos.Samples.NoSQL.Quickstart.sln delete mode 100644 Dockerfile delete mode 100644 Microsoft.Samples.Cosmos.NoSQL.Quickstart.sln delete mode 100644 models/Microsoft.Samples.Cosmos.NoSQL.Quickstart.Models.csproj delete mode 100644 models/Product.cs delete mode 100644 services/DemoService.cs delete mode 100644 services/Interfaces/IDemoService.cs delete mode 100644 services/Microsoft.Samples.Cosmos.NoSQL.Quickstart.Services.csproj delete mode 100644 web/App.razor delete mode 100644 web/Components/App.razor delete mode 100644 web/Components/Layout/MainLayout.razor delete mode 100644 web/Components/Pages/Home.razor delete mode 100644 web/Components/Routes.razor delete mode 100644 web/Components/_Imports.razor delete mode 100644 web/Cosmos.Samples.NoSQL.Quickstart.Web.csproj delete mode 100644 web/Dockerfile delete mode 100644 web/MainLayout.razor delete mode 100644 web/Microsoft.Samples.Cosmos.NoSQL.Quickstart.Web.csproj delete mode 100644 web/Models/Product.cs delete mode 100644 web/Pages/Index.razor delete mode 100644 web/Pages/_Host.cshtml delete mode 100644 web/Program.cs delete mode 100644 web/Properties/launchSettings.json delete mode 100644 web/Services/DemoService.cs delete mode 100644 web/_Imports.razor delete mode 100644 web/appsettings.json delete mode 100644 web/wwwroot/favicon.ico diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 3729ff0..0000000 --- a/.dockerignore +++ /dev/null @@ -1,25 +0,0 @@ -**/.classpath -**/.dockerignore -**/.env -**/.git -**/.gitignore -**/.project -**/.settings -**/.toolstarget -**/.vs -**/.vscode -**/*.*proj.user -**/*.dbmdl -**/*.jfm -**/azds.yaml -**/bin -**/charts -**/docker-compose* -**/Dockerfile* -**/node_modules -**/npm-debug.log -**/obj -**/secrets.dev.yaml -**/values.dev.yaml -LICENSE -README.md \ No newline at end of file diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 104b544..0000000 --- a/.gitignore +++ /dev/null @@ -1,484 +0,0 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from `dotnet new gitignore` - -# dotenv files -.env - -# 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 -.idea - -## -## 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 - -# Vim temporary swap files -*.swp diff --git a/Cosmos.Samples.NoSQL.Quickstart.sln b/Cosmos.Samples.NoSQL.Quickstart.sln deleted file mode 100644 index 89fbc0e..0000000 --- a/Cosmos.Samples.NoSQL.Quickstart.sln +++ /dev/null @@ -1,22 +0,0 @@ - -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}") = "Cosmos.Samples.NoSQL.Quickstart.Web", "web\Cosmos.Samples.NoSQL.Quickstart.Web.csproj", "{F161D39F-F515-410A-9FE3-CA95A2659966}" -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 - {F161D39F-F515-410A-9FE3-CA95A2659966}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F161D39F-F515-410A-9FE3-CA95A2659966}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F161D39F-F515-410A-9FE3-CA95A2659966}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F161D39F-F515-410A-9FE3-CA95A2659966}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection -EndGlobal diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 79aea07..0000000 --- a/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base -USER app -WORKDIR /app -EXPOSE 8080 -EXPOSE 8081 -FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build -ARG BUILD_CONFIGURATION=Release -WORKDIR /src -COPY ["web/Microsoft.Samples.Cosmos.NoSQL.Quickstart.Web.csproj", "web/"] -COPY ["models/Microsoft.Samples.Cosmos.NoSQL.Quickstart.Models.csproj", "models/"] -COPY ["services/Microsoft.Samples.Cosmos.NoSQL.Quickstart.Services.csproj", "services/"] -COPY ["Microsoft.Samples.Cosmos.NoSQL.Quickstart.sln", "."] -RUN dotnet restore "Microsoft.Samples.Cosmos.NoSQL.Quickstart.sln" -COPY . . -RUN dotnet build "Microsoft.Samples.Cosmos.NoSQL.Quickstart.sln" -c $BUILD_CONFIGURATION -o /app/build - -FROM build AS publish -ARG BUILD_CONFIGURATION=Release -RUN dotnet publish "web/Microsoft.Samples.Cosmos.NoSQL.Quickstart.Web.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false - -FROM base AS final -WORKDIR /app -COPY --from=publish /app/publish . -ENTRYPOINT ["dotnet", "Microsoft.Samples.Cosmos.NoSQL.Quickstart.Web.dll"] \ No newline at end of file diff --git a/Microsoft.Samples.Cosmos.NoSQL.Quickstart.sln b/Microsoft.Samples.Cosmos.NoSQL.Quickstart.sln deleted file mode 100644 index d1dd916..0000000 --- a/Microsoft.Samples.Cosmos.NoSQL.Quickstart.sln +++ /dev/null @@ -1,34 +0,0 @@ - -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}") = "Microsoft.Samples.Cosmos.NoSQL.Quickstart.Web", "web\Microsoft.Samples.Cosmos.NoSQL.Quickstart.Web.csproj", "{DB1EBDE0-AA02-4D28-8574-EF28DAC09147}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Samples.Cosmos.NoSQL.Quickstart.Models", "models\Microsoft.Samples.Cosmos.NoSQL.Quickstart.Models.csproj", "{5FC7FBD8-3D5B-4E86-AFA5-DC26BA5CB4D3}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Samples.Cosmos.NoSQL.Quickstart.Services", "services\Microsoft.Samples.Cosmos.NoSQL.Quickstart.Services.csproj", "{BE19E8F8-0FE7-437B-AFD3-F31F854BCE87}" -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 - {DB1EBDE0-AA02-4D28-8574-EF28DAC09147}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DB1EBDE0-AA02-4D28-8574-EF28DAC09147}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DB1EBDE0-AA02-4D28-8574-EF28DAC09147}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DB1EBDE0-AA02-4D28-8574-EF28DAC09147}.Release|Any CPU.Build.0 = Release|Any CPU - {5FC7FBD8-3D5B-4E86-AFA5-DC26BA5CB4D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5FC7FBD8-3D5B-4E86-AFA5-DC26BA5CB4D3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5FC7FBD8-3D5B-4E86-AFA5-DC26BA5CB4D3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5FC7FBD8-3D5B-4E86-AFA5-DC26BA5CB4D3}.Release|Any CPU.Build.0 = Release|Any CPU - {BE19E8F8-0FE7-437B-AFD3-F31F854BCE87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BE19E8F8-0FE7-437B-AFD3-F31F854BCE87}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BE19E8F8-0FE7-437B-AFD3-F31F854BCE87}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BE19E8F8-0FE7-437B-AFD3-F31F854BCE87}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection -EndGlobal diff --git a/models/Microsoft.Samples.Cosmos.NoSQL.Quickstart.Models.csproj b/models/Microsoft.Samples.Cosmos.NoSQL.Quickstart.Models.csproj deleted file mode 100644 index 80f16bc..0000000 --- a/models/Microsoft.Samples.Cosmos.NoSQL.Quickstart.Models.csproj +++ /dev/null @@ -1,7 +0,0 @@ - - - net9.0 - enable - enable - - \ No newline at end of file diff --git a/models/Product.cs b/models/Product.cs deleted file mode 100644 index 0d5ba04..0000000 --- a/models/Product.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Microsoft.Samples.Cosmos.NoSQL.Quickstart.Models; - -public record Product( - string id, - string category, - string name, - int quantity, - decimal price, - bool clearance -); diff --git a/services/DemoService.cs b/services/DemoService.cs deleted file mode 100644 index 28a60bc..0000000 --- a/services/DemoService.cs +++ /dev/null @@ -1,105 +0,0 @@ -using Microsoft.Azure.Cosmos; -using Microsoft.Samples.Cosmos.NoSQL.Quickstart.Models; -using Microsoft.Samples.Cosmos.NoSQL.Quickstart.Services.Interfaces; - -namespace Microsoft.Samples.Cosmos.NoSQL.Quickstart.Services; - -public sealed class DemoService(CosmosClient client) : IDemoService -{ - public string GetEndpoint() => $"{client.Endpoint}"; - - public async Task RunAsync(Func writeOutputAync) - { - Database database = client.GetDatabase("cosmicworks"); - - database = await database.ReadAsync(); - await writeOutputAync($"Get database:\t{database.Id}"); - - Container container = database.GetContainer("products"); - - container = await container.ReadContainerAsync(); - await writeOutputAync($"Get container:\t{container.Id}"); - - { - Product item = new( - id: "68719518391", - category: "gear-surf-surfboards", - name: "Yamba Surfboard", - quantity: 12, - price: 850.00m, - clearance: false - ); - - ItemResponse response = await container.UpsertItemAsync( - item: item, - partitionKey: new PartitionKey("gear-surf-surfboards") - ); - - await writeOutputAync($"Upserted item:\t{response.Resource}"); - await writeOutputAync($"Status code:\t{response.StatusCode}"); - await writeOutputAync($"Request charge:\t{response.RequestCharge:0.00}"); - } - - { - Product item = new( - id: "68719518371", - category: "gear-surf-surfboards", - name: "Kiama Classic Surfboard", - quantity: 25, - price: 790.00m, - clearance: false - ); - - ItemResponse response = await container.UpsertItemAsync( - item: item, - partitionKey: new PartitionKey("gear-surf-surfboards") - ); - await writeOutputAync($"Upserted item:\t{response.Resource}"); - await writeOutputAync($"Status code:\t{response.StatusCode}"); - await writeOutputAync($"Request charge:\t{response.RequestCharge:0.00}"); - } - - { - ItemResponse response = await container.ReadItemAsync( - id: "68719518391", - partitionKey: new PartitionKey("gear-surf-surfboards") - ); - - await writeOutputAync($"Read item id:\t{response.Resource.id}"); - await writeOutputAync($"Read item:\t{response.Resource}"); - await writeOutputAync($"Status code:\t{response.StatusCode}"); - await writeOutputAync($"Request charge:\t{response.RequestCharge:0.00}"); - } - - { - var query = new QueryDefinition( - query: "SELECT * FROM products p WHERE p.category = @category" - ) - .WithParameter("@category", "gear-surf-surfboards"); - - using FeedIterator feed = container.GetItemQueryIterator( - queryDefinition: query - ); - - await writeOutputAync($"Ran query:\t{query.QueryText}"); - - List items = new(); - double requestCharge = 0d; - while (feed.HasMoreResults) - { - FeedResponse response = await feed.ReadNextAsync(); - foreach (Product item in response) - { - items.Add(item); - } - requestCharge += response.RequestCharge; - } - - foreach (var item in items) - { - await writeOutputAync($"Found item:\t{item.name}\t[{item.id}]"); - } - await writeOutputAync($"Request charge:\t{requestCharge:0.00}"); - } - } -} diff --git a/services/Interfaces/IDemoService.cs b/services/Interfaces/IDemoService.cs deleted file mode 100644 index a2574b4..0000000 --- a/services/Interfaces/IDemoService.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Microsoft.Samples.Cosmos.NoSQL.Quickstart.Services.Interfaces; - -public interface IDemoService -{ - Task RunAsync(Func writeOutputAync); - - string GetEndpoint(); -} \ No newline at end of file diff --git a/services/Microsoft.Samples.Cosmos.NoSQL.Quickstart.Services.csproj b/services/Microsoft.Samples.Cosmos.NoSQL.Quickstart.Services.csproj deleted file mode 100644 index 3a8972d..0000000 --- a/services/Microsoft.Samples.Cosmos.NoSQL.Quickstart.Services.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - net9.0 - enable - enable - - - - - - - - - \ No newline at end of file diff --git a/web/App.razor b/web/App.razor deleted file mode 100644 index d414dad..0000000 --- a/web/App.razor +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - Not found - -

Sorry, there's nothing at this address.

-
-
-
diff --git a/web/Components/App.razor b/web/Components/App.razor deleted file mode 100644 index 3767ae4..0000000 --- a/web/Components/App.razor +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - Azure Cosmos DB for NoSQL - - - - - - - - - - diff --git a/web/Components/Layout/MainLayout.razor b/web/Components/Layout/MainLayout.razor deleted file mode 100644 index a31dae5..0000000 --- a/web/Components/Layout/MainLayout.razor +++ /dev/null @@ -1,13 +0,0 @@ -@inherits LayoutComponentBase - -
-

- Azure Cosmos DB for NoSQL | .NET Quickstart -

- @Body - -
diff --git a/web/Components/Pages/Home.razor b/web/Components/Pages/Home.razor deleted file mode 100644 index 9f68c41..0000000 --- a/web/Components/Pages/Home.razor +++ /dev/null @@ -1,97 +0,0 @@ -@page "/" -@using System.Text -@inject IDemoService demoService -@rendermode InteractiveServer - - - Azure Cosmos DB for NoSQL | .NET Quickstart - - -
-    @ConsoleText
-
- -
- -
- -
- - - ENDPOINT: - - @demoService.GetEndpoint() - -
- -@code { - private StringBuilder _console = new(); - - private string ConsoleText - { - get => _console.ToString(); - } - - private bool RunAgainEnabled { get; set; } - - protected override async Task OnInitializedAsync() - { - await GenerateQueryDataAsync(); - } - - private async Task RunAgainAsync() - { - await GenerateQueryDataAsync(); - } - - private async Task GenerateQueryDataAsync() - { - await SetRunAgain(false); - await ClearConsoleAsync(); - - await WriteToConsoleAync("Current Status:\tStarting..."); - - await demoService.RunAsync(writeOutputAync: WriteToConsoleAync); - - await WriteToConsoleAync("Current Status:\tStopping..."); - await SetRunAgain(true); - } - - private async Task WriteToConsoleAync(string message) - { - _console.AppendLine(message); - await InvokeAsync(StateHasChanged); - } - - private async Task ClearConsoleAsync() - { - _console.Clear(); - await InvokeAsync(StateHasChanged); - } - - private async Task SetRunAgain(bool state) - { - RunAgainEnabled = state; - await InvokeAsync(StateHasChanged); - } -} - diff --git a/web/Components/Routes.razor b/web/Components/Routes.razor deleted file mode 100644 index 2f49ee3..0000000 --- a/web/Components/Routes.razor +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - Not found - -

Sorry, there's nothing at this address.

-
-
-
diff --git a/web/Components/_Imports.razor b/web/Components/_Imports.razor deleted file mode 100644 index 690590f..0000000 --- a/web/Components/_Imports.razor +++ /dev/null @@ -1,12 +0,0 @@ -@using System.Net.Http -@using System.Net.Http.Json -@using Microsoft.AspNetCore.Components.Forms -@using Microsoft.AspNetCore.Components.Routing -@using Microsoft.AspNetCore.Components.Web -@using static Microsoft.AspNetCore.Components.Web.RenderMode -@using Microsoft.AspNetCore.Components.Web.Virtualization -@using Microsoft.JSInterop -@using Microsoft.Samples.Cosmos.NoSQL.Quickstart.Models -@using Microsoft.Samples.Cosmos.NoSQL.Quickstart.Services.Interfaces -@using Microsoft.Samples.Cosmos.NoSQL.Quickstart.Web -@using Microsoft.Samples.Cosmos.NoSQL.Quickstart.Web.Components diff --git a/web/Cosmos.Samples.NoSQL.Quickstart.Web.csproj b/web/Cosmos.Samples.NoSQL.Quickstart.Web.csproj deleted file mode 100644 index 504193f..0000000 --- a/web/Cosmos.Samples.NoSQL.Quickstart.Web.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - net8.0 - enable - enable - 65c85440-31fd-4394-ae83-614ffddbb71f - Linux - - - - - - - \ No newline at end of file diff --git a/web/Dockerfile b/web/Dockerfile deleted file mode 100644 index d646b0f..0000000 --- a/web/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. - -FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base -USER app -WORKDIR /app -EXPOSE 8080 -EXPOSE 8081 - -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build -ARG BUILD_CONFIGURATION=Release -WORKDIR /src -COPY ["web/Cosmos.Samples.NoSQL.Quickstart.Web.csproj", "web/"] -RUN dotnet restore "./web/./Cosmos.Samples.NoSQL.Quickstart.Web.csproj" -COPY . . -WORKDIR "/src/web" -RUN dotnet build "./Cosmos.Samples.NoSQL.Quickstart.Web.csproj" -c $BUILD_CONFIGURATION -o /app/build - -FROM build AS publish -ARG BUILD_CONFIGURATION=Release -RUN dotnet publish "./Cosmos.Samples.NoSQL.Quickstart.Web.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false - -FROM base AS final -WORKDIR /app -COPY --from=publish /app/publish . -ENTRYPOINT ["dotnet", "Cosmos.Samples.NoSQL.Quickstart.Web.dll"] \ No newline at end of file diff --git a/web/MainLayout.razor b/web/MainLayout.razor deleted file mode 100644 index 1a84821..0000000 --- a/web/MainLayout.razor +++ /dev/null @@ -1,8 +0,0 @@ -@inherits LayoutComponentBase - -
-

- Azure Cosmos DB for NoSQL | .NET Quickstart -

- @Body -
diff --git a/web/Microsoft.Samples.Cosmos.NoSQL.Quickstart.Web.csproj b/web/Microsoft.Samples.Cosmos.NoSQL.Quickstart.Web.csproj deleted file mode 100644 index 952768b..0000000 --- a/web/Microsoft.Samples.Cosmos.NoSQL.Quickstart.Web.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - net9.0 - enable - enable - f6167579-5a7c-405e-bdae-cf20a79d6b9d - - - - - - - - - - - diff --git a/web/Models/Product.cs b/web/Models/Product.cs deleted file mode 100644 index d5b2618..0000000 --- a/web/Models/Product.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Cosmos.Samples.NoSQL.Quickstart.Web.Models; - -public record Product( - string id, - string category, - string name, - int quantity, - decimal price, - bool clearance -); diff --git a/web/Pages/Index.razor b/web/Pages/Index.razor deleted file mode 100644 index fe21dc4..0000000 --- a/web/Pages/Index.razor +++ /dev/null @@ -1,81 +0,0 @@ -@page "/" -@inject IDemoService demoService -@using System.Text - -
-    @_console.ToString()
-
- -
- -
- -
- - - ENDPOINT: - - @demoService.GetEndpoint() - -
- -@code { - private StringBuilder _console = new(); - - private bool _runAgainEnabled = false; - - protected override void OnInitialized() => GenerateQueryDataAsync(); - - private void RunAgain() => GenerateQueryDataAsync(); - - private async void GenerateQueryDataAsync() - { - await SetRunAgain(false); - await ClearConsoleAsync(); - - await WriteToConsoleAync("Current Status:\tStarting..."); - - await demoService.RunAsync(writeOutputAync: WriteToConsoleAync); - - await WriteToConsoleAync("Current Status:\tStopping..."); - await SetRunAgain(true); - - async Task WriteToConsoleAync(string message) - { - _console.AppendLine(message); - await InvokeAsync(StateHasChanged); - await Task.Delay(TimeSpan.FromSeconds(0.75)); - } - - async Task ClearConsoleAsync() - { - _console.Clear(); - await InvokeAsync(StateHasChanged); - } - - async Task SetRunAgain(bool state) - { - _runAgainEnabled = state; - await InvokeAsync(StateHasChanged); - } - } -} diff --git a/web/Pages/_Host.cshtml b/web/Pages/_Host.cshtml deleted file mode 100644 index 8c35283..0000000 --- a/web/Pages/_Host.cshtml +++ /dev/null @@ -1,33 +0,0 @@ -@page "/" -@using Microsoft.AspNetCore.Components.Web -@namespace Cosmos.Samples.NoSQL.Quickstart.Web.Pages -@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers - - - - - - - - Azure Cosmos DB for NoSQL | .NET Quickstart - - - - - - - - - - - - - diff --git a/web/Program.cs b/web/Program.cs deleted file mode 100644 index 1f471dd..0000000 --- a/web/Program.cs +++ /dev/null @@ -1,33 +0,0 @@ -using Azure.Identity; -using Microsoft.Azure.Cosmos; -using Microsoft.Samples.Cosmos.NoSQL.Quickstart.Services; -using Microsoft.Samples.Cosmos.NoSQL.Quickstart.Services.Interfaces; -using Microsoft.Samples.Cosmos.NoSQL.Quickstart.Web.Components; - -var builder = WebApplication.CreateBuilder(args); - -builder.Services.AddRazorComponents().AddInteractiveServerComponents(); - -builder.Services.AddSingleton((_) => -{ - CosmosClient client = new( - connectionString: "" - ); - return client; -}); - -builder.Services.AddTransient(); - -var app = builder.Build(); - -app.UseDeveloperExceptionPage(); - -app.UseHttpsRedirection(); - -app.UseAntiforgery(); - -app.MapStaticAssets(); - -app.MapRazorComponents().AddInteractiveServerRenderMode(); - -app.Run(); diff --git a/web/Properties/launchSettings.json b/web/Properties/launchSettings.json deleted file mode 100644 index 6511432..0000000 --- a/web/Properties/launchSettings.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/launchsettings.json", - "profiles": { - "http": { - "commandName": "Project", - "dotnetRunMessages": true, - "launchBrowser": true, - "applicationUrl": "http://localhost:5220", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "https": { - "commandName": "Project", - "dotnetRunMessages": true, - "launchBrowser": true, - "applicationUrl": "https://localhost:7228;http://localhost:5220", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - } - } - } diff --git a/web/Services/DemoService.cs b/web/Services/DemoService.cs deleted file mode 100644 index 211616f..0000000 --- a/web/Services/DemoService.cs +++ /dev/null @@ -1,109 +0,0 @@ -using Cosmos.Samples.NoSQL.Quickstart.Web.Models; -using Microsoft.Azure.Cosmos; - -internal interface IDemoService -{ - Task RunAsync(Func writeOutputAync); - - string GetEndpoint(); -} - -internal sealed class DemoService(CosmosClient client) : IDemoService -{ - public string GetEndpoint() => $"{client.Endpoint}"; - - public async Task RunAsync(Func writeOutputAync) - { - Database database = client.GetDatabase("cosmicworks"); - - database = await database.ReadAsync(); - await writeOutputAync($"Get database:\t{database.Id}"); - - Container container = database.GetContainer("products"); - - container = await container.ReadContainerAsync(); - await writeOutputAync($"Get container:\t{container.Id}"); - - { - Product item = new( - id: "68719518391", - category: "gear-surf-surfboards", - name: "Yamba Surfboard", - quantity: 12, - price: 850.00m, - clearance: false - ); - - ItemResponse response = await container.UpsertItemAsync( - item: item, - partitionKey: new PartitionKey("gear-surf-surfboards") - ); - - await writeOutputAync($"Upserted item:\t{response.Resource}"); - await writeOutputAync($"Status code:\t{response.StatusCode}"); - await writeOutputAync($"Request charge:\t{response.RequestCharge:0.00}"); - } - - { - Product item = new( - id: "68719518371", - category: "gear-surf-surfboards", - name: "Kiama Classic Surfboard", - quantity: 25, - price: 790.00m, - clearance: false - ); - - ItemResponse response = await container.UpsertItemAsync( - item: item, - partitionKey: new PartitionKey("gear-surf-surfboards") - ); - await writeOutputAync($"Upserted item:\t{response.Resource}"); - await writeOutputAync($"Status code:\t{response.StatusCode}"); - await writeOutputAync($"Request charge:\t{response.RequestCharge:0.00}"); - } - - { - ItemResponse response = await container.ReadItemAsync( - id: "68719518391", - partitionKey: new PartitionKey("gear-surf-surfboards") - ); - - await writeOutputAync($"Read item id:\t{response.Resource.id}"); - await writeOutputAync($"Read item:\t{response.Resource}"); - await writeOutputAync($"Status code:\t{response.StatusCode}"); - await writeOutputAync($"Request charge:\t{response.RequestCharge:0.00}"); - } - - { - var query = new QueryDefinition( - query: "SELECT * FROM products p WHERE p.category = @category" - ) - .WithParameter("@category", "gear-surf-surfboards"); - - using FeedIterator feed = container.GetItemQueryIterator( - queryDefinition: query - ); - - await writeOutputAync($"Ran query:\t{query.QueryText}"); - - List items = new(); - double requestCharge = 0d; - while (feed.HasMoreResults) - { - FeedResponse response = await feed.ReadNextAsync(); - foreach (Product item in response) - { - items.Add(item); - } - requestCharge += response.RequestCharge; - } - - foreach (var item in items) - { - await writeOutputAync($"Found item:\t{item.name}\t[{item.id}]"); - } - await writeOutputAync($"Request charge:\t{requestCharge:0.00}"); - } - } -} diff --git a/web/_Imports.razor b/web/_Imports.razor deleted file mode 100644 index de88dc0..0000000 --- a/web/_Imports.razor +++ /dev/null @@ -1,5 +0,0 @@ -@using Microsoft.AspNetCore.Components.Routing -@using Microsoft.AspNetCore.Components.Web -@using Microsoft.JSInterop -@using Cosmos.Samples.NoSQL.Quickstart.Web -@using Cosmos.Samples.NoSQL.Quickstart.Web.Models diff --git a/web/appsettings.json b/web/appsettings.json deleted file mode 100644 index c5f5d9e..0000000 --- a/web/appsettings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "DetailedErrors": true, - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft.AspNetCore": "Warning" - } - }, - "AllowedHosts": "*" -} diff --git a/web/wwwroot/favicon.ico b/web/wwwroot/favicon.ico deleted file mode 100644 index 8e96706c6b399fabd38edd568a2b8c1ac16560cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15406 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 NyZ+w_{7+ed{{#z2X4L=y