From 10c217c2351152e7636e5ec2e290568a4e9cf954 Mon Sep 17 00:00:00 2001 From: Claire Strodtbeck Date: Sat, 13 Jun 2020 17:33:31 -0700 Subject: [PATCH] Login sample fully functional. Added all API URLs. --- .../DesignTimeBuild/.dtbcache.v2 | Bin 60659 -> 68974 bytes MatrixDotNetLib/.vs/MatrixDotNetLib/v16/.suo | Bin 26112 -> 43520 bytes MatrixDotNetLib/MatrixDotNetCmd/Program.cs | 11 +- .../MatrixDotNetCmd.assets.cache | Bin 141 -> 671 bytes ...rixDotNetCmd.csprojAssemblyReference.cache | Bin 424 -> 5608 bytes .../MatrixDotNetCmd.csproj.nuget.dgspec.json | 6 + .../MatrixDotNetCmd/obj/project.assets.json | 43 ++++++ .../MatrixDotNetCmd/obj/project.nuget.cache | 6 +- MatrixDotNetLib/MatrixDotNetLib/MatrixApis.cs | 132 ++++++++++++++++++ .../MatrixDotNetLib/MatrixClient.cs | 9 -- .../MatrixDotNetLib/MatrixDotNetLib.csproj | 4 + .../MatrixDotNetLib/MatrixError.cs | 28 ++++ .../MatrixDotNetLib/MatrixLoginFlows.cs | 14 ++ .../MatrixDotNetLib/MatrixLoginIdentifier.cs | 22 +++ .../MatrixDotNetLib/MatrixLoginRequest.cs | 49 +++++++ .../MatrixDotNetLib/MatrixLoginResponse.cs | 34 +++++ .../MatrixDotNetLib/MatrixLoginType.cs | 13 ++ .../MatrixDotNetLib/MatrixSessionManager.cs | 55 ++++++++ MatrixDotNetLib/MatrixDotNetLib/MatrixUser.cs | 34 +++++ .../MatrixDotNetLib/MatrixUserServer.cs | 13 ++ .../MatrixDotNetLib/MatrixUserServers.cs | 22 +++ .../netcoreapp3.1/MatrixDotNetLib.deps.json | 18 +++ .../Debug/netcoreapp3.1/MatrixDotNetLib.dll | Bin 4096 -> 18432 bytes .../Debug/netcoreapp3.1/MatrixDotNetLib.pdb | Bin 616 -> 3364 bytes .../MatrixDotNetLib.assets.cache | Bin 141 -> 671 bytes ...ixDotNetLib.csproj.CoreCompileInputs.cache | 2 +- ...atrixDotNetLib.csproj.FileListAbsolute.txt | 2 +- ...rixDotNetLib.csprojAssemblyReference.cache | Bin 424 -> 104852 bytes .../Debug/netcoreapp3.1/MatrixDotNetLib.dll | Bin 4096 -> 18432 bytes .../Debug/netcoreapp3.1/MatrixDotNetLib.pdb | Bin 616 -> 3364 bytes .../MatrixDotNetLib.csproj.nuget.dgspec.json | 6 + .../MatrixDotNetLib/obj/project.assets.json | 56 +++++++- .../MatrixDotNetLib/obj/project.nuget.cache | 6 +- 33 files changed, 566 insertions(+), 19 deletions(-) create mode 100644 MatrixDotNetLib/MatrixDotNetLib/MatrixApis.cs delete mode 100644 MatrixDotNetLib/MatrixDotNetLib/MatrixClient.cs create mode 100644 MatrixDotNetLib/MatrixDotNetLib/MatrixError.cs create mode 100644 MatrixDotNetLib/MatrixDotNetLib/MatrixLoginFlows.cs create mode 100644 MatrixDotNetLib/MatrixDotNetLib/MatrixLoginIdentifier.cs create mode 100644 MatrixDotNetLib/MatrixDotNetLib/MatrixLoginRequest.cs create mode 100644 MatrixDotNetLib/MatrixDotNetLib/MatrixLoginResponse.cs create mode 100644 MatrixDotNetLib/MatrixDotNetLib/MatrixLoginType.cs create mode 100644 MatrixDotNetLib/MatrixDotNetLib/MatrixSessionManager.cs create mode 100644 MatrixDotNetLib/MatrixDotNetLib/MatrixUser.cs create mode 100644 MatrixDotNetLib/MatrixDotNetLib/MatrixUserServer.cs create mode 100644 MatrixDotNetLib/MatrixDotNetLib/MatrixUserServers.cs diff --git a/MatrixDotNetLib/.vs/MatrixDotNetLib/DesignTimeBuild/.dtbcache.v2 b/MatrixDotNetLib/.vs/MatrixDotNetLib/DesignTimeBuild/.dtbcache.v2 index 6db9b81544d08c54d3a8ef422921fc624cdfc15b..0fedc34830245f4179fef3639683cc6f1b4fc927 100644 GIT binary patch literal 68974 zcmeHQXJ8aZvYwFx28;n`R*R?9K{=bIu9pd^zWw zbIv*EoUe8B-n+YZckjKgI_&n07JF~l8Qu^1?o$a>ZB=(qPj_{w+U*U7VI0+CB}yaL zc4f!rcK2<#);M)p$xf%b`bH*sbouMb8~a5qouv2sUy|W-qsdR4JVowEpF>bEFNxd zZMB+`@nm9AvNPEck9Rb;EVkNPjnn$AVlF)j!SZZK`w8n^(g>XPxD&u@f))?}VKl;w>|jwVY(G zV8!$K)>yOubFox9ZIptW$t8BwWF}e6qrp-C{1{a_Z8?^a>RvL0$1qZeXXdW3(^hdP zm2*(qp?o~KvpBTYP8M>-+^`c{w|uZ0HHdZP^D(s35b6dDVvMUA0URJu_`5 zxb|)J){f3mbmG}mypZAsta=+57%MtfhPowlSvQ_~j1y!;TK_v(BRuZ$G zz1I@mzZ9CyOg@)IH(8rYS?O3;Hk)(!lqS0BSTts7a`&6A`%o-jc$&eq8q))fsFuq| z(axA~tW;NVEGznw6HNpA=7QbPSREY8lN&c`6&$O;U!Cot8O{#dBc%fGx}gr_s1LkE zG4|Ab(kpjS>5haoY}5OODI$}}WqD(THHdOM^kcwsmhW+_Y>`h+^v;FVcHCr`Q&Eo{ zAIav5j-BMQtW$_59Whv@L+aeRMZPNF&n&EW*ki3+SFw=chDRf)Caowo!e2sn>CF!3 zxZS!t%<^s1D~uHl7JcEmX}Y}u2dkw)bRjXITpvNx4#L&lRIo83bGvJ7xWVvkcoRp_ zg9mfDv}oY4{3yMFc^$RR8$~A~o7kD)ExIM7CrTq+SZkG@LVUL>e7orzm@4+f;@NOi*(1+7Oi4Mmk-PT@!F)$Q4Faiy_S5FdRWW9 z-u2|I*@F(bs56>?76<_|HfRf5kVwP;wby3Z6%eR5_Zt6{ljKC4^oJQ?O~dR0hW z2PUaTVZ8%T?`ylT-f*v_o&xsR%3exX@157CZ`cg+z0;a>Q{2J6yzmslnio*bUaYU; zj+Gj4a)tPa=#shcy5w3blPip^#SXibqRNVaIvJk9K07asgxFU$WHa$BS}!H4H{jq5 zA;Vw4uohlx?CdUXU}s28#|M^AAa`J{QZ!kTHgrOQiJVXVBT84sxi zMPJ~x*&33Gb(Yw04(t6P{i_^DoDPN6)07d<+9=E#t&Q8FlZ7>`QjONdGZsI)EYXoA z?*(Bw7u=lX?9LT-(!^NERQBbwLU@DZ^V%ywOm+^EbfcYjT@S-dhBAJ)*qF=7}kvd%_!9^tSu?c%yQh* z;O}u*d-{G`y=(Y+c4bx$Yfs;Ac#S=>-Pvu?PhR1$#uMGH_uMJ04PedUTFZ&2=!A{B zPXsmec_d-&Q)xA%gI(X&Us&TBd8~AYu87NHH1qLB4X=t7W8$~9d=)LMhF?W-F2k$1 zHzdDO?SRvMDt0>x(jzOzHe`$OVX@nCP1Lr|AIcK_}7*Si7!Xo764C+JW*~^7-{)Eh9Wei?qMYJ4@X| zuH-cnZm#STgxXK~t&vhXUhtpdhSreVaqP_}i0s$D(T4Z@m+ zw7T-g${%9*T~(Ov!`l)B-jvFQ4>>eus;Uh<$u* zt2?Zy12X2__@GH7ET5FDZSKh>v5O_|HiXr)xus0nV=K%yggw=aa!3u!f#Nmmi#yx- zn-tbjUB!y`dDZ=9q#PC~(3gYm+Mpp=257$722@82*39M79d!Oj)?DV$sSZ(qmOici1pb zC^Ar~zDPb%DP>!&rA#!n4z~|?3?uPKdsDnMZp^r*Kfar86w}4K>x``x8~)T26>H7Z zB<-~{$^>&)RMqcOT~m8cP<>TJHM+DXwM0dK8}fRz1SE@zN;*@KGj&P$57+B!7oFW1FwN#FXxr=$>|1oQUhIi z&~Bk#6_0XX4g=jzjlR}|xmE>e>UPM}(^3|A%>-+!tE#k>JkrtCA8_w1w@@)wNl2hu z2>LuSRVqNI4OQ|F)Wcl0zQxlG)I+(N;`L`vk^Yv*E>I5>)t)z*z|o|xKIrrA6;DG~ z6?D8*L%Iy(52Dh)TpCh+MP?tU9I)%!xg%f0IO*4Zh0^X#1fZ)9+R0VN@J7a$kj>&z9IKpv)We3FQV`lZF^FF`P;0;T&wuY8czr!gsQ&IX zQGKWhS`DqgSK22ggXil}2{lrp624gZdT8HT?kuqhq4D+5-(S(sBjM|zQ+upc1K;am zLwVYCMxyHr`WkJK?ZD4mvxzRet<_M=6_!G<%HizhQy2cu( z{0UC_TB#ASg}S<0hiU(?r}{00D$=>4uJb_qfYPY~&UM{E_XG9vQha$mbgGeu%Igg$ z*R=;7IMqbRwNHp1*DVBXZ@o<@SX|c`wAAXApiv94F$gRF;M zHKI{Vs0)Y`=&kDx+MCq|4c9HAgmtw+JA@i2Ni8l6h`3{2anSOrMS)c8kJ{Ev1nqeG zV?^0`V63h;XwjAbB8#pfq$jpb(1Po43<@p{=tU2zx%__1P!e5dt>eDmc`o;A6`mpk ztaaVZu|+lQ-udSg)vL95YOmU0r%TEm!jWgy@M+yfQ^2CDbFqpIU2D+yQ7zLeT4NL( zt*Z{&H`LysPjyU>h4$L1ZAaGsOx50?-;NggTn{tqE!EAGBb~hlf^{Ob8KoIefz1{5 z%{Zc|ZB6QLrYhyH@9e48?ppc1Vat_T1V8svgM&XxxgNSJ71&Quay^Vptbo{?t%q(~ z`Y$R7Z9gH$x~ZU}(T*20B_oV=TR{gBwf8BjrK=1&>?yxmwN&*DxS-n0gQ_=NSTA_c zwoq=4D!4CDS2q!~^p5Y*`b?;lu39XxZZ+saH~%75y^+85u;}jtl|Wyw_L^p;35#Ln zbEyX<;(B$>%{87t`Umpz2;vLl_392b2bCv@Y9XDvfuPQvf80>_97R}gB}mt6E7)nC zy1=0xf!7wr-*~MAn^#}BM%Aa-ps!|mhN|{>Vz_3hSExClqo77FwNj0V09&u>VBJf# zRYi66cv{_7Yi-xFCR~D0ZB^YC!e@0OL5E{?d#Ab)6{J@WOE27X)w@~HTB)(PdaeAS zuzKx+c5JndR2FrewGK7@aZ-)%N+)d=i9lCfd(bvgBV}1T|3${N*291r=HnDtuJe9&~@L+$u`D zt~BWTuTJeM;eD0h(0b@EcScp{m^T(wx3TB|XZlJVxD8!((B@ITmrwP6-liHa&rWc% z_t!}EJb_c=uvQcPNb1o_6FZTxLSdWr(63xMt?U$~Sr64}GaT2Y%0ZdB-WsQ-3HKq( zLxH9@#$zzO+G`r(Cv+IKiCPJ{^lGhXMw*~i9eiSM-K!3bZ~#}QpiU2{^r{Y4f3=k& zSJPgV!Ah$t?^}HYeg4W5q?j@P$$wCt>J=uPdN8D3{h(8qx&leMJqt`-dC-C@SBI3B zL+5nGL5F8GFmT0{$i{l8)*A%sRh!gj)KOD8FE_<4)}zE~He>$6lr?N;ttEr~UERws>{-5S!^#WkyRO&wFYoH>(|&E; z)@;lcx)9EpM*Kb{G&YW3h;On$5NN?l;XBXc*^wnycEN@LW9Gu`NRNvcVq{qy8;#F1 z@(Z~f;y|q>!N2SK-}y@MU7E$l1A1^Ze$RKKaZNNP{gIaxmfL8IMsJ+kji}Q8m`zb> zJIqR}h)!WD9j2*lCEin5D}-rHu4pUKpu%P@0-M@bh&LM7M_{meB&n!yF=G4teYq}T zqvaq}QRk@Jyb_`+?B5V^^|b(2QGlDxNJ_B3_*PMf+Ydq^D7sDye-#A@b=HvM4Ea0W zFDq{}4n_m`VrNAI+;kA0MCD{bl;PHcPzF!rttdt*k{3gZ%N1s$n0B-;Ja05Yoyp66 zUVQs`qY=dZjp&UlH@+U@EGmCb)Q^D9 z!>WWpADmaB{C(_=MidUF-V3zw>4Vb^WpK4HJ`%xL#K+tyW^MKT>fGSo2x_Jb`W>|0 zQP}ndb&JOtMQ8SgO_xKyMFFDl3B3j25BtU_Ml-M7%5_yy^C;Ho2!5r-QDMSY!iT(_ zCnqzXdEWAotcQGtwFqNghA8$Zd_~Z{I=<1^5y9&Y`@F7EykM~9Z{jEh7O&ZI2)w9w zByYI41pZMyqBmS?dhN^S8;vL?G&F!Ox?Z&YwbAtO39gr8$AZ$nBVsYCOQXoXz z+LRzcSd3zTpc?zV3@4%&RwY*uwT;SZ`Ko?ovktYfx?@j?8AN@f*k$LI<(Ioh=DU+o zTw1JrnS3-mT+*yRb)huX1l3l)C#Jvq*M2waR-FcZep4V!7i_>me*h zRQvs8{Wuu4uY6fkqj5(R=L;%EUf%aENUyaR+rV#li#E9Ppq4~t6cI&<;z&=m37>+Z zSO6=7{^OlUray1464A<0?7XW=`_qi@R^Jz8kMoy6mP|`@B3kACgIOqV9u!faDEnq5 zONy`^#Zp6c5s^bh*o|a1@?}^NmLqY4swVj0uSBGSu!`RDr)Lo@5y|yr_3*t#QQw~2 zXdJ}$I5=Kf)viIYYmqIL${T4SGmJ1C$#bY!uAVqX6eSXWv3gOES4NZ}l1t;&%b?QE z9Q5bne?KCbIIFjbKWU9QPnBP?35^t%tIz7{>u`|{}fN8E#s(#!}yZl zc-kJxE@^LWLAIz|-mx?GUTcBTv@ln4mgEvUhIoweP}Xvixq=nX=aITjn*n4_% z4sJ)6S;UDe^+sd*LML7rK{>2FmNA28xQZ8f@~Z{lm7L*D)Gc3fc#AkzAp?a)*qmoflckO& zi^k>16tw{#D-O{;sXk7JWAwpe^-9cJvTj53qNaA^OqtPULw+!al3Cr9B&;`!nrR8e zPLM)<@#N0N@kq;f`Z0jLS29TD`Bh`A@!d3Y>l0G!GFI{s~9`?m-eif+BrlW7OCSFAo`GA z#sy8yZJnL1Lj$Ru+S^NAJ%&FGiFd0CCnh;YfBlUav&+MXDu{7J*`O8t5!Cud(g=3| zW@_!OWab!ux1&GK^!?E|ln=TG(E0XP^T3^NzY5cMJpbNwuy%lkjMPwf3Hb!G&d@SD zTbV~FP?pl0NTwWj%bj6)U91_WS2|o(d(}r@KGJDJ-@N@bitlmqhgq|5K9w-$)!L;< z_|ncq%IautPQ+U~+d7&PZHeY&BGug7(%RP9(PnkDcP_SC+pI*>qT$wLXLIM`M5-;( z+1%0D(mLGIlw7>%-|z=8PVw5zRI@O$PZr{ZG1Z0T{qLsI9T4gQ?Wu= z+e4wq#_Z*pgq4yPv#1b7;|OB#@*J_s&N{qIP_?TB4>;v-py|EEin3_~Nb#B-;l_`W zk4x2aN_Q#klnQ8Lo`i4MPL?@cX&cTt+Oym^yl6)%hjRrI)f%(Pm7#y4%G5kLTD=&v zMWGPfMIJ6M@3EdgDNEDDU%AB071Yf{!|*>Gu>v`B`EOJDb2+ESM!%$TWT~r6EpJd8 z)BCM7mM5bYNle8Lc(gf;Z76QCR47Wu3H*suk%Z4%R(_(7QBiP=kHeeMFRqoNx47CG z6BRIyP<`Dv1PdgiFSs}4pOuouJZcbBBaKM9Mj8c##%YH5?+}m+8Vq9|FdsM?|6TwZ z0~P{JKr_$+v;u8FJFp1o06Kxiz!Km>;38lta4}#)7x7O9y#(}9pbH@V%Ybg62O#~V zdpWQISP85G$W||K8L%3lGOhvE0=n&W_&3>K50L#6VUKL-cF0B_a5zQR)FfW4Y(SJ0|{UjKAQxk&yo(( z|L^L+M~oDHSOEP#Oh5478axPQ+{{eYzz$)D{%tlpY@hicJA9w{&nMWFE_MW);bFax>7PIKAm zAg8-*F34P$odI%&%Nju%U3MnOnJzmE$3Ae&U4xMAm_X6 z0+0(_HV2%p*ki{-r0WppvyLZY;f5|kc}?e1hUCx zn?W|a>&J#9fvENw_Qt zl5|-LB;_&-#B$j%$gs;sKt^1)9b~)9Y!KUJJ3w~0Y$wQ0m!(0{F3W&qT$TmNx-18h zb6FlF@3LJWyIfWPDY&c%QgoRE;<&5?QgYcS$f(P9gY0(M9*{jQ8v_}0*<6-0!jnKpt?}gCGyO z>>-ecT(%EnpUWNwdDvx-fIQ-|M?oHS*<&D&x$JR}$6fXW$P+Gm668sjJq7ZV%bo^# z+GWpxJma!wL7sKlb0E*T?0JyqUG@?hGhVvSe2BelnM?n%mvchDy~1U$blIzj`RZ== z8unU}eI5OCN)H!euV-&yZ&dOw1|0PtdlQDC$Jx~7?9EX078--zs(ARrRPj5TCirio z!Aa*&llv^1oYVO;B>yPEe-{maI{zripDFn7 zrjb$S&y@UGg8v>GGIjne$)7Fw@1?O+=g*e>qXqwcG|1}wqb2_s!GAxEzB>OH$v;-` zKS0B>&OcW2j}!b4(s-@&kCXi41^+`dkn8;8CI1A$|1gd4I{yU8KT+^MLPNjKKT+~e z68w+SoS^ehlKeS>|1p{@bp9O4KUwfUPP2&4KUwlm5&Tck^rG`mk^EBy|C2QD==@V9 z|1`n>6irAv|1`-zUGP6mGnLLiUGnD&{%2?k)A@5H{|v$ZEIY%?KSS~x1^;t2>FJ+u zl>9RV|MN5(>ijb$|181(0!@=T|18NrTkyX~^QX=~Tk_8l{4deOs`Jm0{Bs5W%QWNa z{BtG$Ji-48O~pF@Jjp*_@V`oPw9Y?Y@-GnluhHbK^DmJ6d4m6Sn$>mwJjtIg_}`%E zUgyu3`~`ylP4WYD{sPI53I4apLD2az$zLe=-zLvN=P#7}Cc*y>xfD9TN%ETo|GVUC z==^5MZxQ_OkrSfxTO_|#@V`&qiOz48{5HY=0l6(YzfJPn1^HJQ~Uo7}PC7(&>FP8izg8wsergZ)i$-hwWe@dByBUe@Duaf*;!5=3dR_FIh{$+yy z7jkZO{$-NCTJX8otMgY&{u;sm4|0cf{u;?&EBOCOezMMAEBWgL|G&tA*7@rsf4$)U zl{{;mzh3hD1pja3a_js)$-i9i|4zQR&c9sp`vw2M$w}Aw{gOW*`2Qg9UFQ!-{-EIh zliYfpKPdSd1pi;;@9X>xlD|>#|A!U=I)9_&Zxa0fr4@qC-z52)Ie*+RY3-m3Y?cC7 z2m#ZiRfR5ag%sE#1R6|QZ|DMBq`;Lz;1H8mBD%npQea339BR@UMHd*70#^xv!%SMe z=mJ+sfvrN|aFf(rQc>u%y7S5ID-Db($_P zECoh{z)X`?aJs;V6xc2VW|_3M(*?Fm0b2;nHfhzT3)oU%hY&d0r1hXKutN&$6avSX zv{KXsc1nS?5IEMPHKZ<(mI4_eaGXi2OI;u%1+qfmc$3zhxjHbEz?cv? z!=zQYE-)qq_6mVUlh*6Hz+NeEjSx7~q?NobaE%nWRtTJB(i&eExK;{WCj`zmY4xuQ zTqgyt7Xs&)v@f6wTrUM~5CZ3#v}2$P+#m&R6awd&w3na@+$aTZ5(4L&w9B9i+$05V z76KQTwEv(B+$;rd5d!l}+L_P=Zjl1F3W511?OEsow@QKAgunumb~AK=+oZtlLLg?+ zK8G%FyA-%X2rM*d2SgXRLkip}1e#3R8_@;slmd4Nfo79-O>}{~q`=)mpv9#96kXtM zDR7SvXf6AwA-W$JSqhq69N~Tv=5~VJSGJm7Xp`mwfUAJ5 zz&7A&APyveB#;6uU>FzywgWb>1K0_qfeerZazGx~1r&fH-~c6H6xa>y0mgv6z%{_N zz;(d&zzx8Sz)ir-z%9V7z-_?oz#YJyz+J%Iz&*gdz?*~2rd=U5$@L}L1z(;|P0UrlG0elkp6!2-_ zGr(to&jFtYz5sj?_!97C;48pafv*8y2fhJ(6ZjVJZQwh=cY*H#-v@pG{1EsN@MGX7 zz)yjn0Y3+R0sIp974U1|H^6U!-vPe|{s88`WhVdgC#%DB)AJs5Evtbopl35Mov*~yGKR$4D!}u``E@?33vj&`m#erkh$u!bFNtmLOo9;jiz zZ1O;D@<46!Kn*Uzfgh+nIC)$~ju4y8{UkPdTy~PzO*~2Zk#j`*Odgj_9+!ER5tGMd z`~_i?$7TGw#pH3>lgDME9VU;j0!RWW zzygMW5nwxD13Q47KpMyZSs(}Gfn7iWC;|>p0!D$|z#d=>*b7_(Tnk(WTo2p;+z8wR z+zi|T+zQ+V+z#9U+zH$T+zs3V+zZ?X+z&heJP14l>;oPK9swQ&9s?c+o&cT%o&uf* zo&lZ(o&%l-UIM%ncp30=;1$3tfmZ>q23`Za7I+=-df*Mf8-X_gZwB51ycKvG@OI!G zz&n9=0q+Lh1H2b_AMk$Q1HcD?4*?$rJ_39c_!#hU;1j?nflmRS20jCP7Wf?SdEg7c z7lAJUUk1Jcd=>Z_@O9uDz&C+!0pA9`1AG_w9`JqO2fz=39|1oGeggay_!;nX;1|Fz zfnNc?27Uwl7Wf_Td*BbiAAvsse+C#Z4*UghfzukqQQ7IBf5pH52K*hEi+}$E^bF8{ zfxh@r*+b)vbo|ApjGx(nU+Moi{W^=Eex2PgehyB*@TUoKj=9NWL=O>9ify*slL&3}1EznM4Rd~@Gu=bR_)TW8Y} zuXdp2Ewr?vx}dZ+P+VJ5R9jM0QdAx&^cNLOE-dqxmRA>-78KRgmev;46xRfbYYO~j zh2>?Fs*B3Ys|zQW6xI}$meiKCG%pJmlrD>AIj{Jl8!B&v>T)`tphB*6XwWx0UB^^bKZu)YXBz zevZeJ%jwVQ#p68g2XF>*25|;+hH$)`p`2ly;hcQV2+l~(D9&ik7|vMEI1X_wneWH_ zcp=IVBuHLrx z+{An2m&H;< z9-xZ+|224tXDK%iaO6{2Ccm{@d3hcWJO@E=&;e;Td!l12H6y*1?zEwkFM&=8WN?>} zh(7sFPFheVKi*0$_{6M)T!?bThS&Z=ja|uL0jgZvj37zJ+W7egnRZ904H% zzJopjA_jaHeFek}_#XNRh#T;IILj=SP_zAoM=vHbUKgCc1UITuHVFG*xT*hz#egm!`UqHx!7cfFV z#DJ?9DIjLRix?#!ZotnmS^(Wn?c*hk5#Tl87Z@wRXTUX#6W}-CWsDaPGT=HU2#6SP z0}}I0U-l^ixL451Ad26 z0Wkx9k1_#q1O9+=0dzODk3V9H0Ivam!c+l11LBw_z;D2xFh#2rM%oPwb z;7!aE5I5j0%ojlSQ~P)u3j}x#02T`H8Q@}(0KWn6V6lLZ0SPP-5HaB2SSlc9z<=<7 zfVctgVi|+eM5%qehvfpi2HeDh0(=I%j}Hj&8*mFB6c94tHa;XEV!$1&5D=s6pn6;0 z#X}6*y?-Cl@7I-T{vKA^^DFiIDm8x}tL*tzdVY0s-t`bx+rnxk1hGaLL|9`RYjlaV zN^l5kZDFkz)+wO_VVy0k)53Zsq!HHJ!umuosbGULIubV6#s*!&uY`1h-xmB@s8&KJ zLbWYaYhj}jG6);n2~+rQ*G6sBC?k_l)6QU_MhgKYbS4B?2yb{TyPG0i2(>~&hIA!- zm`U3;Cw0bdH^Req-G_DEI#s1Rq0ScSw6IADJqVj@VUrd%D z^H{=1g+vS)NB9_%HaFcI^LWDJcHPHy-6N{*1i}$pIHHB4N|;DEY70lTa7+o42*+&U z7z@c`KCX<(gyXhxT$ebZgaX0|TR5SGlS(KgoV10LT6jVUMT93TA;{z8g=S?G6Phi9 zhe~KsLJ6V87Fx8>s)SNPt1Yx@A*_TlLO3PpV-9QMlrqW*r&308hKH&@t%NCr(=3FW z-%K6zRKk-&E*Ub7(8i>VGR-khCp=}>eM;9oqw3BeoUw&7S~#nOnS`^pa8?WFlu$u9 zXA9?8NFMWfW%vl^ZR5NyaX|^Q2p4SOf)d=>l>F+)|DZkXR#L*9Lv9thbD7?`R`)(txgLi*`60)39Jhnx zra5j$Cm|@^aXUF~hT~>BZf9q%JiUwKc9ntr@QQAZ+ud<{IBpiNVARubdpT}zSuw=T Yc3SBaub7uexH-wTPqOVR?STXT1$#z(ZU6uP diff --git a/MatrixDotNetLib/.vs/MatrixDotNetLib/v16/.suo b/MatrixDotNetLib/.vs/MatrixDotNetLib/v16/.suo index 270ee9507648772eb90ad473b280adbecac1666e..a503216a2e1a89e842eae85409299a2df5574515 100644 GIT binary patch literal 43520 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 J^}<-J002HJxI+K{ delta 51 dcmbQw+RHdWL$H$p4NTlGKJlHV2%0FE3joDL1*iZ3 diff --git a/MatrixDotNetLib/MatrixDotNetCmd/obj/Debug/netcoreapp3.1/MatrixDotNetCmd.csprojAssemblyReference.cache b/MatrixDotNetLib/MatrixDotNetCmd/obj/Debug/netcoreapp3.1/MatrixDotNetCmd.csprojAssemblyReference.cache index 1c77b69657c69d0c5a93c0b5bcad81884198834c..a87cc1607bb1049f939c8b7913269c2cff2fca8f 100644 GIT binary patch literal 5608 zcmeHL&yy2H6rN5plj&I`K$VD!x}sL8Y)z6{!on&=t-GwC?1F^iAd9gx>15lT%%o;| zR@Mt%{8zmBqb#qU^`aN0O1G%5ed*6HA(*`pP z<1ZrogZAWzy|<#gD2&6lcHc;p-*PXDcq4Wf!${6dUy)I)!r)Z3=2qQ`TbY?&OnjY0 z@>C!b9SMJC`eM@bmG`#Xx*TrE;8e3R+pe|e+SO{SRuQwp#AMIkeUAE8tYx>Zg_an_ z+sc>eQ~q%O6bo70by!*+YrJwC|@tit17Q?5AS$l{%o5u*|vz6KE zNyZ;T?_Oe4?&_J#NQi}A&ni)eVM2CSi#PzObrCPD76MvauD6lzZRk8X%WV6i6BoT+ zA|h`cV;0ZlJXNH|`hwr#G$h5Hw!N?=n*^KUhTQ526`3Ng>!_&WI{f88vX?B760W-4 zB+V5&l3fCVY#A(9M7kLHJj-GEIhGr7kZm)&ww-uETXm91AosGcC>dwXt+RdW!bs`$ z?(6p}H3&t2J*ugErMDPkX}GL?WL0Sd_72}qy&T>H!EkniSm8F+vHxZ)bQCv{=8cA7 z7d|Fsw@BIlTf+{Wn8A9SSQj}lUoMxI=F9!GE|0A5p3julGNqCZ8o(rTnT6K`CSn+g>HqBao#4QFFh1C;<4P>umHP>$EbwC6BAt#0FWc#}iw z-s_I!?MX9igU)44S~p?>v~z=23^&3xtLP;~C=c7wH9miC9K`i2X{4+J@LK;}Cn9 zhMTC*6NpV9)~{f%5E>2*Ahx6geXqn?d9j-wL>&Gqz2--WWz+}SPs2d_aU5ta4L5NH zm;h}8v_81Ydo8 z)d&rxK_R1i6!)ywJ%=BsUOq=GqdvaA8^+hSS`_gMs^n^zr?6gvQ?7rwO7dV+99Ae{m4C1f#|BVuk zD?2@jvrFbloPje>G8|FhP0$?$*oJm0z@Bth1=xDV6`;*#uC%Q~`NCv}f GZ0c{5c%Pa8 delta 29 fcmaE%y@GjzKO>VF Server = new Dictionary() + { + { "discovery", "/.well-known/matrix/client" }, + { "versions", "/_matrix/client/versions" }, + { "capabilities", "/_matrix/client/r0/capabilities" }, + { "whois", "/_matrix/client/r0/admin/whois/{uid}" }, + { "search", "/_matrix/client/r0/search" }, + { "usersearch", "/_matrix/client/r0/user_directory/search" }, + { "roomlist", "/_matrix/client/r0/publicRooms" }, + { "managerooms", "/_matrix/client/r0/directory/list/appservice/{networkId}/{roomId}" }, + { "upgraderoom", "/_matrix/client/r0/rooms/{roomId}/upgrade" }, + { "openid", "/_matrix/client/r0/user/{userId}/openid/request_token" }, + { "voip", "/_matrix/client/r0/voip/turnServer" } + }; + + public static Dictionary Key = new Dictionary() + { + { "latest", "/_matrix/client/r0/keys/changes" }, + { "claim", "/_matrix/client/r0/keys/claim" }, + { "download", "/_matrix/client/r0/keys/query" }, + { "upload", "/_matrix/client/r0/keys/upload" } + }; + + public static Dictionary Device = new Dictionary() + { + { "manage", "/_matrix/client/r0/devices" }, + { "multidelete", "/_matrix/client/r0/delete_devices" }, + { "send", "/_matrix/client/r0/sendToDevice/{eventType}/{txnId}" } + }; + + public static Dictionary Media = new Dictionary() + { + { "config", "/_matrix/media/r0/config" }, + { "save", "/_matrix/media/r0/download/{serverName}/{mediaId}" }, + { "saveas", "/_matrix/media/r0/download/{serverName}/{mediaId}/{fileName}" }, + { "preview", "/_matrix/media/r0/preview_url" }, + { "thumb", "/_matrix/media/r0/thumbnail/{serverName}/{mediaId}" }, + { "upload", "/_matrix/media/r0/upload" } + }; + + public static Dictionary Notifier = new Dictionary() + { + { "notifiers", "/_matrix/client/r0/notifications" }, + { "pushers", "/_matrix/client/r0/pushers" }, + { "set", "/_matrix/client/r0/pushers/set" }, + { "rules", "/_matrix/client/r0/pushrules/" } + }; + + public static Dictionary NotifierRule = new Dictionary() + { + { "manage", "/_matrix/client/r0/pushrules/{scope}/{kind}/{ruleId}" }, + { "actions", "/_matrix/client/r0/pushrules/{scope}/{kind}/{ruleId}/actions" }, + { "toggle", "/_matrix/client/r0/pushrules/{scope}/{kind}/{ruleId}/enabled" } + }; + + public static Dictionary User = new Dictionary() + { + { "thirdparty", "/_matrix/client/r0/account/3pid" }, + { "deactivate", "/_matrix/client/r0/account/deactivate" }, + { "password", "/_matrix/client/r0/account/password" }, + { "register", "/_matrix/client/r0/register" }, + { "whoami", "/_matrix/client/r0/account/whoami" }, + { "profile", "/_matrix/client/r0/profile/{userId}" }, + { "avatar", "/_matrix/client/r0/profile/{userId}/avtatar_url" }, + { "displayname", "/_matrix/client/r0/profile/{userId}/displayname" }, + { "extrainfo", "/_matrix/client/r0/user/{userId}/account_data/{type}" }, + { "eventfilter", "/_matrix/client/r0/user/{userId}/filter" }, + { "rooms", "/_matrix/client/r0/joined_rooms" }, + { "login", "/_matrix/client/r0/login" }, + { "logout", "/_matrix/client/r0/logout" }, + { "status", "/_matrix/client/r0/presence/{userId}/status" } + }; + + public static Dictionary UserRoom = new Dictionary() + { + { "extrainfo", "/_matrix/client/r0/user/{userId}/rooms/{roomId}/account_data/{type}" }, + { "tags", "/_matrix/client/r0/user/{userId}/rooms/{roomId}/tags" } + }; + + public static Dictionary Room = new Dictionary() + { + { "create", "/_matrix/client/r0/createRoom" }, + { "aliases", "/_matrix/client/r0/rooms/{roomId}/aliases" }, + { "active", "/_matrix/client/r0/rooms/{roomId}/joined_members" }, + { "members", "/_matrix/client/r0/rooms/{roomId}/members" }, + { "messages", "/_matrix/client/r0/rooms/{roomId}/messages" }, + { "join", "/_matrix/client/r0/join/{roomIdOrAlias}" }, + { "ban", "/_matrix/client/r0/rooms/{roomId}/ban" }, + { "forget", "/_matrix/client/r0/rooms/{roomId}/forget" }, + { "invite", "/_matrix/client/r0/rooms/{roomId}/invite" }, + { "idjoin", "/_matrix/client/r0/rooms/{roomId}/join" }, + { "kick", "/_matrix/client/r0/rooms/{roomId}/kick" }, + { "leave", "/_matrix/client/r0/rooms/{roomId}/leave" }, + { "unban", "/_matrix/client/r0/rooms/{roomId}/unban" }, + { "marker", "/_matrix/client/r0/rooms/{roomId}/read_markers" } + }; + + public static Dictionary RoomEvent = new Dictionary() + { + { "context", "/_matrix/client/r0/rooms/{roomId}/context/{eventId}" }, + { "event", "/_matrix/client/r0/rooms/{roomId}/event/{eventId}" }, + { "receipt", "/_matrix/client/r0/rooms/{roomId}/receipt/{receiptType}/{eventId}" }, + { "redact", "/_matrix/client/r0/rooms/{roomId}/redact/{eventId}/{txnId}" }, + { "send", "/_matrix/client/r0/rooms/{roomId}/send/{eventType}/{txnId}" }, + { "typing", "/_matrix/client/r0/rooms/{roomId}/typing/{userId}" }, + { "flag", "/_matrix/client/r0/rooms/{roomId}/report/{eventId}" } + }; + + public static Dictionary RoomState = new Dictionary() + { + { "list", "/_matrix/client/r0/rooms/{roomId}/state" }, + { "state", "/_matrix/client/r0/rooms/{roomId}/state/{eventType}/{stateKey}" } + }; + } + + class HotDamn + { + public void testfunc() + { + // the avatar + string Avatar = MatrixApis.User["avatar"]; + } + } +} diff --git a/MatrixDotNetLib/MatrixDotNetLib/MatrixClient.cs b/MatrixDotNetLib/MatrixDotNetLib/MatrixClient.cs deleted file mode 100644 index f9b8357..0000000 --- a/MatrixDotNetLib/MatrixDotNetLib/MatrixClient.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System; - -namespace MatrixDotNetLib -{ - public class MatrixClient - { - - } -} diff --git a/MatrixDotNetLib/MatrixDotNetLib/MatrixDotNetLib.csproj b/MatrixDotNetLib/MatrixDotNetLib/MatrixDotNetLib.csproj index cb63190..a20524d 100644 --- a/MatrixDotNetLib/MatrixDotNetLib/MatrixDotNetLib.csproj +++ b/MatrixDotNetLib/MatrixDotNetLib/MatrixDotNetLib.csproj @@ -4,4 +4,8 @@ netcoreapp3.1 + + + + diff --git a/MatrixDotNetLib/MatrixDotNetLib/MatrixError.cs b/MatrixDotNetLib/MatrixDotNetLib/MatrixError.cs new file mode 100644 index 0000000..fe43666 --- /dev/null +++ b/MatrixDotNetLib/MatrixDotNetLib/MatrixError.cs @@ -0,0 +1,28 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Text; + +namespace MatrixDotNetLib +{ + public class MatrixError + { + /// + /// Gets or sets the error code (required) + /// + [JsonProperty("errcode")] + public string ErrorCode { get; set; } + + /// + /// Gets or sets the friendly error message (optional) + /// + [JsonProperty("error")] + public string ErrorMessage { get; set; } + + /// + /// Gets or sets the delay in milliseconds (optional) + /// + [JsonProperty("retry_after_ms")] + public Int32 RetryDelay { get; set; } + } +} diff --git a/MatrixDotNetLib/MatrixDotNetLib/MatrixLoginFlows.cs b/MatrixDotNetLib/MatrixDotNetLib/MatrixLoginFlows.cs new file mode 100644 index 0000000..7d51a0c --- /dev/null +++ b/MatrixDotNetLib/MatrixDotNetLib/MatrixLoginFlows.cs @@ -0,0 +1,14 @@ +using Newtonsoft.Json; +using System; + +namespace MatrixDotNetLib +{ + public class MatrixLoginFlows + { + /// + /// Gets or sets the array of available login types + /// + [JsonProperty("flows")] + public MatrixLoginType[] LoginFlows { get; set; } + } +} diff --git a/MatrixDotNetLib/MatrixDotNetLib/MatrixLoginIdentifier.cs b/MatrixDotNetLib/MatrixDotNetLib/MatrixLoginIdentifier.cs new file mode 100644 index 0000000..88a0ed5 --- /dev/null +++ b/MatrixDotNetLib/MatrixDotNetLib/MatrixLoginIdentifier.cs @@ -0,0 +1,22 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Text; + +namespace MatrixDotNetLib +{ + public class MatrixLoginIdentifier + { + /// + /// Gets or sets the login identifier type (required) + /// + [JsonProperty("type")] + public string IdType { get; set; } + + /// + /// Gets or sets the username (required if IdType is m.id.user) + /// + [JsonProperty("user")] + public string User { get; set; } + } +} diff --git a/MatrixDotNetLib/MatrixDotNetLib/MatrixLoginRequest.cs b/MatrixDotNetLib/MatrixDotNetLib/MatrixLoginRequest.cs new file mode 100644 index 0000000..0af05b6 --- /dev/null +++ b/MatrixDotNetLib/MatrixDotNetLib/MatrixLoginRequest.cs @@ -0,0 +1,49 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Text; + +namespace MatrixDotNetLib +{ + public class MatrixLoginRequest + { + /// + /// Gets or sets the client device ID (optional, auto-generated if null) + /// + [JsonProperty("device_id")] + public string DeviceId { get; set; } + + /// + /// Gets or sets user identifier as string (optional) + /// + [JsonProperty("identifier")] + public MatrixLoginIdentifier Identifier { get; set; } + + /// + /// Gets or sets the device display name (optional, ignored if device is known) + /// + [JsonProperty("initial_device_display_name")] + public string DeviceName { get; set; } + + /// + /// Gets or sets the password (required if type=m.login.password) + /// + [JsonProperty("password")] + public string Password { get; set; } + + /// + /// Gets or sets the login token (required if type=m.login.token) + /// + [JsonProperty("token")] + public string Token { get; set; } + + /// + /// Sets the static dictionary of login types (required) + /// + [JsonProperty("type")] + public string LoginType { get; set; } + + + } +} diff --git a/MatrixDotNetLib/MatrixDotNetLib/MatrixLoginResponse.cs b/MatrixDotNetLib/MatrixDotNetLib/MatrixLoginResponse.cs new file mode 100644 index 0000000..26aadf4 --- /dev/null +++ b/MatrixDotNetLib/MatrixDotNetLib/MatrixLoginResponse.cs @@ -0,0 +1,34 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Text; + +namespace MatrixDotNetLib +{ + public class MatrixLoginResponse + { + /// + /// Gets or sets the access token (optional) + /// + [JsonProperty("access_token")] + public string Token { get; set; } + + /// + /// Gets or sets the device ID (optional) + /// + [JsonProperty("device_id")] + public string DeviceId { get; set; } + + /// + /// Gets or sets the user ID (optional) + /// + [JsonProperty("user_id")] + public string UserId { get; set; } + + /// + /// Gets or sets client configuration (optional) + /// + [JsonProperty("well_known")] + public MatrixUserServers KnownServers { get; set; } + } +} diff --git a/MatrixDotNetLib/MatrixDotNetLib/MatrixLoginType.cs b/MatrixDotNetLib/MatrixDotNetLib/MatrixLoginType.cs new file mode 100644 index 0000000..3c61884 --- /dev/null +++ b/MatrixDotNetLib/MatrixDotNetLib/MatrixLoginType.cs @@ -0,0 +1,13 @@ +using Newtonsoft.Json; + +namespace MatrixDotNetLib +{ + public class MatrixLoginType + { + /// + /// Gets or sets the login type + /// + [JsonProperty("type")] + public string LoginType { get; set; } + } +} diff --git a/MatrixDotNetLib/MatrixDotNetLib/MatrixSessionManager.cs b/MatrixDotNetLib/MatrixDotNetLib/MatrixSessionManager.cs new file mode 100644 index 0000000..8ca2add --- /dev/null +++ b/MatrixDotNetLib/MatrixDotNetLib/MatrixSessionManager.cs @@ -0,0 +1,55 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Net; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Reflection.Metadata.Ecma335; +using System.Text; +using System.Threading.Tasks; + +namespace MatrixDotNetLib +{ + public class MatrixSessionManager + { + public MatrixLoginResponse Login(string server, string user, string pass, string device = "") + { + MatrixLoginIdentifier userId = new MatrixLoginIdentifier() + { + IdType = "m.id.user", + User = user + }; + + MatrixLoginRequest theRequest = new MatrixLoginRequest() + { + Password = pass, + Identifier = userId, + LoginType = "m.login.password" + }; + + if (device.Length > 0) + { + theRequest.DeviceId = device; + } + + // create a web request + string loginUrl = "https://" + server + MatrixApis.User["login"]; + + // serialize object into JSON + string requestJson = JsonConvert.SerializeObject(theRequest); + + HttpContent requestContent = new StringContent(requestJson, Encoding.UTF8, "application/json"); + + HttpClient client = new HttpClient(); + client.BaseAddress = new Uri(loginUrl); + client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + + HttpResponseMessage responseMessage = client.PostAsync(loginUrl, requestContent).Result; + string responseString = responseMessage.Content.ReadAsStringAsync().Result; + + MatrixLoginResponse response = JsonConvert.DeserializeObject(responseString); + + return response; + } + } +} \ No newline at end of file diff --git a/MatrixDotNetLib/MatrixDotNetLib/MatrixUser.cs b/MatrixDotNetLib/MatrixDotNetLib/MatrixUser.cs new file mode 100644 index 0000000..b4de1c4 --- /dev/null +++ b/MatrixDotNetLib/MatrixDotNetLib/MatrixUser.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Newtonsoft.Json; + +namespace MatrixDotNetLib +{ + public class MatrixUser + { + /// + /// Gets or sets user id as a string + /// + [JsonProperty("user_id")] + public string userid { get; set; } + + /// + /// Gets or sets access token as a string + /// + [JsonProperty("access_token")] + public string token { get; set; } + + /// + /// Gets or sets home server as string + /// + [JsonProperty("home_server")] + public string server { get; set; } + + /// + /// Gets or sets device id as string (optional) + /// + [JsonProperty("device_id")] + public string deviceid { get; set; } + } +} diff --git a/MatrixDotNetLib/MatrixDotNetLib/MatrixUserServer.cs b/MatrixDotNetLib/MatrixDotNetLib/MatrixUserServer.cs new file mode 100644 index 0000000..68f45a7 --- /dev/null +++ b/MatrixDotNetLib/MatrixDotNetLib/MatrixUserServer.cs @@ -0,0 +1,13 @@ +using Newtonsoft.Json; + +namespace MatrixDotNetLib +{ + public class MatrixUserServer + { + /// + /// Gets or sets the server URL + /// + [JsonProperty("base_url")] + public string BaseUrl { get; set; } + } +} diff --git a/MatrixDotNetLib/MatrixDotNetLib/MatrixUserServers.cs b/MatrixDotNetLib/MatrixDotNetLib/MatrixUserServers.cs new file mode 100644 index 0000000..93e69fd --- /dev/null +++ b/MatrixDotNetLib/MatrixDotNetLib/MatrixUserServers.cs @@ -0,0 +1,22 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Text; + +namespace MatrixDotNetLib +{ + public class MatrixUserServers + { + /// + /// Gets or sets the home server + /// + [JsonProperty("m.homeserver")] + public MatrixUserServer HomeServer { get; set; } + + /// + /// Gets or sets the identity server + /// + [JsonProperty("m.identity_server")] + public MatrixUserServer IdentityServer { get; set; } + } +} diff --git a/MatrixDotNetLib/MatrixDotNetLib/bin/Debug/netcoreapp3.1/MatrixDotNetLib.deps.json b/MatrixDotNetLib/MatrixDotNetLib/bin/Debug/netcoreapp3.1/MatrixDotNetLib.deps.json index 5716fa0..07a0d80 100644 --- a/MatrixDotNetLib/MatrixDotNetLib/bin/Debug/netcoreapp3.1/MatrixDotNetLib.deps.json +++ b/MatrixDotNetLib/MatrixDotNetLib/bin/Debug/netcoreapp3.1/MatrixDotNetLib.deps.json @@ -7,9 +7,20 @@ "targets": { ".NETCoreApp,Version=v3.1": { "MatrixDotNetLib/1.0.0": { + "dependencies": { + "Newtonsoft.Json": "12.0.3" + }, "runtime": { "MatrixDotNetLib.dll": {} } + }, + "Newtonsoft.Json/12.0.3": { + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "assemblyVersion": "12.0.0.0", + "fileVersion": "12.0.3.23909" + } + } } } }, @@ -18,6 +29,13 @@ "type": "project", "serviceable": false, "sha512": "" + }, + "Newtonsoft.Json/12.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6mgjfnRB4jKMlzHSl+VD+oUc1IebOZabkbyWj2RiTgWwYPPuaK1H97G1sHqGwPlS5npiF5Q0OrxN1wni2n5QWg==", + "path": "newtonsoft.json/12.0.3", + "hashPath": "newtonsoft.json.12.0.3.nupkg.sha512" } } } \ No newline at end of file diff --git a/MatrixDotNetLib/MatrixDotNetLib/bin/Debug/netcoreapp3.1/MatrixDotNetLib.dll b/MatrixDotNetLib/MatrixDotNetLib/bin/Debug/netcoreapp3.1/MatrixDotNetLib.dll index 7fc63ab0cec51ac076d63ea013557458f24df019..6de0af9f9f0af36de24b3bc9838294453657e931 100644 GIT binary patch literal 18432 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 diff --git a/MatrixDotNetLib/MatrixDotNetLib/bin/Debug/netcoreapp3.1/MatrixDotNetLib.pdb b/MatrixDotNetLib/MatrixDotNetLib/bin/Debug/netcoreapp3.1/MatrixDotNetLib.pdb index 92662720bfd3f053c07d19268878fe8b58b32ee2..1eceee0422d910a72543d66f76872a05a17791f0 100644 GIT binary patch literal 3364 zcmZ8j3s6+o89wLk-Gvo*L0KL_k;{91u*yS?4-!Bg0Thr0d`03eTy%BWU3V`CY8qf& zFx9CVE7ZivnAkcvBa|51YBLdHv`$RYl2jYpG^XPW)kK?GW2%`kGyVU2cJ-up=G*^# z=R4>B|8vjz&)p(xMG+;G;4>LeQ(PpqXIti}9YjZVLZcawTGMRDzJCDHw7`Eth^QmP z13cBLcpa{dK4=mJ`b6xjw~`KMqodTa`toA1gTQwJQj45!be5hnVd# zz4+`>eWJfyz$5^UM_-LFs|8v&!QKU1O(|JT1#%SZ39ygAY6XED5GZ*StWHBoq(&fj zz zZw=|B8q%eXUNAijI2;++3C7`A5bO(a zY-3-DV;j#yh@+1C8{(+rIS+Bv@qC3i>X95rJ&NO~PvJP~m@_}$#BtPPIF9pUIgWZ9 z$5F?#9P)?yQyfPRG>)U5 z&T-T;IF5QI$5A(P9Q9coM}0QOQO|-C5{myV@VS79;Q7Gucn^d)j?d;e>Ny-o9q)k9 zc+~Saj{1C#qrQOSs6Wkd)E99a^(7ofeJRIL&*wPm&u|=dd`i?`tN}{w@GGdR)TpsU zVuc&pU)oMtaTCb$dCwt4AiC6Y{+%BKI zLiYJ=8|BCRaf99S#OdDXaMgRA(7&}!_9+!Uw~G|E+Z3CZG&vozO9?5<+%5&FvPrIG zV6*!)Iyog+0GuQ9(gLjkIISH}{X!4PV*6_O;d<4>W)4TYDy7 zx6}X8p11G*wl%C^FKnGb)a$!0>cknON-IW@{BY4oJUY=7q)|Y-9*SZbnG+>WhNd2x zUEQJ>OQK-==u3J^W{KfZgbJMk%`vh(O1xgT7ZM3)iF93)s>WuXyLG+v>e-{Z^sk2O zan~G`>(9MAGA*)Bd#~e*V4UtH zlEF0bRL82bv!?%0-G1?0#W%4dM+z26{hF~v*Q1=2*XO9dCeLLiFP`&N-V9soXmQ9~ z;@y4HrHY|j3E%ZBuD|f#QQw{8t#PFT57wMGSZO$%J?}>G7yDFCMv0kp)tF{5lN!Uh z4;~mU*?&rpcAES5O<#Z5pS#KZe&3wYOzq%k;~TCs$KTps{j#Uwrs^g#g_%s%#N;yb zv}&fMF*8#&$!ugY8=0A;c4o36S?u*?nPY#H6RVIXN%d@(#t-+Ox;c9NmTC1XYfK;S z|NHUe^DBQbyglxcV2tT28=I_pH8ST$=G?>rn^@ok_A(OK%aF3w3DSb8T;RG+kIV)A zR%)1KE?Jc|{I7=5{Dzi;dzPl{s=dD?fA{UQuQhr1D}{K~M+93#ggLTG-ljmQxLXtp zR_ml-sX#46K51H>Qxs3!|8dK6vaMP6`ci`ZwQ@_a@GL82#nuc}Zz*YNwdLl{j|~o~ z+vJ5g@Q=_^XY+0G#Z&(?YB~C=sDBOhJE*^#rc(bevGN=Mgt%xLcAb$2h+o8yZtiQnIDglmmP>8U6R;R#wOw-gd<#P7QZ zx(KaIff$KRfbZpM5kBgb0*NMe5&k|ziExj? zv?Q8AyT)nH658`S>eo~MHo9vK-F1ov5`^v}u{3yz)Wh}pWOH^Mk}RLr47N6#fAwO2 zw(siD)TTWj#+VMB@>XAZG+^p_)iA7Xj)|QJ6FU(SI}uW5uv*clRra?3$n#fH-PZ3r ze*WQ4f3tI8a?4t2eNN8Jngi<&jU7L`Z)>#QJmX8Y?a9n!nAi(`;)^T&zR6gD}(J=cK}(IceS`7kdfW7z0tjKy@|cEr3?A~ l;!iTO+IH_v*>_&r{ipZ#8XC=o(eICKU%d2M)qmEJ{{gfVe>VUC delta 345 zcmZ1?^@3%BO1%RE1A}rvN)nJ_*aO5KAbuSK0}CS%gV@0(MVWc&#Xu$l2TUw9n1Kh# zRshMnhkCjIX&oTn28flNa`HijeZG28QAAqVr~kv28|HH>l5S7Q#YETFy6IZn)X-d@>WS F5&-m)MPmQ} diff --git a/MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.assets.cache b/MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.assets.cache index 397f12981aa86c4bf1011ab7501837ccabf59e79..baf317b5bd27f5c97a43fd83d6cafdf91690fd4b 100644 GIT binary patch literal 671 zcmWIWc6a1rU|_gkToC6s_nq?D&DUnm{WfEcU8Cz3Denx9cT#f``F}=Oon!IL0|AF|#N&MlY{4J+&mJATc>RF+H_7CNH(TBtNe>KdnSBt2jR|#?VO5 zK+iZPCo>5sRZ?7%n3s}RlmZlt@k6Ne0;<$Y$;n|wvWW@EW(HywAO?xE0Wru0>_7|> zM+YD|el#;dYCz%&gj@|$2m-YCA_v4GuuX)#2vW-l#Gr`c24Wr{<^^J8zz5{;`IWk- zmIOeez%vCs6oiqb!+>#@nV-i7i5K30#F7lpJg8PRU@YmQ#*#i-h=O8?8>-wdF*lVD z%7z-t=~!HxS`t!Okjh?EnpcvUo66~&Ur_0jpPZP(Qc_f!D&&${T#}iWSORoIaA^|A JdSNV9000D{w^;xH delta 89 zcmbQw+RJDe;O*|n#lXODaK>>nVJ3x30Y7eUdva%?nkq}ZWx1YKO-$X9>A#KEGIs*i Rpn!?{#V5Yg6hRS#asbr36+i$0 diff --git a/MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.csproj.CoreCompileInputs.cache b/MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.csproj.CoreCompileInputs.cache index 4bda63d..143c214 100644 --- a/MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.csproj.CoreCompileInputs.cache +++ b/MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -bebfa3bded4fe686bd663f099492d7164d88fe28 +f16bca70409c8e2ae88277b1bedf2f151bb03767 diff --git a/MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.csproj.FileListAbsolute.txt b/MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.csproj.FileListAbsolute.txt index 56057c6..b8f2a01 100644 --- a/MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.csproj.FileListAbsolute.txt +++ b/MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.csproj.FileListAbsolute.txt @@ -2,8 +2,8 @@ D:\Source\MatrixDotNetLib\MatrixDotNetLib\MatrixDotNetLib\bin\Debug\netcoreapp3. D:\Source\MatrixDotNetLib\MatrixDotNetLib\MatrixDotNetLib\bin\Debug\netcoreapp3.1\MatrixDotNetLib.dll D:\Source\MatrixDotNetLib\MatrixDotNetLib\MatrixDotNetLib\bin\Debug\netcoreapp3.1\MatrixDotNetLib.pdb D:\Source\MatrixDotNetLib\MatrixDotNetLib\MatrixDotNetLib\obj\Debug\netcoreapp3.1\MatrixDotNetLib.csprojAssemblyReference.cache -D:\Source\MatrixDotNetLib\MatrixDotNetLib\MatrixDotNetLib\obj\Debug\netcoreapp3.1\MatrixDotNetLib.csproj.CoreCompileInputs.cache D:\Source\MatrixDotNetLib\MatrixDotNetLib\MatrixDotNetLib\obj\Debug\netcoreapp3.1\MatrixDotNetLib.AssemblyInfoInputs.cache D:\Source\MatrixDotNetLib\MatrixDotNetLib\MatrixDotNetLib\obj\Debug\netcoreapp3.1\MatrixDotNetLib.AssemblyInfo.cs D:\Source\MatrixDotNetLib\MatrixDotNetLib\MatrixDotNetLib\obj\Debug\netcoreapp3.1\MatrixDotNetLib.dll D:\Source\MatrixDotNetLib\MatrixDotNetLib\MatrixDotNetLib\obj\Debug\netcoreapp3.1\MatrixDotNetLib.pdb +D:\Source\MatrixDotNetLib\MatrixDotNetLib\MatrixDotNetLib\obj\Debug\netcoreapp3.1\MatrixDotNetLib.csproj.CoreCompileInputs.cache diff --git a/MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.csprojAssemblyReference.cache b/MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.csprojAssemblyReference.cache index 74fe67b1ca671095970d4a7fbcae2417231e8f41..f812bae338336f50c5e673f69dc900fdc34a1d4b 100644 GIT binary patch literal 104852 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 diff --git a/MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.pdb b/MatrixDotNetLib/MatrixDotNetLib/obj/Debug/netcoreapp3.1/MatrixDotNetLib.pdb index 92662720bfd3f053c07d19268878fe8b58b32ee2..1eceee0422d910a72543d66f76872a05a17791f0 100644 GIT binary patch literal 3364 zcmZ8j3s6+o89wLk-Gvo*L0KL_k;{91u*yS?4-!Bg0Thr0d`03eTy%BWU3V`CY8qf& zFx9CVE7ZivnAkcvBa|51YBLdHv`$RYl2jYpG^XPW)kK?GW2%`kGyVU2cJ-up=G*^# z=R4>B|8vjz&)p(xMG+;G;4>LeQ(PpqXIti}9YjZVLZcawTGMRDzJCDHw7`Eth^QmP z13cBLcpa{dK4=mJ`b6xjw~`KMqodTa`toA1gTQwJQj45!be5hnVd# zz4+`>eWJfyz$5^UM_-LFs|8v&!QKU1O(|JT1#%SZ39ygAY6XED5GZ*StWHBoq(&fj zz zZw=|B8q%eXUNAijI2;++3C7`A5bO(a zY-3-DV;j#yh@+1C8{(+rIS+Bv@qC3i>X95rJ&NO~PvJP~m@_}$#BtPPIF9pUIgWZ9 z$5F?#9P)?yQyfPRG>)U5 z&T-T;IF5QI$5A(P9Q9coM}0QOQO|-C5{myV@VS79;Q7Gucn^d)j?d;e>Ny-o9q)k9 zc+~Saj{1C#qrQOSs6Wkd)E99a^(7ofeJRIL&*wPm&u|=dd`i?`tN}{w@GGdR)TpsU zVuc&pU)oMtaTCb$dCwt4AiC6Y{+%BKI zLiYJ=8|BCRaf99S#OdDXaMgRA(7&}!_9+!Uw~G|E+Z3CZG&vozO9?5<+%5&FvPrIG zV6*!)Iyog+0GuQ9(gLjkIISH}{X!4PV*6_O;d<4>W)4TYDy7 zx6}X8p11G*wl%C^FKnGb)a$!0>cknON-IW@{BY4oJUY=7q)|Y-9*SZbnG+>WhNd2x zUEQJ>OQK-==u3J^W{KfZgbJMk%`vh(O1xgT7ZM3)iF93)s>WuXyLG+v>e-{Z^sk2O zan~G`>(9MAGA*)Bd#~e*V4UtH zlEF0bRL82bv!?%0-G1?0#W%4dM+z26{hF~v*Q1=2*XO9dCeLLiFP`&N-V9soXmQ9~ z;@y4HrHY|j3E%ZBuD|f#QQw{8t#PFT57wMGSZO$%J?}>G7yDFCMv0kp)tF{5lN!Uh z4;~mU*?&rpcAES5O<#Z5pS#KZe&3wYOzq%k;~TCs$KTps{j#Uwrs^g#g_%s%#N;yb zv}&fMF*8#&$!ugY8=0A;c4o36S?u*?nPY#H6RVIXN%d@(#t-+Ox;c9NmTC1XYfK;S z|NHUe^DBQbyglxcV2tT28=I_pH8ST$=G?>rn^@ok_A(OK%aF3w3DSb8T;RG+kIV)A zR%)1KE?Jc|{I7=5{Dzi;dzPl{s=dD?fA{UQuQhr1D}{K~M+93#ggLTG-ljmQxLXtp zR_ml-sX#46K51H>Qxs3!|8dK6vaMP6`ci`ZwQ@_a@GL82#nuc}Zz*YNwdLl{j|~o~ z+vJ5g@Q=_^XY+0G#Z&(?YB~C=sDBOhJE*^#rc(bevGN=Mgt%xLcAb$2h+o8yZtiQnIDglmmP>8U6R;R#wOw-gd<#P7QZ zx(KaIff$KRfbZpM5kBgb0*NMe5&k|ziExj? zv?Q8AyT)nH658`S>eo~MHo9vK-F1ov5`^v}u{3yz)Wh}pWOH^Mk}RLr47N6#fAwO2 zw(siD)TTWj#+VMB@>XAZG+^p_)iA7Xj)|QJ6FU(SI}uW5uv*clRra?3$n#fH-PZ3r ze*WQ4f3tI8a?4t2eNN8Jngi<&jU7L`Z)>#QJmX8Y?a9n!nAi(`;)^T&zR6gD}(J=cK}(IceS`7kdfW7z0tjKy@|cEr3?A~ l;!iTO+IH_v*>_&r{ipZ#8XC=o(eICKU%d2M)qmEJ{{gfVe>VUC delta 345 zcmZ1?^@3%BO1%RE1A}rvN)nJ_*aO5KAbuSK0}CS%gV@0(MVWc&#Xu$l2TUw9n1Kh# zRshMnhkCjIX&oTn28flNa`HijeZG28QAAqVr~kv28|HH>l5S7Q#YETFy6IZn)X-d@>WS F5&-m)MPmQ} diff --git a/MatrixDotNetLib/MatrixDotNetLib/obj/MatrixDotNetLib.csproj.nuget.dgspec.json b/MatrixDotNetLib/MatrixDotNetLib/obj/MatrixDotNetLib.csproj.nuget.dgspec.json index f9c7c1c..625350c 100644 --- a/MatrixDotNetLib/MatrixDotNetLib/obj/MatrixDotNetLib.csproj.nuget.dgspec.json +++ b/MatrixDotNetLib/MatrixDotNetLib/obj/MatrixDotNetLib.csproj.nuget.dgspec.json @@ -37,6 +37,12 @@ }, "frameworks": { "netcoreapp3.1": { + "dependencies": { + "Newtonsoft.Json": { + "target": "Package", + "version": "[12.0.3, )" + } + }, "imports": [ "net461", "net462", diff --git a/MatrixDotNetLib/MatrixDotNetLib/obj/project.assets.json b/MatrixDotNetLib/MatrixDotNetLib/obj/project.assets.json index dc7aa86..5657bf4 100644 --- a/MatrixDotNetLib/MatrixDotNetLib/obj/project.assets.json +++ b/MatrixDotNetLib/MatrixDotNetLib/obj/project.assets.json @@ -1,11 +1,55 @@ { "version": 3, "targets": { - ".NETCoreApp,Version=v3.1": {} + ".NETCoreApp,Version=v3.1": { + "Newtonsoft.Json/12.0.3": { + "type": "package", + "compile": { + "lib/netstandard2.0/Newtonsoft.Json.dll": {} + }, + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": {} + } + } + } + }, + "libraries": { + "Newtonsoft.Json/12.0.3": { + "sha512": "6mgjfnRB4jKMlzHSl+VD+oUc1IebOZabkbyWj2RiTgWwYPPuaK1H97G1sHqGwPlS5npiF5Q0OrxN1wni2n5QWg==", + "type": "package", + "path": "newtonsoft.json/12.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.md", + "lib/net20/Newtonsoft.Json.dll", + "lib/net20/Newtonsoft.Json.xml", + "lib/net35/Newtonsoft.Json.dll", + "lib/net35/Newtonsoft.Json.xml", + "lib/net40/Newtonsoft.Json.dll", + "lib/net40/Newtonsoft.Json.xml", + "lib/net45/Newtonsoft.Json.dll", + "lib/net45/Newtonsoft.Json.xml", + "lib/netstandard1.0/Newtonsoft.Json.dll", + "lib/netstandard1.0/Newtonsoft.Json.xml", + "lib/netstandard1.3/Newtonsoft.Json.dll", + "lib/netstandard1.3/Newtonsoft.Json.xml", + "lib/netstandard2.0/Newtonsoft.Json.dll", + "lib/netstandard2.0/Newtonsoft.Json.xml", + "lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.dll", + "lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.xml", + "lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.dll", + "lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.xml", + "newtonsoft.json.12.0.3.nupkg.sha512", + "newtonsoft.json.nuspec", + "packageIcon.png" + ] + } }, - "libraries": {}, "projectFileDependencyGroups": { - ".NETCoreApp,Version=v3.1": [] + ".NETCoreApp,Version=v3.1": [ + "Newtonsoft.Json >= 12.0.3" + ] }, "packageFolders": { "C:\\Users\\Claire\\.nuget\\packages\\": {} @@ -43,6 +87,12 @@ }, "frameworks": { "netcoreapp3.1": { + "dependencies": { + "Newtonsoft.Json": { + "target": "Package", + "version": "[12.0.3, )" + } + }, "imports": [ "net461", "net462", diff --git a/MatrixDotNetLib/MatrixDotNetLib/obj/project.nuget.cache b/MatrixDotNetLib/MatrixDotNetLib/obj/project.nuget.cache index 640d83f..960eb21 100644 --- a/MatrixDotNetLib/MatrixDotNetLib/obj/project.nuget.cache +++ b/MatrixDotNetLib/MatrixDotNetLib/obj/project.nuget.cache @@ -1,8 +1,10 @@ { "version": 2, - "dgSpecHash": "6v622xy25DE5lRrEgpsiWk2YtQjIi38nbMXINLdc/3QnYXSe1ti2zp/2q7CTNPT3u+UJEjyWV0GE4lClJkOjXg==", + "dgSpecHash": "HSqSJqUuJZSv4YceApWKKSok/vyC24dgbjbsKNopZt2t8ILlKoApuI5ZMQ2Wm+AKO8PAKuY9eeR4/hEyKBtJIg==", "success": true, "projectFilePath": "D:\\Source\\MatrixDotNetLib\\MatrixDotNetLib\\MatrixDotNetLib\\MatrixDotNetLib.csproj", - "expectedPackageFiles": [], + "expectedPackageFiles": [ + "C:\\Users\\Claire\\.nuget\\packages\\newtonsoft.json\\12.0.3\\newtonsoft.json.12.0.3.nupkg.sha512" + ], "logs": [] } \ No newline at end of file