From 713e0579c1b1b265e4bd388eee701052b346691d Mon Sep 17 00:00:00 2001 From: Exception <123850538+DiscoKnax6808@users.noreply.github.com> Date: Sat, 9 May 2026 16:46:38 -0400 Subject: [PATCH 1/2] Switch to ASP.NET --- .gitignore | 5 - .../17.14.1577.30250/SemanticSymbols.db | Bin 0 -> 53248 bytes ...07053f0e-35d3-4fc2-9c88-16b33271817c.vsidx | Bin 0 -> 107 bytes ...5ce9a5e0-1801-4d20-be1d-06537e724a48.vsidx | Bin 0 -> 9604 bytes .vs/OpenRec2/v17/.futdcache.v2 | Bin 0 -> 226 bytes .vs/OpenRec2/v17/.suo | Bin 0 -> 18432 bytes .vs/OpenRec2/v17/DocumentLayout.json | 23 ++++ .../openrec2.metadata.v9.bin | Bin 0 -> 1310 bytes .../openrec2.projects.v9.bin | Bin 0 -> 67384 bytes .vs/ProjectEvaluation/openrec2.strings.v9.bin | Bin 0 -> 160010 bytes API/AmplitudeApi.cs | 32 ----- API/CharadesWordsApi.cs | 65 --------- API/ConfigV2Api.cs | 127 ------------------ API/DefaultApi.cs | 21 --- API/IApi.cs | 11 -- API/TestApi.cs | 28 ---- API/VersionCheckApi.cs | 35 ----- Controllers/WeatherForecastController.cs | 33 +++++ DatabaseManager.cs | 35 ----- OpenRec-2.csproj | 17 --- OpenRec-2.http | 6 - OpenRec-2.sln | 16 --- OpenRec2.csproj | 9 ++ OpenRec2.csproj.user | 6 + OpenRec2.http | 6 + OpenRec2.sln | 25 ++++ Program.cs | 103 ++------------ Properties/launchSettings.json | 28 +++- README.md | 9 -- Server.cs | 56 -------- WeatherForecast.cs | 13 ++ ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 4 + obj/Debug/net8.0/OpenRec2.AssemblyInfo.cs | 23 ++++ .../net8.0/OpenRec2.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 21 +++ obj/Debug/net8.0/OpenRec2.GlobalUsings.g.cs | 17 +++ obj/Debug/net8.0/OpenRec2.assets.cache | Bin 0 -> 228 bytes obj/Debug/net8.0/rpswa.dswa.cache.json | 1 + obj/Debug/net8.0/staticwebassets.removed.txt | 0 obj/OpenRec2.csproj.nuget.dgspec.json | 76 +++++++++++ obj/OpenRec2.csproj.nuget.g.props | 16 +++ obj/OpenRec2.csproj.nuget.g.targets | 2 + obj/project.assets.json | 82 +++++++++++ obj/project.nuget.cache | 8 ++ 44 files changed, 403 insertions(+), 557 deletions(-) delete mode 100644 .gitignore create mode 100644 .vs/OpenRec2/CopilotIndices/17.14.1577.30250/SemanticSymbols.db create mode 100644 .vs/OpenRec2/FileContentIndex/07053f0e-35d3-4fc2-9c88-16b33271817c.vsidx create mode 100644 .vs/OpenRec2/FileContentIndex/5ce9a5e0-1801-4d20-be1d-06537e724a48.vsidx create mode 100644 .vs/OpenRec2/v17/.futdcache.v2 create mode 100644 .vs/OpenRec2/v17/.suo create mode 100644 .vs/OpenRec2/v17/DocumentLayout.json create mode 100644 .vs/ProjectEvaluation/openrec2.metadata.v9.bin create mode 100644 .vs/ProjectEvaluation/openrec2.projects.v9.bin create mode 100644 .vs/ProjectEvaluation/openrec2.strings.v9.bin delete mode 100644 API/AmplitudeApi.cs delete mode 100644 API/CharadesWordsApi.cs delete mode 100644 API/ConfigV2Api.cs delete mode 100644 API/DefaultApi.cs delete mode 100644 API/IApi.cs delete mode 100644 API/TestApi.cs delete mode 100644 API/VersionCheckApi.cs create mode 100644 Controllers/WeatherForecastController.cs delete mode 100644 DatabaseManager.cs delete mode 100644 OpenRec-2.csproj delete mode 100644 OpenRec-2.http delete mode 100644 OpenRec-2.sln create mode 100644 OpenRec2.csproj create mode 100644 OpenRec2.csproj.user create mode 100644 OpenRec2.http create mode 100644 OpenRec2.sln delete mode 100644 README.md delete mode 100644 Server.cs create mode 100644 WeatherForecast.cs create mode 100644 obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs create mode 100644 obj/Debug/net8.0/OpenRec2.AssemblyInfo.cs create mode 100644 obj/Debug/net8.0/OpenRec2.AssemblyInfoInputs.cache create mode 100644 obj/Debug/net8.0/OpenRec2.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 obj/Debug/net8.0/OpenRec2.GlobalUsings.g.cs create mode 100644 obj/Debug/net8.0/OpenRec2.assets.cache create mode 100644 obj/Debug/net8.0/rpswa.dswa.cache.json create mode 100644 obj/Debug/net8.0/staticwebassets.removed.txt create mode 100644 obj/OpenRec2.csproj.nuget.dgspec.json create mode 100644 obj/OpenRec2.csproj.nuget.g.props create mode 100644 obj/OpenRec2.csproj.nuget.g.targets create mode 100644 obj/project.assets.json create mode 100644 obj/project.nuget.cache diff --git a/.gitignore b/.gitignore deleted file mode 100644 index add57be..0000000 --- a/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -bin/ -obj/ -/packages/ -riderModule.iml -/_ReSharper.Caches/ \ No newline at end of file diff --git a/.vs/OpenRec2/CopilotIndices/17.14.1577.30250/SemanticSymbols.db b/.vs/OpenRec2/CopilotIndices/17.14.1577.30250/SemanticSymbols.db new file mode 100644 index 0000000000000000000000000000000000000000..e46accf223b8670d7d21e30c35b960a348303786 GIT binary patch literal 53248 zcmeHQYj7Lab>4dy*abiW3y>f|@F8zx%Oov|mgv$-Ez34VLKI?(wE3`POD?+tmn3Yw zv{*=%n>dE;q_vyL#FO;#qxsS4BW-6oef>z%jK}$rsir^L8Mi;uOx<+)$Yat@rfKa? zo0&}dox8gv2$7QLv_I_L1-bX`-gD16_q*qwd-mc2SbBV}=-TFb)hS!9d7qM0I9DDq zO+`^+_>bd1I4B4NJNH#Tf%+1XgSR=!j%qIac3d>( z#&66_ZY~G--a})2AzQ5*GxuoT&ejdD2^ELO%xY;(w3E_3+Q~Zg z%!w1MnH4tBE^)O`t*jUQZrq01zug&hrm&3RJt_~6JZnC-m_IwU_@w!0?#VIp%BXoR zzkFt4W!YR@IG3MkhCB4k$&;)(w7U*#)k3}ad;s|t8ms>Oj$3HqlMRm)*I+x#IWoH) z`qZB{Pt7fy8f|vR^vvWWYvy;?1D1Y66LBwg3;7@!9;w?KWS6e(l*i24Mx{E|szYn> zXd5~okLsD@$M*)ua;+P*TEorgEz}~Ky)n5|surI0V0n2sqGygAiF{Js6_$44zSt-7 zi_0rhbH3NO!8V4?m8Jarthw&iCr3Q<9d5JG;W6(%OwhF}u6fcNhDjeeVop1@<=S=A zGW{a>uDU6dGflT@)~zeHNzJ=t)ort0vkLYD=BDe`>JQv|@71eU$2}i5UUfF^CHdo< zZn<=){Tw={VwK3YN#3eeSqt(cU{wgHdpfz*XYC4X5=tE;2jN)dgQVK2MzQ1`DOR9{ zN8p(5CPG51RH|OBo2QqTCWVHLTCM81X1VIv=7wFd9jj#48<*4xYxecwi z+*HdUqp!N9E^da_7zAJ*kJubNT%@Y>wQ}OQX$@ zhG7G-vu$E$s)a@wNaoi(iTYj=w+Y*YwUmsR!#Q+O#a(hO$Au;MmveSy!`&Pn{lpz% zJ(JC{*IGT9Cs^BUD4;FA-R0MYcXJHp)XMTgejatt=H{1uV;pYLD5w+^oo;}KDPA@Fx^0V_afsJgNz^J*HJDpq1%}*n$2yTz$*G6f~`13wGZ+dDb zhv8WXVVn%HW+oUXL50f~S_Kq4R!kO)Ww zBmxoviGW1lgMq+mUs!1#(`FvHxPmtU>KCWh%EijX;0daJakl85X8W0|ag=eq5p@j{)w{rB(89ym*v=0?pD_f09VRI?y@t~JyzW@3x zMp(Yd_QAH*bOJ_KO0|#0636iT{|zPn4dd>_vF+CfV+hMuNCYGT5&?;TL_i`S5s(N- z1SA3yf&T{xoC`INv6fYUT_4uBpINsTC~m%X(Py~IyZhjKXZaq~eds;Z^_D==XG6`QeKh*!&+y%_zEACgTl=GX7wXTw$NKH7Mk(6V&y8;@ z#=qkv4~c+8Kq4R!kO)WwBmxoviGV~vA|Mfv2uK9p#|Xr@nq}SxN)B`~6>Ay(2b}uk z`~UCbZk4J_1SA3y0f~S_Kq4R!kO)WwBmxovLO{O%?|m*~0^gD1*5v#DyMJm#y#KGo zKdTsT7*8dBocP`Nzr;V=(P)3kAte!z2uK7Z0uljcw>SfU_9Ild zXNPiI6#~&vj_Z6N_C$}Nu*=<|YdPmE(-%;Tx9rj%Zv$bwXnfXo@y9=>^50+^{Au?4 zQCyCUHczBe3ch0VVc%#tYwG)Dy{FJU3)tUe`Q3-vTgr>kJ!wYrb5;7<n0pV}|r+%6?T}EeRQZ!rsu?s}F{r>;l)1-9a4j50lw1S8rhAqyAeN8DCM1 zca85E-!%T(xNdyq#utd>ArX)WNCYGT5&?;TL_i`S5s(N-1SA3y0g1p~2&^)e!E)UJ zlrK~E3nzz=%_Do|&>(UTBX{QD0CJO9=)oFRKeG2A%MN6bGdb(U+EX90J;-7iDT8bb zSw7I)5oTDi=%WRm9zRdZEa@2TGuDUYjc)%otw(g>HtzRf*&yX-@%*3kp8sD}j6X15 zHNJx<|35cgzwrg3@{kBf1SA3y0f~S_Kq4R!kO)WwBmxoviNFU6f#?0bHuTJ1Y1!g( znx5RBZn-f{5AbuefrXymr`z7Irw93agSX!4S^gkxAfYGutiLma9_8Z!MX#=QGi=l7 z8B!l+ZLGGpcBDJh0p{;u=#Hy*u&rGOT{o?l>Qg6KAgXm2NirV#6-8%XS0dN7|BN1w zd?&J^_pq<;{tEv98q4GTfWRj{{M8q6u#obai!XR=gpQ6Es!1MWDt^`@$)ik#6?J3z zNF}4>D(6nIi))1|IC+FqbAeC2~ zq$h`mppiAmHI=QW1U=Pa^(60R>Uz~l@uL!q!4AGZLNuFf9SLMBEnVaODjCZNLi#R1Y zfsGbJRXfFFDvxQ@JNV2}QeXwdz-Lgjr3%HEieEO#h;|NQml(IviyGq{D(?U*v=Dht zf9us0kElGNQU4U}E+VdOWQZN~F&OVrc@IQ zgl5!Av=wT?d=iYORh~u_Xa?x9H?d3D4v>NJS8a4DU88BC2o622cWRM%Jd%iaihLrX z>3RZ}y2!*MS{z40!(}$E>zy5XhaN|v9{Fj$D$KWe3d8O3&{1q(6qbj*jKWfcaiF98 zPQeC8U_~IgK0Jf4Mb-6N66ouYqEJmI zC?6kG;#A~AqTxm18JO=GnC}^2z3>c95q71r zYli0-c&lUR6pjHZZ8?TG^!0rMQt}PF)i=OCTYLk65Xit>wtWNRdQ>WeI8VNZ)B-G;|D@d$7H8Nl zRbuP?IK!DyLUw=zdwoex*`hOSTX2WR$)c=ULqh(72;nG*yW>%i*$V-70hCzg2lFA& zu2+e+-Y6eHLW4mN!KP4#F(J5P5R)(r4RJ}9#zMNLg>@WSIHE-;r@`(pcB8SdrblrR ziTtH9_<(>gbWjPkLZ~Rue#(ch`4lLg0(_Wcpn+YO=!K|?(~ArIR8s~CxmqM>Bi+Og zIAuUl6BlSBkvmnQBlm|3yFj<#(4ZqJL?^s3M3kg$60~sJKMj%f!#@oP zmuL+M{xy4u7{fme`Tl80xbO8L-#-nJWj0Vs{?q|=i+{q_%tDvZ#1A!V7e<5*><%Oh zTHw~1Wc(VEsTUvoL%(q^pzyxXQNWxfA+R=o!pf3tvL9+3nGSgbxSA~2ginEl@P9ue zByyIE2+YgWnRt2A8>N)hbwvpcV5(9T z-}-~t&kLRWpb1L)(T^9#2TMaXXg60NRd`(AOg35CcgB6<&lu zoeo97>~p{tL1_!L2shzTDZ~`eBA!HxD=8mZ#Eu*@Cn80lLy@3>7SUf2+X-k>9<(VR z+LRA%%7ZrLL5nC$*nDa$N+M`e+rf~479o%y_>kjC`OqS)*%Mm+Rj*B-9K*;gc+)BT z72<4o3JS9kONhA?eyi@nK#{tel%l~C<1{T`suZ{JD}Gc5f3Pa=R$+o}Sl$JuKu|mD zbcJA;Xfb`zl?a1@AagM>(nNWjwL8xuTlvGqI9nM97Oo(6*S5u5;pB!ZVFBWy~jbg zVxqvbL=a8O$g#$7b}YKWOiOjp50n6N zN`NQHDO+@|*&cV`iXf8Qu&8YlArK?(jz@uM+!J6IK&Ex~{X4Ib`;>=7Kq4R!kO)Ww zBmxoviGV~vA|Mfv2uK7Z0zWYVI>Wn_A-u_y!Fmmlf=1;*fHZB1%L982uK7Z z0ulju78+%{;^x=x zH}5x(naA$tq3pxm?PM#J%MGhkTrb*d^H$lu-<&wcLX(pjk8ZkJu9a*T&-kmwwdZ!b IH$klb2i{&?_5c6? literal 0 HcmV?d00001 diff --git a/.vs/OpenRec2/FileContentIndex/07053f0e-35d3-4fc2-9c88-16b33271817c.vsidx b/.vs/OpenRec2/FileContentIndex/07053f0e-35d3-4fc2-9c88-16b33271817c.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..70aef67a00f5a48bfb0d87044cf8f151e2685b5d GIT binary patch literal 107 wcmZ>EaTnxZU~p%E02V0C38Z0cW+XOHDO{Wlsuo0n)bd05(ok9*N*hCI0FV0t;Q#;t literal 0 HcmV?d00001 diff --git a/.vs/OpenRec2/FileContentIndex/5ce9a5e0-1801-4d20-be1d-06537e724a48.vsidx b/.vs/OpenRec2/FileContentIndex/5ce9a5e0-1801-4d20-be1d-06537e724a48.vsidx new file mode 100644 index 0000000000000000000000000000000000000000..90d091638b3c81c0e03655926117a77644d77cea GIT binary patch literal 9604 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 Ja><~`{{n`Oh5`Tp literal 0 HcmV?d00001 diff --git a/.vs/OpenRec2/v17/.futdcache.v2 b/.vs/OpenRec2/v17/.futdcache.v2 new file mode 100644 index 0000000000000000000000000000000000000000..75afbffa42f55c37061c6259475201b12551fb38 GIT binary patch literal 226 zcmZQ#U|`U8v5IjF4)Ajgi3upm&q_@$DUR_kNX-jMO*Vov^pcAUfRao=^}Npcd1;yH zrA3J)nfZCFE~!bS=^Oz$i6v?IMY(K_d6muqp+IE}#u7}kxYym|0I@;95@=6oacWU< qjAKe}W?qa-esXDUY97!w_skNH(j=H&x@6nBLgAe_s|?Q_WLp98)Roo%PV9BsG`4rQ3E1)Cb?iV5Wjs4xZ?fK5 z&5r++SVH0fc;JET9LINbjYlMVUfz*WWyLaw-cD-KD zdfkMjzN0g9=gz(N+;e}~EqjoD&a=P%{natYlxP|)pup z`C}?;1{iH|Ra^x2dBjp;wP_voACHO$s`%OM_1_!47m%pidKq|&z-x${umHL}mN3y9 zl}5#D(n8{at^-JUFCZv>ymjV!oBZ- zd%6C_OOd_x@6B~QWVqk!U(dKke4raG^sj&N8RmZi&sNsI#=$jCUcmML5a68vrg8o2 zJbTZ3+XL+XW^NV}K2|y3vLx7Wj z4+BmCJ_7hC;AucFAPk5AJ_d*aVt_cH56}-d4LAcB01N{Bv^`Vzeje|`fDtb}={?il z(_hvfzl84-fDGW1fJs0WFa@{_mCYeDSwx zR?LV3B%mB5pcOHW)|3Eww8B9zkBTKoKrX&5isz-Awj|2p5^^jehmwuXLH^*F>HQti zZ9^Awa4sxA4+B5(lBS^e zUqs%QSpXr6kvBc5a~ZTz3T5ACCACYEUK^tl5o1W9lsby%5>ix)(f>8PQ`Or1K9A3o z=@|4}+v>Tu{x|c-|EKkzx7>*Bm}5?OfBjTxSWHCapz#*+Mp}l(R}^!Kzftr)|fy)c0!I#gbWE%2`0@SVhaI zSfL?RPZqBx(G-fV<%EVp!^I+7=Ot$h^O}*j#x2*#8Lly9%puF9W#kqu;#5n(lX=KNW`p^@$ts>Xf#@@?@odD zD4wtNaRjE!#K|&s!S7S~h#c75d-+*88f67Hc>Hh@sYP;G9xVbH^$zFEw+`zsK zV(;@4pr7&*b?%_}KaRYVtr(Kn&&RO;kXA$Xe;%?;8U0=YP$Fp_X#e2+BRxU!bDr+= zs?7pR5kPAT@r|Js+}%vE;O&a@Xc=>8xx*{yJ^Dfae#EK21jYXX@_O5^v^Np61DvEk z?P05U*spqR?rYoH);>k_rkUf`!p z&HfBZ|2Xox52|{$(?64-co|Z5zskPp4*U`?aWibn&>+E2|91E%(BI8?z$wsAQm9J? z#s694)${KHdOC-T{*n+B8yUVYyY-#R}r%D6di}^+o`^_rbEvng)=AE7ZgeLL3&} zg}B+FEnh^hkrGEz@rw?nqJoj+$aT&P;{0{d;tHN-NA-Pu%U5yQ(%;b(7#M>^Nx^SA zWd7HWfeG$Kj-=+45WnhBItt*jgP2cT$-nDR8k8mR8b*W?tl~pV5G0yvhEJUWGE(UxCCtLH(*#=fWDh3ITL6m^_k zok_=Li58>;3SBRvxq5= zTrf?G^`@rKF@_&5M4?6buWzjOzp={W5rnK5oIi5&&duXvFMm7t z_loi<|O#6T<_?ms;+7fwX`2g13zxq+Bz#LZkTzD|3E zcXY!#WS7dweY#z_MQhT|Lk}#DwI`qzL4BSh9E0A?d$XWBvss>I-wwX z&e)7RTUSjKCJNA}v4E=Tv`_E?16?>TUWhHXaeh>)skl z&+T&GMSM2<8yNW#tRLN&2N|5BL?B;{$Z_TQ`3PoV&PV_G1}&+#e{a~I*C4IUVQm&s zYU`lw@AT6QYJc{hf7at4$G);CCHA!%-@wMFpY#cB{rrb3RU2*V@vHMtYChB&Ec9;~ z*Ersk&5)`70Q-N-=TAJV)^bl87*bfh{kV@}C5N#x$n(;O#c(C@{$iDLsM*W&2_4{n z&@z6?EZj#J_WZxz-u_>E=f7$lv~zFu{IMNejmoxzzn=f?@qg;VZy)|Yfj#~z_BWoj z)%&G0|BRwI|B+xAg?vH%vx1ZY_O+Ewtx);4y3_yiFg{YY+YR|+ zrYb$@KODBgtkS!8;D11gkUAqn{rYROL^~d1zVyuZG?Z848v|jYxXiqk3x6JOAVI3)En!fzE*k<{qF?& zEolDJs_kGmsJQ*wFRzExpBP!ob@9gm{=2vyqJKY}|A(~iKhv`IlKc;&Y*z}d?X2M^ zhSCy#0f4Y@A=h1<^ejpeofbu0Y$0?O(AhxQZt{nLYl{GIxcja|-y{+$F* zN~d%^1_CVm>H&J*o-WMMC4MsDwR?$)kK8cW@e4#y6!3| z%t)r&EVv&wkH2=ec~J^Bm5Y@)fN2)2zy3hdov; z6-+Gy%LS9AmJ`-vsI>U=Ca?eetKVIN9(@akUdW;o5gPP2i|?~m5+ zS~gNrahx%;;9zxpnIgN*)yq7Z@GID8NFyc+eC8J*??GZd4PU+bo3AC;I4hYTH@9lz z`;Zd9S-qX5FGGXP{obLpo#vUz^Z_}l7IUiu4WJR!3+5sjmz-JOIQ+XWROSr1?y%GM zo3s4GPf)Y>$UV+!398`igparyo8=wuegSVg%To?b@_g{)6UIqXF literal 0 HcmV?d00001 diff --git a/.vs/ProjectEvaluation/openrec2.projects.v9.bin b/.vs/ProjectEvaluation/openrec2.projects.v9.bin new file mode 100644 index 0000000000000000000000000000000000000000..2739d11fa8d6fc42639c785d11d8fdc32349af82 GIT binary patch literal 67384 zcmcG1d7w>I`1U<}I@j69TtcRjA(`iS%-BQ&sU#Im8l;pdLjw|#%w&pENh%d36it$3 zsDzY+CMBip$MHRD4{NQ{IoId={XT!(eb@6m@B6NIt+mhE`|Pv#US5tDE0dFxQ|{sF zv)_AhK=U)#yBGd+uyMYT+e&P`esAt8KmELY+atgKU4F!yv6yFgre~cvk>lA$&W`%e zKX=9MT(VBe%Q=w~^Wuuk@p4n1eS%^>x+G4VhEM$yc+0X9W$G0pTl0}TsJ?@RjqA9PCusp-KX^#=bJTtT`rpG)htf;t7 zmPmQUgnLON$0^i)v1nS3cXrAvF33_kSvn-k=&h+wrO6RA%iXx>dI(b1zR@KRBAz57~YlLJ?ovam-wRN&iNY>R;su!kI zUnd)cWJ8^76q1dNoQLM;Ue>@*zDYS`4H2A%Ac@_Gsv`H8+!sfKq`_=&z*kvU%Ply_rV6Z+`tEh+D2 zp~}zut-8v9H;c4y)5+UY-mQYXLnr&DyxRnMr%v7#l6ULmJt5goC+`i({yKSI%Iha$ z-mjAbLdyqq@!8VsC%EUWm?$;4qN z6Nei)pReh<*vlGr#K}BI8aansmn&A!|5W`q+lP&u7QdN=YG)N6F>+?+Y)EDoA3d4) z*vZ6ECrfDb$;2@y6CXEnYV{~r=kQKBDjeLg`Zzuj4(>Re93PTT>g0rwoM@cb|9EuN zcq-g8CmH>hkB!KuQ{F_e7fseJr-bBG<3N1Oj_^P>E#*xXmeY-Pzl@K_87Xh7AZHpQ zw@Y$X%9}38*+%uXC3lAI&xG!Cj6Me>IXC6a7MAmjBX`I==ZBUHj0%UwM0q}&^5zN4 zg+^6t@7{w;`~hE-@)ij4IV1j$Y|--}x!8zL`7+A$g^+yFXfj}Y6!WE!Tw;7P^4g=v zy7)c+a>{#A#9V6hyI5Mj5?U@Z7T(h#vV1k=Eftop8IyYbSumW+UJoso8*N%UQAKZr z6YxmGRJDC))qV z{avGH=bR29xjN;o5|(R>e*5IfMpV&S!|FZhpZ~bOXVky$>4x>x>W>~H_ z`p=yjS$>f6)(OiGjYD(CMQ#5m9LB-(v*L{-mJ`|Q4j7Ns|*%0m_pN5tjjcN1b zXnq#%iktM^`}1&5-mH^fq`XZc<`$jY8j{;|a(hUAsgqx&yluk$Yn|K?T7ILGJ414p zPVNrLZ}pRnJt=ROi20pPejk#1b@GRl_nolZr;|U1miu+`Ku8|c$)7^!k5@C0{R%uP^xqX?#P;H%j9hlMni*NgCgjd?UYI&C>Yhl5dg5x0HOVG`_Xu+obUq zO1^E(*fa1mGdS3wUBGj=qqBOn*Byi5=5Th zLqx-37|wqqVi?JP56AEb|2-PRWBfNNhSB^tCWgoPZ)^-t@ZUHQ+`#x4p5(s?F)zo! z#2B6;m=wd)vD_0eOpakn3{zvVSSls(v>2xAcm}^$#3OO04rb|KHh~+NJtG0;#A28m z!#rMIiPZU2lMz^;gJ*THPzQ@7z;lfFd<=_Y+!_2RKJ!8hFY;V>8uq?91t0Z2F;q{1MCoGrl1aHLfrl!3W!-@zRF|3T??Fix>hFTTFyAeU} z)eLn;l-8OsF4p>e|6V$LKOL@1hwIbf2kG#`bofy^{5Tzck`6bd!%x%U#&q}@VX>$^ zn_~Dprr>6=V=MSYXo@X-2)!CyM~ThH%k4F6~e{i_=u(+xcdz%wo!k0BNL zftL)xnIUF)#YGnyMlMY5*_Hv@@JjmW!66YhkQ)&kfP4lL8g$cP(%?K2deb<+fdZOw zK?8*}SlB?32%;#fI>W%35kc=_;wn&(3DH>wifdvC10^+hwgyp(u}T{#6E>}^A*Q%; z2F@|OQc=I3YoNRa&og3vKlpn_1tZwoQPKCTWT3L)m5V&jH&7*lxPVnvHBim)Dn~l6 zYkE~8P{Tk?!>j8<)S_{119c3ZiUv$wGW879S4;yk4GlChyoON>UaIt32lh>WkFuY3xy(9Hb1}-wZ zc9G8Oj^5=FxI_oM_^6c2*pt$%vw<##f|u*s6$Y-~5MRElROJUI!8$Nk=u>vmi;UcOL3mWBYY_z{;Gcr_T5ka#UjK7_9uSRU%4SKeS&ZyI<@QQY}f$o66-^|uYY6Y8tz z@-C^>2G)esT2k+kdf&i0japCY0|Or_ih)0ha{1WL^%D-YXcRX1@Ke268+GuR1Rl>* zHyQZc@NN~3n~hwLXR2Qq*kVu$_lvDGpBw>R7E)ll4tQ-SRPYtE{o23|BO<;bvD3h= zh+y)&4ScJ?JqEth;P(dhYVZg8bD|6r+Q)YDj5pY8f7HQ#9UL%lP>b=CfuA+_3wukp ziWhvMRDWYthYb8~pjA+zH#LSo3>?;c|1@yK@McCS@Y0SqJpz9-1qqI_k^tZz#{Jj8 zF@y0$>OSG=1ZZ*GKq|8EX2)>CK#r;MjF~yA<%SMS9atu8QyDtC7B|Z&CD%m0zz_*D z7p@sY(nS7{DiBfyO%w{L!lpR17co&ZijOnsbf$@7CaQ%8*|W$LH&H?|bSY`#>@Y?t zKSpUY<>!GiJ}hhU>UY$K-yn>bH{6--prU?mfkHF$nHtYVf@fi5sn zRWq$-qPhla$c%XMh?*v9nclo8!`kdpc}iJF2X%E&PY3l)G%&q|!RR++A2l-3*bKv< z35ljAnn|KLi54bWN}?5s)+XAR-X_Mtg&du>q}rKiZ+iT`7JME$uu1{Y(eKwzdIlFs zfQ#vQiHS>t=(xVhOmUzLi6>}rt%>Voj3-I-Fmb&kdNPL_O!SHf9-VJAaZ?0wGxgpk`a}fV zaEpmsBgm9*GjY2H?=aCfg1D33cbT|b68DhkXX0K-^e1tjiTfqN(*O)G@jyiIoB|J; z7#LyJI7oHUV7d=6F;r6@;$9_poMFIqc#v^O%WITHMhl z#)KA+`vX5##^$$0UZ^m|*@dVXfj-W}_|V}=-(f;nB?36n#8YYdBoj|-6;77%nfnwS zOqID)nPy^owZIT=$j_qiZraC z@k$eK2cJ&P@9&UUW#Zk4p!aH%=foUO`j^JXOz`{k zmZ%vpaa=P_$^K%X6FSJT5VO?K8x~9rT9$U?v8|}34B}YP4uiNAL#~B2&A4SOl(n>dx}210dyWJ+m$v0CoM-VzjHqub$fnb_B9*94RHpU$7OH3&Um%T9 zm1;E$)gyCy*RW7igS9Nw)?ghAbv0PeLVXQ3kj+CwMs8%GvEHI4s^X@Un^|bCIk< zQiHA1VQcBj9NSp9Ffv73hH7V_y(Bu2=xCu+8gY?@i_?fpEL@sKTxOwj8qvkVII2$R7odmx`~p&|Ml_LxXEATxU`7Pk4KfxZXm~h+so*V21@NK`$NL z$N>)&9${~?aC78E*jt12>myBhoV&%st&u5iV~w|4xFaHH+*cYC+^K`R^y=@{!96-moNeJ54bHJJH-eZ)^Z6DQLT;?w8f$0NZ!a!cUg>cGRSwE&LKe{7U^d3x^`YdpCyPE&O45tAhRVFb)2+aKxhG zPg;MG_}ju!%Ucr=|B(3C!ZFKR9}pf1SU4_;6p0fSa_rE8?Tpzu>bs+%1CwB~ABbj_ z4r~edizkonHsZE2&9!+^)7uz%=ChHoLkQRA*LWNGZFLc|fQ^C?L?P;hZ4{A2Q4(j^ zI5Q%cN--N}X|TAB5&=X>I~Qlup_Gl%c6fS&G9=2{C>Ifoa1QeiPJVDM)$%sZi&X#H zX9XJ-BZB6Yq&Y!ln|CEeZ989As)PU+*y0qXs*P$|km^*o(J#D&StA|ROoz2Jh}ulC zj*Yr@c)^~r>oJKhMX>sQRSjtF!-hU=6nQtc#YN*LHk#Vu*%p19Q5E0P{R^wjB|r;S z)6zyO&9t>t>DPvJ2H)=4%WY}g&PMyd7#;k2J4P0rXmJrOF1B$=6b_e?xXeapNpvA` zxs59%aV3eXY;=tXR@zO^;A&fZ@B2oyySrcEHMaPo7!kOZ{@2;)q4{4Q`lF}sa6^<~ zFCX5hN54r2H|wBxtA@mz+<00Go zBk~(YRf6FmzzDznBh%r->F|+s_-HzOEFF$YhojTsm~{AfIvkr0pGb$}(&6}Y_+&bq zkPauN!>2TeN$jhqZA`YkKcl{yLj7L?O!d2G8pmCO)6>-%HgCp|I%YE5EE}_JpW^qL zXGqMkG1vAy5ptd%az115*Vf>}w?GHa>R_P`7BP*$2hTC)^EMXS5ph5F#use7X!AE+ zKP<#`sh4alQH=OK-4CNW-THOp;!W=NZ;@MJ zV69&zyoXj9(a#7euNOeZ(|*g05X&HHa^hthc-S6 zKS&=ljZf&l!N#XNBnTI5B=;G)O*TH~fgnt6Gnp@JY_WqM54QR>Z)2zWza<24yNxex zob5;Xicv&Ye$CIE5pWzq{+?DCJ3)|eGq1kl zh>gFbj=!lMwegQ+=nykEaqt9IrKe+(t@boM5~h2QeqIfZ@boI zI72aKk}2lkEXnX#SlmGg9hY=)wvJ0NCmomhk6u>CD90MkVOmb~eIMn?oadl|gF0be z70Fa`P+8fWPo|243mnu7ZK{%~=AgP_YLKbvpq7IMp-pWvbsW@Haq5w&PXom?B-6-2 zW5qNf)6_vT#WW|=!a++_S1U5D9kh{kaX2n?#EqCi&$gxB&Ov(>qXU_a4mv63A~F{{ zxP&Q(UYC-&%t2?>6J5w$?%)c^u%0WO9N7z3QSa)Yo678JGTj|qqnK;ST<4&NVy-9C z)4>gj=|$#72RF&~;AS$t9rTe5YrchC*teYjZgp^*REckQaEHX`OWQjg+@+Yi$=u_h zpJMJM)8D~;in*W600$2!=0P$89Sm}Cj_4%}=AJx++)#f{ZWQ+1Lu7_I816(93r3I` z>EL0>F#ku`bD;;(qYfu%4L{~!lx{uR!5AGs?qIBrpKvfv$KxG5DKRFn{)rBr;*J#N zIEl>D4kk+*<}fA72vZ$#0z6IP>1^i=ddze%OZS-V;2DWAhZb`k%##eqVZMU}5;Nwr zv{9{I7}elU&Wjv87uw=^KZC{8n*fkje((yW({IdN{b@)pHy{N^2p z5r-Lv6^9*%6GuFbVZwB@kwk7B`Qk{#;l`1SBYzwP;wTtLp*RZ1Q6!F{ao%>r174hW z;NZ+Sip6nO9L3|EEMINb^V*G z_r>g*Xd6enIPd60`#3rX>yBd6No+0>n~TNf60x~dY%UX<&SKLg&cjfgzdHJNvW`dBYg*Ig8`kILG-q5u=CLTrV~~#pVXF=_NM2Hq4DE z-6V`}7Ny=|(}%U*634Bge4E&85tg@$(j8*cS8VPSo4ds3Zn3#XZ2F1Ky<*c}Y%XCJ z+!x3FqC7xs9uOOTL(Rd1qBKx!2C=fiaSRdVp<=V!;T>Gux#Acu;0Uo#Q5q#S+XNgfN@K+4AW!igk7KMTKf#*D#W7x#pA?%3V)H1gn;6Ga zaV!=){Ukni&%=ekoh18XU8<7Ux|ko&!Gbua7CalrLV`uyxkeb? zCOjuTPB}b^vdk|zd}tKUiz-gk#$wvNz#Q)sUk&hLoR_z9@KW43f$ltrFJT2Nn0Ps! zb9@UuO18q%xXJ%`CC)g4!Lm4B712uKwK!g9NjFqbimrT5jD+8* zOXGMyXz98*)(0g%#PC5-`Y?`Pp`Xr7GLFv;tHnPNkjqzDLUwYurP8xVqmcXCO zz?*}>UdbGM5mm4yo;Yn4ut&DWu`Q}<`{}LfORcKa|LwNbC+)VcvUJ+@N<)5HD#$+M zr>m+gL$0b)L!PbM)R3!gQ$xN_4mr+@N<)5HD#$+Mr>m;;A@>ioswy?)*}6>)x#~7GaSWHQ?DQPy?EMRq)?ax6@KV_5nX#Rb?4) zRh1g>Y~7{?{4Y5!YQX=_9Pp!A2K*m6;QwYBaH{_=1FkAi1D>q{HQ=g(QyTEoQbG0s zKV4OQnRc%3PwA>EHQ?F0?JIe%eoT%__5t^TZ-S5meq6fpi>Me<@y#a{=eIXI{X5W! zIC8`{_mbkl^H@;&lo!W>63-7zmeQTod8cybnPuqw?a7_h8H{q~IZEivGsTnDtd51s znMb?OndcmNI9s9tYF<^&Jj#X6yzfgm%a-~s>XWHlI8TNyoCz~s)YvK)e$p~s_^YRr z>(`>bO7m)6ZqV@@jC?^U!5`tm#FUE~0_DOX2wjrdTvW#^7j}H;l0Tb^>Tc!2?mn4| z>SX1@P7YlPs9Fl2m19;}?eSSVE{Ft$5WRt?K4 ztA;7LC8`89UyzHctdBc2f7`4U)Z7x)1F=R{v1TCF$|}|l#5!5Ux`9|Pt5`n}8)Ow5 z24bVEV%U_%Qf!i&(UhiH#jq*OvWj6-nr9WmrnJZ^hD~XiRScWbDytYK)LM#dw5Eg! zU6@r26Kb1P3=?XXRSXkqpH+OzJ|Pa4Ezu!Y6p9xJuDciKZ$VWq!ytxo05XAZ1Pwn%papZh{L7G z^Wv}*nqx#Dj+ElV(z7`p3B*UG_?RY+3dGS;9HWVk2jW;MKB0-@0&%<)pVY(&fjCi$ zPif+$Kzv$?lQnTlAWoIyG)vG0ifh%-5W3E6~UCx** z&|Q}^<_cV^%NcV8dgyY-T!EgtoH19Rmo8__6}U;4Gv*53NU!x;#$18kx_8E0!FfXS z&X_GYQ)qI=e1SW4Ib+7aJ-VDRXQ00>XUrNHpvxKa1_tVK#>{~sx|}h0V3;mv%pROM zw039AADlZhIb#OFC|%B&L-4pRXUrlPr^^}h2qx%q#!P}qx|}hWV2Unh%qEzw%Ng?t zX6bUqjDk73oH3_hzAk6XDp;t?8S@IB)8&kr1uy7w#@uqkJGTX1_D^3}NXEr^3=6q_ zp(>W<;uUd-t%_y2c-22KsgBoj@w)F(6U+I)y(+$`if{SF+E|f`l_EfG-m2}p*Tp-z zSmmpJ@m*D1t%_?@ajh!8r;6|U#kdHzP8HXy;s>hup(=i)iXW@uC#twX6+iWhmtrGt z@aD@v#QUhQDHorM=3I)+x%eU|4Ub`q-!$KJYo_V8Q#ak7hv}D@QNPN=^y^I19eJ33 zlWDp$57S+lrn~bn{WjBdPadY0hUA`gb0tM>C`T zlZWZQnWo3`F!eG`k%#H=Ow&{zrdcMU6M2~C+Tnq?+* z@-U5OM$OH`G+(A^A`eqH(=?ffX_lEVe;%d&BOGJOw%*- zFwJr-D3*umS(#CbpSo#@JWNYwMm;+Z(^8qHrSmW?lWAHu57Tm)rsw2gdTyp^`BOJN zFAviSnNcgAx@o06OtVayl~3LD{8Klrl85O9na!%2hiSD;)9QJc*2pxinTKhuOw-zV znAXWOt$XUG_3|*yayYJ^hiQY%1RCaHn&sT3Q68pQqBcHt(l9x*Cl^GYe4;R?Aa02Yw?>8AqQdP_;f|=#H!9p274C`(cSnVLSU|sg zBKEza*k2XzQ^osLaeyj5po$Nw;y_g#q>6)8afm7oRmF#7(QoLmFu~Gc!-q!+kBAB* zMY`gpjs@|sDDvH(QSp&{viPVfJ|>Io=YkmJ2V!A#R5)9FvE`H11u;fYe5RmaIq|aL(CF8+MH^Q_;kcMs zb)Q&3 zz$ZRb#792yu_8Y4i4BVQ)F(D7;xnJvBLVf7pTyrjbyT%&{?^ry+M^_u7glJmH zpnSHFFXkh;e$SRla2{%i(t^B{PX+sAnSd-Ckbaof}Z)HR`;8s-RI76P(H_ zB~Y21H-`^A3av^u@`7w+)of(71fM{woOP1z-0*ookh7zV05`CUlBw+;Vs6M34gK|1zg3v zPIya1v8zb2TY?5xC(vDhYeI0XZ?p{8CD4PhSMpt9xIV$fJ@`Q0GCt792)@`e4{-}_ zNT3(nc0b>{gc}pMDIt7(`sRq{OFJ~WH|eK@HDA)B(S1m>&09p9HTo9PPYCPl`1)SP z<{PAVespUBw~1zy3Bm1tGdAIl1o|epl*T69DN+$E&&-Pc+yoW}EA|HeE(f0-qS&FLhBf5F(!e>eeWhQj7{)Sa^Vq_U*waYPjIK_v!n@(_nW}-lL
fU|9mMCh%GUuP3lPfj1I- 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 literal 0 HcmV?d00001 diff --git a/.vs/ProjectEvaluation/openrec2.strings.v9.bin b/.vs/ProjectEvaluation/openrec2.strings.v9.bin new file mode 100644 index 0000000000000000000000000000000000000000..b065b7dda420ac6cc14eb2550fe6c8447cb09210 GIT binary patch literal 160010 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 YIPxbJIa!^|W=AuQIG04Ujfunk9~T-xcmMzZ literal 0 HcmV?d00001 diff --git a/API/AmplitudeApi.cs b/API/AmplitudeApi.cs deleted file mode 100644 index 5270192..0000000 --- a/API/AmplitudeApi.cs +++ /dev/null @@ -1,32 +0,0 @@ -namespace OpenRec_2.API; - -using Microsoft.AspNetCore.Http; -using Newtonsoft.Json; - -public class AmplitudeApi : IApi -{ - public string Response(HttpContext context) - { - var response = new AmplitudeResponse - { - AmplitudeKey = "NoKeyProvided" - }; - - return JsonConvert.SerializeObject(response); - } - - public string GetUrl() - { - return "/api/config/v1/amplitude"; - } - - public string GetMethod() - { - return HttpMethods.Get; - } - - private class AmplitudeResponse - { - public string AmplitudeKey { get; set; } - } -} \ No newline at end of file diff --git a/API/CharadesWordsApi.cs b/API/CharadesWordsApi.cs deleted file mode 100644 index b2b082e..0000000 --- a/API/CharadesWordsApi.cs +++ /dev/null @@ -1,65 +0,0 @@ -namespace OpenRec_2.API; - -using System.Collections.Generic; -using Microsoft.AspNetCore.Http; -using Newtonsoft.Json; - -public class CharadesWordsApi : IApi -{ - public string Response(HttpContext context) - { - List value = new List - { - new Word { EN_US = "talking ben", Difficulty = 0 }, - new Word { EN_US = "lemon", Difficulty = 0 }, - new Word { EN_US = "grape", Difficulty = 0 }, - new Word { EN_US = "roblox", Difficulty = 0 }, - new Word { EN_US = "tree", Difficulty = 0 }, - new Word { EN_US = "cloud", Difficulty = 0 }, - new Word { EN_US = "iphone", Difficulty = 0 }, - new Word { EN_US = "your house", Difficulty = 0 }, - new Word { EN_US = "spaghetti", Difficulty = 0 }, - new Word { EN_US = "lean", Difficulty = 0 }, - new Word { EN_US = "bitcoin", Difficulty = 0 }, - new Word { EN_US = "nft", Difficulty = 0 }, - new Word { EN_US = "grass", Difficulty = 0 }, - new Word { EN_US = "recroom2016", Difficulty = 0 }, - new Word { EN_US = "joker", Difficulty = 0 }, - new Word { EN_US = "fortnite", Difficulty = 0 }, - new Word { EN_US = "woman", Difficulty = 0 }, - new Word { EN_US = "spiderman", Difficulty = 0 }, - new Word { EN_US = "vr", Difficulty = 0 }, - new Word { EN_US = "among us", Difficulty = 0 }, - new Word { EN_US = "coach", Difficulty = 0 }, - new Word { EN_US = "coach with a gun", Difficulty = 0 }, - new Word { EN_US = "funny fish", Difficulty = 0 }, - new Word { EN_US = "skinwalker", Difficulty = 0 }, - new Word { EN_US = "christmas tree", Difficulty = 0 }, - new Word { EN_US = "ur mom", Difficulty = 0 }, - new Word { EN_US = "stick of ram", Difficulty = 0 }, - new Word { EN_US = "big mac", Difficulty = 0 }, - new Word { EN_US = "ninetndo switch", Difficulty = 0 }, - new Word { EN_US = "crescendo", Difficulty = 0 }, - new Word { EN_US = "boxing", Difficulty = 0 }, - new Word { EN_US = "angry birds", Difficulty = 0 } - }; - - return JsonConvert.SerializeObject(value); - } - - public string GetUrl() - { - return "/api/activities/charades/v1/words"; - } - - public string GetMethod() - { - return HttpMethods.Get; - } - - private class Word - { - public string EN_US { get; set; } - public int Difficulty { get; set; } - } -} \ No newline at end of file diff --git a/API/ConfigV2Api.cs b/API/ConfigV2Api.cs deleted file mode 100644 index 4a4e8f9..0000000 --- a/API/ConfigV2Api.cs +++ /dev/null @@ -1,127 +0,0 @@ -namespace OpenRec_2.API; - -using Microsoft.AspNetCore.Http; -using Newtonsoft.Json; -using System.Collections.Generic; -using System.Net.Http; - -public class ConfigV2Api : IApi -{ - public string Response(HttpContext context) - { - var config = new Config2 - { - MessageOfTheDay = "Welcome to OpenRec-2!", - CdnBaseUri = "http://localhost:5229/", - LevelProgressionMaps = GetLevelProgressionMaps(), - MatchmakingParams = new MatchmakingConfigParams - { - PreferEmptyRoomsFrequency = 0f, - PreferFullRoomsFrequency = 1f - }, - DailyObjectives = GetDailyObjectives(), - ConfigTable = new List - { - new ConfigTableEntry - { - Key = "Gift.DropChance", - Value = 0.5f.ToString() - }, - new ConfigTableEntry - { - Key = "Gift.XP", - Value = 0.5f.ToString() - } - }, - PhotonConfig = new PhotonConfig - { - CloudRegion = "us", - CrcCheckEnabled = false, - EnableServerTracingAfterDisconnect = false - } - }; - - return JsonConvert.SerializeObject(config); - } - - public string GetUrl() - { - return "/api/config/v2"; - } - - public string GetMethod() - { - return HttpMethods.Get; - } - - private List GetLevelProgressionMaps() - { - var maps = new List(); - for (int i = 0; i <= 20; i++) - { - maps.Add(new LevelProgressionEntry - { - Level = i, - RequiredXp = i + 1 - }); - } - return maps; - } - - private Objective[][] GetDailyObjectives() - { - var objectives = new Objective[7][]; - for (int i = 0; i < 7; i++) - { - objectives[i] = new Objective[] - { - new Objective { type = 20, score = 1 }, - new Objective { type = 21, score = 1 }, - new Objective { type = 22, score = 1 } - }; - } - return objectives; - } - - public class Config2 - { - public string MessageOfTheDay { get; set; } - public string CdnBaseUri { get; set; } - public List LevelProgressionMaps { get; set; } - public MatchmakingConfigParams MatchmakingParams { get; set; } - public Objective[][] DailyObjectives { get; set; } - public List ConfigTable { get; set; } - public PhotonConfig PhotonConfig { get; set; } - } - - public class LevelProgressionEntry - { - public int Level { get; set; } - public int RequiredXp { get; set; } - } - - public class MatchmakingConfigParams - { - public float PreferEmptyRoomsFrequency { get; set; } - public float PreferFullRoomsFrequency { get; set; } - } - - public class Objective - { - public int type { get; set; } - public int score { get; set; } - } - - public class ConfigTableEntry - { - public string Key { get; set; } - public string Value { get; set; } - } - - public class PhotonConfig - { - public string CloudRegion { get; set; } - public bool CrcCheckEnabled { get; set; } - public bool EnableServerTracingAfterDisconnect { get; set; } - } -} \ No newline at end of file diff --git a/API/DefaultApi.cs b/API/DefaultApi.cs deleted file mode 100644 index 6d2ba48..0000000 --- a/API/DefaultApi.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace OpenRec_2.API; - -using Microsoft.AspNetCore.Http; - -public class DefaultApi : IApi -{ - public string Response(HttpContext context) - { - return "Hello! This is a OpenRec-2!"; - } - - public string GetUrl() - { - return "/"; - } - - public string GetMethod() - { - return HttpMethods.Get; - } -} \ No newline at end of file diff --git a/API/IApi.cs b/API/IApi.cs deleted file mode 100644 index 8ce2bae..0000000 --- a/API/IApi.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace OpenRec_2.API; - -using Microsoft.AspNetCore.Http; - -public interface IApi -{ - public string Response(HttpContext context); - public string GetUrl(); - - public string GetMethod(); -} \ No newline at end of file diff --git a/API/TestApi.cs b/API/TestApi.cs deleted file mode 100644 index 622233e..0000000 --- a/API/TestApi.cs +++ /dev/null @@ -1,28 +0,0 @@ -namespace OpenRec_2.API; - -using Microsoft.AspNetCore.Http; - -public class TestApi : IApi -{ - public string Response(HttpContext context) - { - string name = context.Request.Query["name"]; - - if (string.IsNullOrEmpty(name)) - { - return "Please provide a 'name' parameter in the URL query."; - } - - return $"Hello there, {name}!"; - } - - public string GetUrl() - { - return "/test"; - } - - public string GetMethod() - { - return HttpMethods.Get; - } -} \ No newline at end of file diff --git a/API/VersionCheckApi.cs b/API/VersionCheckApi.cs deleted file mode 100644 index 60f4b6e..0000000 --- a/API/VersionCheckApi.cs +++ /dev/null @@ -1,35 +0,0 @@ -namespace OpenRec_2.API; - -using Microsoft.AspNetCore.Http; -using Newtonsoft.Json; - -public class VersionCheckApi : IApi -{ - public string Response(HttpContext context) - { - string version = context.Request.Headers["X-Rec-Room-Version"].ToString(); - string supportedVersion = "20170626_EA"; - - var response = new VersionCheckResponse - { - ValidVersion = (version == supportedVersion) - }; - - return JsonConvert.SerializeObject(response); - } - - public string GetUrl() - { - return "/api/versioncheck/v1"; - } - - public string GetMethod() - { - return HttpMethods.Get; - } - - public class VersionCheckResponse - { - public bool ValidVersion { get; set; } - } -} \ No newline at end of file diff --git a/Controllers/WeatherForecastController.cs b/Controllers/WeatherForecastController.cs new file mode 100644 index 0000000..1736e97 --- /dev/null +++ b/Controllers/WeatherForecastController.cs @@ -0,0 +1,33 @@ +using Microsoft.AspNetCore.Mvc; + +namespace OpenRec2.Controllers +{ + [ApiController] + [Route("[controller]")] + public class WeatherForecastController : ControllerBase + { + private static readonly string[] Summaries = new[] + { + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" + }; + + private readonly ILogger _logger; + + public WeatherForecastController(ILogger logger) + { + _logger = logger; + } + + [HttpGet] + public IEnumerable Get() + { + return Enumerable.Range(1, 5).Select(index => new WeatherForecast + { + Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)), + TemperatureC = Random.Shared.Next(-20, 55), + Summary = Summaries[Random.Shared.Next(Summaries.Length)] + }) + .ToArray(); + } + } +} diff --git a/DatabaseManager.cs b/DatabaseManager.cs deleted file mode 100644 index 17a4ef1..0000000 --- a/DatabaseManager.cs +++ /dev/null @@ -1,35 +0,0 @@ -namespace OpenRec_2.Database; - -using System.IO; -using System.Threading.Tasks; - -public static class DatabaseManager -{ - private static readonly string BaseDirectory = "Storage"; - - public static async Task SaveAsync(string identifier, string key, string data) - { - string userDirectory = Path.Combine(BaseDirectory, identifier); - - if (!Directory.Exists(userDirectory)) - { - Directory.CreateDirectory(userDirectory); - } - - string filePath = Path.Combine(userDirectory, $"{key}.json"); - - await File.WriteAllTextAsync(filePath, data); - } - - public static async Task LoadAsync(string identifier, string key) - { - string filePath = Path.Combine(BaseDirectory, identifier, $"{key}.json"); - - if (File.Exists(filePath)) - { - return await File.ReadAllTextAsync(filePath); - } - - return string.Empty; - } -} \ No newline at end of file diff --git a/OpenRec-2.csproj b/OpenRec-2.csproj deleted file mode 100644 index 7319761..0000000 --- a/OpenRec-2.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - - net10.0 - enable - enable - OpenRec_2 - - - - - - - - - - diff --git a/OpenRec-2.http b/OpenRec-2.http deleted file mode 100644 index bba9dab..0000000 --- a/OpenRec-2.http +++ /dev/null @@ -1,6 +0,0 @@ -@OpenRec_2_HostAddress = http://localhost:5229 - -GET {{OpenRec_2_HostAddress}}/weatherforecast/ -Accept: application/json - -### diff --git a/OpenRec-2.sln b/OpenRec-2.sln deleted file mode 100644 index feb1402..0000000 --- a/OpenRec-2.sln +++ /dev/null @@ -1,16 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRec-2", "OpenRec-2.csproj", "{D9DD7ED3-C2AD-4206-A5FC-7AFED1355189}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D9DD7ED3-C2AD-4206-A5FC-7AFED1355189}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D9DD7ED3-C2AD-4206-A5FC-7AFED1355189}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D9DD7ED3-C2AD-4206-A5FC-7AFED1355189}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D9DD7ED3-C2AD-4206-A5FC-7AFED1355189}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection -EndGlobal diff --git a/OpenRec2.csproj b/OpenRec2.csproj new file mode 100644 index 0000000..1b28a01 --- /dev/null +++ b/OpenRec2.csproj @@ -0,0 +1,9 @@ + + + + net8.0 + enable + enable + + + diff --git a/OpenRec2.csproj.user b/OpenRec2.csproj.user new file mode 100644 index 0000000..9ff5820 --- /dev/null +++ b/OpenRec2.csproj.user @@ -0,0 +1,6 @@ + + + + https + + \ No newline at end of file diff --git a/OpenRec2.http b/OpenRec2.http new file mode 100644 index 0000000..c910029 --- /dev/null +++ b/OpenRec2.http @@ -0,0 +1,6 @@ +@OpenRec2_HostAddress = http://localhost:5280 + +GET {{OpenRec2_HostAddress}}/weatherforecast/ +Accept: application/json + +### diff --git a/OpenRec2.sln b/OpenRec2.sln new file mode 100644 index 0000000..20c53b6 --- /dev/null +++ b/OpenRec2.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36915.13 d17.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRec2", "OpenRec2.csproj", "{0DF9F709-6896-4665-9B99-1FE66ACF1A08}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0DF9F709-6896-4665-9B99-1FE66ACF1A08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0DF9F709-6896-4665-9B99-1FE66ACF1A08}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0DF9F709-6896-4665-9B99-1FE66ACF1A08}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0DF9F709-6896-4665-9B99-1FE66ACF1A08}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {E9B15DD1-9D48-4144-BE10-50A1FB06204D} + EndGlobalSection +EndGlobal diff --git a/Program.cs b/Program.cs index 1a1ce71..3a15deb 100644 --- a/Program.cs +++ b/Program.cs @@ -1,102 +1,27 @@ -using System; -using System.Threading.Tasks; -using Figgle.Fonts; - -int selectedIndex = 0; -bool apiSelected = false; -bool wsSelected = false; - -while (true) +namespace OpenRec2 { - Console.Clear(); - - Console.ForegroundColor = ConsoleColor.Cyan; - Console.WriteLine("--------------------------------------------------"); - Console.WriteLine(FiggleFonts.Standard.Render("OpenRec-2")); - Console.WriteLine("--------------------------------------------------"); - Console.ResetColor(); - Console.WriteLine(" Info: This server is powered by .NET 10 Kestrel."); - Console.WriteLine(" Feel free to fork this project and add anything you want."); - Console.WriteLine(" Made by RecRoom2016!"); - Console.WriteLine("--------------------------------------------------"); - Console.WriteLine(" Use [UP/DOWN] to navigate, [ENTER] to toggle."); - Console.WriteLine(" Press [ENTER] on 'Run Selected Servers' to start."); - Console.WriteLine(" Press [ESC] to exit.\n"); - - for (int i = 0; i < 3; i++) + public class Program { - if (i == selectedIndex) - { - Console.BackgroundColor = ConsoleColor.White; - Console.ForegroundColor = ConsoleColor.Black; - } - else + public static void Main(string[] args) { - Console.ResetColor(); - } + var builder = WebApplication.CreateBuilder(args); - if (i == 0) - { - string check = apiSelected ? "X" : " "; - Console.WriteLine($"[{check}] Start APIServer"); - } - else if (i == 1) - { - string check = wsSelected ? "X" : " "; - Console.WriteLine($"[{check}] Start WebsocketServer"); - } - else if (i == 2) - { - Console.WriteLine("Run Selected Servers"); - } - } + // Add services to the container. - Console.ResetColor(); + builder.Services.AddControllers(); - var key = Console.ReadKey(intercept: true).Key; + var app = builder.Build(); - if (key == ConsoleKey.UpArrow) - { - selectedIndex--; - if (selectedIndex < 0) selectedIndex = 2; - } - else if (key == ConsoleKey.DownArrow) - { - selectedIndex++; - if (selectedIndex > 2) selectedIndex = 0; - } - else if (key == ConsoleKey.Enter) - { - if (selectedIndex == 0) apiSelected = !apiSelected; - else if (selectedIndex == 1) wsSelected = !wsSelected; - else if (selectedIndex == 2) break; - } - - else if (key == ConsoleKey.Escape) - { - Console.WriteLine("\n[System] Shutting down..."); - return; - } -} + // Configure the HTTP request pipeline. -Console.WriteLine("\n[System] Booting up selected servers..."); + app.UseHttpsRedirection(); -var serverTasks = new System.Collections.Generic.List(); + app.UseAuthorization(); -if (apiSelected) -{ - serverTasks.Add(OpenRec_2.Server.StartAsync(args)); -} -if (wsSelected) -{ -} + app.MapControllers(); -if (serverTasks.Count > 0) -{ - await Task.WhenAll(serverTasks); + app.Run(); + } + } } -else -{ - Console.WriteLine("[System] No servers were selected. Exiting."); -} \ No newline at end of file diff --git a/Properties/launchSettings.json b/Properties/launchSettings.json index 1043d53..0bc16bc 100644 --- a/Properties/launchSettings.json +++ b/Properties/launchSettings.json @@ -1,11 +1,20 @@ { - "$schema": "https://json.schemastore.org/launchsettings.json", + "$schema": "http://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:1331", + "sslPort": 44331 + } + }, "profiles": { "http": { "commandName": "Project", "dotnetRunMessages": true, - "launchBrowser": false, - "applicationUrl": "http://localhost:5229", + "launchBrowser": true, + "launchUrl": "weatherforecast", + "applicationUrl": "http://localhost:5280", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } @@ -13,8 +22,17 @@ "https": { "commandName": "Project", "dotnetRunMessages": true, - "launchBrowser": false, - "applicationUrl": "https://localhost:7095;http://localhost:5229", + "launchBrowser": true, + "launchUrl": "weatherforecast", + "applicationUrl": "https://localhost:7223;http://localhost:5280", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "launchUrl": "weatherforecast", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/README.md b/README.md deleted file mode 100644 index 961df25..0000000 --- a/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# OpenRec-2 - -Hi, this is OpenRec-2. - -I plan on creating a universal and modular server backend for RecRoom, one to be hosted both locally and on servers for mutliplayer. - -I plan on supporting 2016 RecRoom first, and then working my way up until 2023 if possible using OpenRec as a template. - -Feel free to submit requests for any features to be added! diff --git a/Server.cs b/Server.cs deleted file mode 100644 index 41d0a3d..0000000 --- a/Server.cs +++ /dev/null @@ -1,56 +0,0 @@ -using OpenRec_2.API; - -namespace OpenRec_2; - -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Http; -using System.Threading.Tasks; - -public static class Server -{ - private static readonly List ApiList = - [ - new DefaultApi(), - new TestApi(), - new CharadesWordsApi(), - new AmplitudeApi(), - new ConfigV2Api(), - new VersionCheckApi() - ]; - - public static async Task StartAsync(string[] args) - { - var builder = WebApplication.CreateBuilder(args); - - //builder.Logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Warning); - - var app = builder.Build(); - - app.Run(async context => - { - var path = context.Request.Path; - var method = context.Request.Method; - bool apiFufilled = false; - - foreach (IApi api in ApiList) - { - if (path == api.GetUrl() && method == api.GetMethod()) - { - context.Response.ContentType = "application/json"; - await context.Response.WriteAsync(api.Response(context)); - apiFufilled = true; - break; - } - } - - if (!apiFufilled) - { - context.Response.StatusCode = StatusCodes.Status404NotFound; - await context.Response.WriteAsync("404 - Endpoint Not Found"); - } - }); - - // asgfhosa ckjabvuciba bnc vbakuyfcp/al vchjnavboaiv ashgbc ajiakjb cyab gffff - await app.RunAsync(); - } -} \ No newline at end of file diff --git a/WeatherForecast.cs b/WeatherForecast.cs new file mode 100644 index 0000000..110043d --- /dev/null +++ b/WeatherForecast.cs @@ -0,0 +1,13 @@ +namespace OpenRec2 +{ + public class WeatherForecast + { + public DateOnly Date { get; set; } + + public int TemperatureC { get; set; } + + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); + + public string? Summary { get; set; } + } +} diff --git a/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs new file mode 100644 index 0000000..2217181 --- /dev/null +++ b/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] diff --git a/obj/Debug/net8.0/OpenRec2.AssemblyInfo.cs b/obj/Debug/net8.0/OpenRec2.AssemblyInfo.cs new file mode 100644 index 0000000..3002620 --- /dev/null +++ b/obj/Debug/net8.0/OpenRec2.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("OpenRec2")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyProductAttribute("OpenRec2")] +[assembly: System.Reflection.AssemblyTitleAttribute("OpenRec2")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/obj/Debug/net8.0/OpenRec2.AssemblyInfoInputs.cache b/obj/Debug/net8.0/OpenRec2.AssemblyInfoInputs.cache new file mode 100644 index 0000000..5330739 --- /dev/null +++ b/obj/Debug/net8.0/OpenRec2.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +1aee8b1eff31535558b59070c90d040ee3de0b9137db6850ee310c5dff93db6a diff --git a/obj/Debug/net8.0/OpenRec2.GeneratedMSBuildEditorConfig.editorconfig b/obj/Debug/net8.0/OpenRec2.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..01374a8 --- /dev/null +++ b/obj/Debug/net8.0/OpenRec2.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,21 @@ +is_global = true +build_property.TargetFramework = net8.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = true +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = OpenRec2 +build_property.RootNamespace = OpenRec2 +build_property.ProjectDir = D:\Users\Admin\Documents\GitHub\OpenRec-2\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.RazorLangVersion = 8.0 +build_property.SupportLocalizedComponentNames = +build_property.GenerateRazorMetadataSourceChecksumAttributes = +build_property.MSBuildProjectDirectory = D:\Users\Admin\Documents\GitHub\OpenRec-2 +build_property._RazorSourceGeneratorDebug = +build_property.EffectiveAnalysisLevelStyle = 8.0 +build_property.EnableCodeStyleSeverity = diff --git a/obj/Debug/net8.0/OpenRec2.GlobalUsings.g.cs b/obj/Debug/net8.0/OpenRec2.GlobalUsings.g.cs new file mode 100644 index 0000000..025530a --- /dev/null +++ b/obj/Debug/net8.0/OpenRec2.GlobalUsings.g.cs @@ -0,0 +1,17 @@ +// +global using global::Microsoft.AspNetCore.Builder; +global using global::Microsoft.AspNetCore.Hosting; +global using global::Microsoft.AspNetCore.Http; +global using global::Microsoft.AspNetCore.Routing; +global using global::Microsoft.Extensions.Configuration; +global using global::Microsoft.Extensions.DependencyInjection; +global using global::Microsoft.Extensions.Hosting; +global using global::Microsoft.Extensions.Logging; +global using global::System; +global using global::System.Collections.Generic; +global using global::System.IO; +global using global::System.Linq; +global using global::System.Net.Http; +global using global::System.Net.Http.Json; +global using global::System.Threading; +global using global::System.Threading.Tasks; diff --git a/obj/Debug/net8.0/OpenRec2.assets.cache b/obj/Debug/net8.0/OpenRec2.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..5d04c67d97644c101a803cd8e8e425faf8c36e17 GIT binary patch literal 228 zcmWIWc6a1qU| + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\Admin\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages + PackageReference + 6.14.2 + + + + + + \ No newline at end of file diff --git a/obj/OpenRec2.csproj.nuget.g.targets b/obj/OpenRec2.csproj.nuget.g.targets new file mode 100644 index 0000000..3dc06ef --- /dev/null +++ b/obj/OpenRec2.csproj.nuget.g.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/obj/project.assets.json b/obj/project.assets.json new file mode 100644 index 0000000..0ad71d0 --- /dev/null +++ b/obj/project.assets.json @@ -0,0 +1,82 @@ +{ + "version": 3, + "targets": { + "net8.0": {} + }, + "libraries": {}, + "projectFileDependencyGroups": { + "net8.0": [] + }, + "packageFolders": { + "C:\\Users\\Admin\\.nuget\\packages\\": {}, + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "D:\\Users\\Admin\\Documents\\GitHub\\OpenRec-2\\OpenRec2.csproj", + "projectName": "OpenRec2", + "projectPath": "D:\\Users\\Admin\\Documents\\GitHub\\OpenRec-2\\OpenRec2.csproj", + "packagesPath": "C:\\Users\\Admin\\.nuget\\packages\\", + "outputPath": "D:\\Users\\Admin\\Documents\\GitHub\\OpenRec-2\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\Admin\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.AspNetCore.App": { + "privateAssets": "none" + }, + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.310/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/obj/project.nuget.cache b/obj/project.nuget.cache new file mode 100644 index 0000000..c34a7f9 --- /dev/null +++ b/obj/project.nuget.cache @@ -0,0 +1,8 @@ +{ + "version": 2, + "dgSpecHash": "FCfsCeIt4og=", + "success": true, + "projectFilePath": "D:\\Users\\Admin\\Documents\\GitHub\\OpenRec-2\\OpenRec2.csproj", + "expectedPackageFiles": [], + "logs": [] +} \ No newline at end of file From 97bf5aa022b69ee95825a0daa2eb392ee4cb09bf Mon Sep 17 00:00:00 2001 From: Exception <123850538+DiscoKnax6808@users.noreply.github.com> Date: Sat, 9 May 2026 17:13:00 -0400 Subject: [PATCH 2/2] https and controller fix HTTPS is a requirement for 2021 and higher, Downgrade to .NET 8 because I dont want to install Visual Studio 2026 just to use .NET 10, also fixed a error with your FiggleFont where it wouldn't wrap around correctly :) --- .../17.14.1577.30250/SemanticSymbols.db | Bin 53248 -> 53248 bytes .vs/OpenRec2/DesignTimeBuild/.dtbcache.v2 | Bin 0 -> 145782 bytes ...204b4b13-e592-4419-9cc5-53bdae593067.vsidx | Bin 0 -> 15169 bytes ...4f53aab4-f691-4465-89c5-7b40fbc3bfeb.vsidx | Bin 0 -> 107 bytes ...5ce9a5e0-1801-4d20-be1d-06537e724a48.vsidx | Bin 9604 -> 0 bytes ...838e0aac-37e9-4696-8355-771919f4b268.vsidx | Bin 0 -> 2979 bytes ...fdc3546f-d9f4-40b4-875a-b94f0e9992e9.vsidx | Bin 0 -> 107 bytes .vs/OpenRec2/config/applicationhost.config | 1026 +++++++++++++++++ .vs/OpenRec2/v17/.futdcache.v2 | Bin 226 -> 343 bytes .vs/OpenRec2/v17/.suo | Bin 18432 -> 41984 bytes .vs/OpenRec2/v17/DocumentLayout.backup.json | 92 ++ .vs/OpenRec2/v17/DocumentLayout.json | 75 +- .../openrec2.metadata.v9.bin | Bin 1310 -> 1578 bytes .../openrec2.projects.v9.bin | Bin 67384 -> 101403 bytes .vs/ProjectEvaluation/openrec2.strings.v9.bin | Bin 160010 -> 163577 bytes Controllers/NameServerController.cs | 24 + Controllers/WeatherForecastController.cs | 33 - OpenRec2.csproj | 5 + OpenRec2.csproj.user | 2 + Program.cs | 55 +- Properties/launchSettings.json | 12 +- WeatherForecast.cs | 13 - bin/Debug/net8.0/Figgle.Fonts.dll | Bin 0 -> 495616 bytes bin/Debug/net8.0/Figgle.dll | Bin 0 -> 15360 bytes bin/Debug/net8.0/OpenRec2.deps.json | 60 + bin/Debug/net8.0/OpenRec2.dll | Bin 0 -> 8704 bytes bin/Debug/net8.0/OpenRec2.exe | Bin 0 -> 151552 bytes bin/Debug/net8.0/OpenRec2.pdb | Bin 0 -> 21324 bytes bin/Debug/net8.0/OpenRec2.runtimeconfig.json | 19 + .../OpenRec2.staticwebassets.endpoints.json | 1 + bin/Debug/net8.0/appsettings.Development.json | 8 + bin/Debug/net8.0/appsettings.json | 9 + obj/Debug/net8.0/ApiEndpoints.json | 22 + obj/Debug/net8.0/OpenRec2.AssemblyInfo.cs | 2 +- .../net8.0/OpenRec2.AssemblyInfoInputs.cache | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 4 +- ...Rec2.MvcApplicationPartsAssemblyInfo.cache | 0 obj/Debug/net8.0/OpenRec2.assets.cache | Bin 228 -> 1429 bytes .../OpenRec2.csproj.AssemblyReference.cache | Bin 0 -> 656 bytes .../OpenRec2.csproj.BuildWithSkipAnalyzers | 0 .../OpenRec2.csproj.CoreCompileInputs.cache | 1 + .../OpenRec2.csproj.FileListAbsolute.txt | 33 + obj/Debug/net8.0/OpenRec2.csproj.Up2Date | 0 obj/Debug/net8.0/OpenRec2.dll | Bin 0 -> 8704 bytes .../net8.0/OpenRec2.genruntimeconfig.cache | 1 + obj/Debug/net8.0/OpenRec2.pdb | Bin 0 -> 21324 bytes obj/Debug/net8.0/OpenRec2.sourcelink.json | 1 + obj/Debug/net8.0/apphost.exe | Bin 0 -> 151552 bytes obj/Debug/net8.0/ref/OpenRec2.dll | Bin 0 -> 6144 bytes obj/Debug/net8.0/refint/OpenRec2.dll | Bin 0 -> 6144 bytes obj/Debug/net8.0/rjsmcshtml.dswa.cache.json | 1 + obj/Debug/net8.0/rjsmrazor.dswa.cache.json | 1 + obj/Debug/net8.0/rpswa.dswa.cache.json | 2 +- .../staticwebassets.build.endpoints.json | 1 + obj/Debug/net8.0/staticwebassets.build.json | 1 + .../net8.0/staticwebassets.build.json.cache | 1 + ...aticwebassets.references.upToDateCheck.txt | 0 obj/OpenRec2.csproj.nuget.dgspec.json | 20 +- obj/project.assets.json | 86 +- obj/project.nuget.cache | 9 +- 60 files changed, 1546 insertions(+), 76 deletions(-) create mode 100644 .vs/OpenRec2/DesignTimeBuild/.dtbcache.v2 create mode 100644 .vs/OpenRec2/FileContentIndex/204b4b13-e592-4419-9cc5-53bdae593067.vsidx create mode 100644 .vs/OpenRec2/FileContentIndex/4f53aab4-f691-4465-89c5-7b40fbc3bfeb.vsidx delete mode 100644 .vs/OpenRec2/FileContentIndex/5ce9a5e0-1801-4d20-be1d-06537e724a48.vsidx create mode 100644 .vs/OpenRec2/FileContentIndex/838e0aac-37e9-4696-8355-771919f4b268.vsidx create mode 100644 .vs/OpenRec2/FileContentIndex/fdc3546f-d9f4-40b4-875a-b94f0e9992e9.vsidx create mode 100644 .vs/OpenRec2/config/applicationhost.config create mode 100644 .vs/OpenRec2/v17/DocumentLayout.backup.json create mode 100644 Controllers/NameServerController.cs delete mode 100644 Controllers/WeatherForecastController.cs delete mode 100644 WeatherForecast.cs create mode 100644 bin/Debug/net8.0/Figgle.Fonts.dll create mode 100644 bin/Debug/net8.0/Figgle.dll create mode 100644 bin/Debug/net8.0/OpenRec2.deps.json create mode 100644 bin/Debug/net8.0/OpenRec2.dll create mode 100644 bin/Debug/net8.0/OpenRec2.exe create mode 100644 bin/Debug/net8.0/OpenRec2.pdb create mode 100644 bin/Debug/net8.0/OpenRec2.runtimeconfig.json create mode 100644 bin/Debug/net8.0/OpenRec2.staticwebassets.endpoints.json create mode 100644 bin/Debug/net8.0/appsettings.Development.json create mode 100644 bin/Debug/net8.0/appsettings.json create mode 100644 obj/Debug/net8.0/ApiEndpoints.json create mode 100644 obj/Debug/net8.0/OpenRec2.MvcApplicationPartsAssemblyInfo.cache create mode 100644 obj/Debug/net8.0/OpenRec2.csproj.AssemblyReference.cache create mode 100644 obj/Debug/net8.0/OpenRec2.csproj.BuildWithSkipAnalyzers create mode 100644 obj/Debug/net8.0/OpenRec2.csproj.CoreCompileInputs.cache create mode 100644 obj/Debug/net8.0/OpenRec2.csproj.FileListAbsolute.txt create mode 100644 obj/Debug/net8.0/OpenRec2.csproj.Up2Date create mode 100644 obj/Debug/net8.0/OpenRec2.dll create mode 100644 obj/Debug/net8.0/OpenRec2.genruntimeconfig.cache create mode 100644 obj/Debug/net8.0/OpenRec2.pdb create mode 100644 obj/Debug/net8.0/OpenRec2.sourcelink.json create mode 100644 obj/Debug/net8.0/apphost.exe create mode 100644 obj/Debug/net8.0/ref/OpenRec2.dll create mode 100644 obj/Debug/net8.0/refint/OpenRec2.dll create mode 100644 obj/Debug/net8.0/rjsmcshtml.dswa.cache.json create mode 100644 obj/Debug/net8.0/rjsmrazor.dswa.cache.json create mode 100644 obj/Debug/net8.0/staticwebassets.build.endpoints.json create mode 100644 obj/Debug/net8.0/staticwebassets.build.json create mode 100644 obj/Debug/net8.0/staticwebassets.build.json.cache create mode 100644 obj/Debug/net8.0/staticwebassets.references.upToDateCheck.txt diff --git a/.vs/OpenRec2/CopilotIndices/17.14.1577.30250/SemanticSymbols.db b/.vs/OpenRec2/CopilotIndices/17.14.1577.30250/SemanticSymbols.db index e46accf223b8670d7d21e30c35b960a348303786..2869030c5c24f3b3226179849699ed64de3961da 100644 GIT binary patch literal 53248 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

QZPevH1; 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 IH$klb2i{&?_5c6? diff --git a/.vs/OpenRec2/DesignTimeBuild/.dtbcache.v2 b/.vs/OpenRec2/DesignTimeBuild/.dtbcache.v2 new file mode 100644 index 0000000000000000000000000000000000000000..45786da04bafc5a751e2003fa8ddd2b70960cb50 GIT binary patch literal 145782 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