From 88a6a1ed2df17da6ab73c0214b2d3ef1a129cb1f Mon Sep 17 00:00:00 2001 From: ZMiguel Alves Date: Thu, 14 Feb 2019 15:07:49 +0000 Subject: [PATCH 1/3] Auto stash before rebase of "origin/zmiguel" --- .vs/ENEI2019/v15/.suo | Bin 0 -> 13312 bytes .vs/VSWorkspaceState.json | 6 ++++++ .vs/slnx.sqlite | Bin 0 -> 77824 bytes api/obj/Debug/netcoreapp2.1/api.assets.cache | Bin 0 -> 132987 bytes api/obj/Debug/netcoreapp2.1/project.razor.json | 14 ++++++++++++++ 5 files changed, 20 insertions(+) create mode 100644 .vs/ENEI2019/v15/.suo create mode 100644 .vs/VSWorkspaceState.json create mode 100644 .vs/slnx.sqlite create mode 100644 api/obj/Debug/netcoreapp2.1/api.assets.cache create mode 100644 api/obj/Debug/netcoreapp2.1/project.razor.json diff --git a/.vs/ENEI2019/v15/.suo b/.vs/ENEI2019/v15/.suo new file mode 100644 index 0000000000000000000000000000000000000000..03597dd98fa383a8f95019b2698eae721ace8fb3 GIT binary patch literal 13312 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

c;C-)UsduuI7af>Bw(JbDXBSECSi*Rn#&|tG zy|WP4Fs5V`tAXVCxd`PAgd&DMP@|PZvU_1#W6Px0Zt|66*7Gt%^hQl2ZRCGl3rQy# zA$>?R?6pQ}zmSgV+ZCzW*-j-RNrSPfi@RokZz9?zea{t2HDSG~DHNuJO?|$mlT;^7 z46TK3a-JQ4>XPc4iQ8)h+y;sr9?To;Z9ZL^r&MX~yW8=kwnhIagr{@CNe66T~ncqq+uAG)xC$2U~PeWvr>!e+J8%fpw zVy4nAIe^8B(GfiXLItk4FbMu9OZtT*)Au%Tv&z`!NN*?kcmCpJRb=**Tz&tGh}!>x zW0G_Em4=$S+B6xLg$?gyKl@@L^_q}d1e#CCXIQGHIiw+*n2^7nRMpQym9K4NhQ36q zIpLw!3}{*2z*#l(O9;^aYG`{KCxa~{tfNEa9!<<;xd(kIwXn+U6zCptgIB(*Rrg9l zpy|A>cJ^!S&cDosV@GV_ZgnPa3OCp5bO#JZ;>kDD^P#I|z6_Iyz&lu2V;Ap}JpB zfbW`*dt0XOEOW|=Pgab|#r_wk-5}sHi>Eb@>^n8G%*Vg)(2$#W=e8Gc`4;b@xB2RM zzfB*DosQUzqY)>5wMze-lxA&yHz|v<7R^1mGLb;5(;80X3Y)4bMZSZjyg1{&hj5i{ z&paJ22O}|L!!+5&=`zIPPk5TMyYgbnATC{zOB>!x$X@4u$sSjc;rfh=D5lW z=O?d)<@-K@_1YeE!p8m0xYLO{jaX0XN*MM1b4MNS;QSX3(=|d})s-;nHxO#5*B~m8 zsVf_{d&wpo^_fo7kr9yA&r`MEsw-f`ZzM#Y-3V%TowvbLdL~B$d4V4w7O$|zNth zonErNZLC}2U)p!dDiT$txMzG+vx!qVr_~b8HYrwrP?tnMM%1Cxw*pg^q$o9}XV*TP zw?w4Yqc|xh+3Ig01@H=>u5_fl?J5)FK-TK)oj|{pKts)ukt;y6#CtYu#0f+x&8qrs z1Q%+=4O|DoJifkxK|3X78SL8$%7jv4M?yT54EN#%a4Ez3-SKq$I%C zm)QnFB0jerPeOhtLHb0Fksy;zxz9!2hwZl^azPcW---QQL^LPcoecA&NtLyMskZw< zUW)bZyEU8G?hnbh5-`uxFxB<8Qkh>n)Yss%NqAf-;b@q4`v@xB)t=kzgXC&akd@;5G@&SkPe3RUAy^MLBViF_w&TDg zK1A!C)+L$g`!$n9<$O;A2grE3YI#TBM}x%)Bq7_4JKYrhUV0lme5aW4jIInc!F4D8R@aBJoCjkmivMZCXpBEsF0_4cg>Ki#QHtmzUg zvtQ6izlhJiZ;7h$Sj z*HpiOPwyc7IYI3na}mj!KOB+S59m~g)KYs@JZ7SdpH@XA&oaetl3dg>aX1DX8nu5J z#dqg;$0Lj`1a`z( z&~j_%(dfpFbt!k+l*^+**HyXmD8~Z*ZO!*P_#ApSYkrYB)>*MGIKpHTM)CNhQIy?z zeN{5nQn8F6k21vXYKY&%r~i?Od~Xno9lf4TT`dbA?Qxo7{^ue(Ziw{Vs_HTxpy^^v z_xnWW?;}{~y8ZrmB$04vK*t!O#l>(drWCXNfoA)|c}Z>n-HHdeOrY&0x%0{3*1Q2g+;&#o3al0!yU$Lw1P&I4Au9xMQ?~jR3wtoGLNsedEIknYt1E_Aa#0J5t zw z-WRHG`!M}oBy7ZWl3k1ej>avi^z)Vp#$OSR|B{hz*6Q3)&th@ur+bR1n{-8QpXaM} zdIpPYK3QOYtqEnx$lG%_fO0QazMP2k$NPh}tR2L8FF0>>nqgr^ecv@?&T!_kOmdL(X{P&trMpKzvhgdaC$cEiv44)b+*p-=%_GGco zVfrSRR?V|4sejNM(ib~{9LlM82&Hf;>Ms31k^o-a;ER#sVTj4IR3ViSelkP>b@PaA2&fie} z72dB}L!G81vIv7Ix=G_u{1wWn$}{1=YeG>R?=#t&H{UT-dkRxcWWGt5+aYq@|3hO) zKk`2`sX4F_gvs`%E*=TGB##^f<$yS+2oi{-!GQaoFhWzMUJ^9}yX6}cBmoc(x&SmjX*Q<0k{XKu2XvYwYAL7vlP znCk(W>l%EjRCpny4snfe@S@zkbV(00-3hvjC`r4Q)S(|lvh$DlHf@~yU2w1aL&TNh zyoF9RG#+HFE%C=}6M#~Ty12w3OL6q%JX6sfsyK`Ep&D0a1m70i)cX4*L1UVfR|RYL zu{+2!r%T#1M^`GwdE-GU_b4eZ3f4bgDXZeQcsL0?bTHPi(O}${nW=LyE^MYjJ+BKe z&?5-Qe;cx<1!(=!l;^9lGBQsr#*%kw*s3&dCv@;G;M%=bw?Dn76jaOVdG08WC1I)9{ScF0^6>S;ZN%_bEIUkX zyb4+-iw-QcXAo60sUZ+x+{5i@<&uv}>x;2Mp&=YV$~l&bo~ij{0zU{;s?iS4K6K&km5Xs)`YT2C7r(HFH@82YGd6-NTC)|Az?_} znGFTEmsTz>T_J?vMYw{&S8WuHRe4@UT>e9@_Ks9+Aoe|zRIXM!iM_HD_0Y0vUQF#8 z<#B;>;1uOpr6W!CVtk&#uy(ian37+6fIU08k6f<>WndbNuiVf|`x^uJM!T^<;zENg zkuX2`-|hN)&*JkK{+z>~)||ilrW3P%`}srob_`uJzWW7y`&{LIW%f5;#dmMaNA5{> zrTWI5eYCo(!C#Iqe&u|=7=2?>)v&be`s%g$e)WX35BTc!Ie+!Zn`$C=zx73YwZC^( zChvokCnIc&4nH1ruhcEkw0K+7J{)f=w%`u@QL)Ni&h4zEc#nC3UIOUPdoTWLnMF7e z+ieY^lQ%$tOvFf(n~bQwtkC9lw(9Cv(F9zd(Teqa5uljSFLOQTm1&O5a#(4c@5Fmu z1tTr<9BGid@aGqU-*YSOVAzR{9iP{WRw``vrk_=N(^t&pO;61GO;v@>-t@C;Z@Phh z|7LKTDis`OadZ?nAI$4*Cn|0B#-CGr<5$k-jZYxDX6|onDsA@0ch}zdbMfzA2yf%; zig5tb}z3D}uv)n0TH|NfPa!;3mBaqz1eQ(Sr3 zw&i7iI{0N%Tss`y?A@e}H!W-PX;Jf<<%rX%yvcAJ z->usFZqMa?5hODA_ce7kd*7Yf`*!E_z5&L`p~)Xqjr zv#J_vQe%}lRYTU3H#r>e8ClC|SdDd9W0gr*z@ii%WW$`APDQDO7IPY^7;9U-A%cU& z$eZ>?sq!dQX?O3{d~%dc+C9Y||ErQJC&*^uvn>zJf+wp)DiM*_%rG3!TYj>Tv`E0p zBGW7ql(nXS6D+<8m^W~Lob>{fFk7S&`u7o8GFw<5xl)>z8N2WZc>e3l2lNqH*V89L z3j>3nIUBa(ypBO5O9{rn?Bd`4`<8C?+dX>p$lX_l6M!<{QPY-Pg9g358k-Cx3u7zW zbtX0$IOf`_2MF#YucppKcLj9n`foqGoG(sQ$5?nS5~Eva8ZRtPZcLvN&u9JKUU_8C zcrpkbuD}{V4PEIf3ZXr1uBO%1~i8xEt zM2}DiYgn>{tK|viYB7hC}tOvq52c&mP}(@s~bbkEy+CS^YQ1K zLK~wXuEZm>dfN%YHg}2>O$EEvku1iLqF+>^5|)bE*fKs&zlL#v-;95MWKpkS_a)}? z9%7aj)*Pft<HV z6Qg4eZkoQ!2RDt?@z2Vxry%yed*#L>FKNf=sJn%$!bU1DkRrQ>8p0 zKe5&&q&2>KzWOxnovdAB%5diMN;0VV-&9#|rsCXX?S!MXX^LTO(!;YJcQhKt#~nq( z-iklX`^HpsYJqu?i+>t?TD)>1apJ^eA@KvTD@PQorzefHZv~@_#q3k#pXz^a!|xt` zetc^@T19d?oVHl$JmXxqohB+J@KQF!3c#`?PCd8Vj+O?k-u``9V1Epk&@1lOsM}PY zRu-0%oT@~IOru57Yh-Wk$aBlbPOFR0&ZJmn*h|vO>dVTf)g34gT^f&)a|qLm(`#;) zWL3w@A4Ig`SXOGeX!IJKZjO#V>>L)W@tX3s4>}s%j2xpUo>G>R;61TOSSeW8BBo_tXDk0 z_yH+VRC~t@@^98Gr!>S7S?M4l$N>3kXOi{Bz3vES7-woozGlI0CIl3->-$s}a=%;g zNVJ-u!|gjnC#mJ3r#QTqCpN0;rvtfGNEU;TU0S-dy*ah8@Ozl4O{7GYbdC7O)2%I& zt7cApo#Tl#v+G!8;Xo}?!Jxj_UJ0Lkz@6WxaDEY~+rVY-m9n#pt+-L1wb(A1>NAyh zwd+>BfJhcBms;cAXtuAA66P46^*w7}Q5ti*Rim9pdt=fAl^3)t7(Z;zy4(f&n`{#r072muCj7I$Ns$|oCW5`>>4UNA+8E=9|l+OY{&QD zG3qxM)N!8DZiUsh3q30vS^Z@2EO*7F5;z(_Hge9ytr3(fb3bwcGE0$CHnXdeaAkQv zW(T0OtR|_fy>FP`B6EdY+*|a=vxMO8vuvcD>49gJdl2&8eOmc9EZ=hfzAU%UK?h_doEr z4qrgZiV0a743d#Dj|V(>CQ1A1nuIJ8Q9C4q8tFkCA9o9YnZ`k9rLb@FiztnPMP5|qY0`}^za^fRhU+TWt~pfaQ{ zwdz9cNhC2Jpy|?4MF7YBik_9D`8WEN(W!#%Ew+vsA^a-GFT1!NqqpXeYW_<-qS?FB zdhtve+x>C#gt%`BZYapDlf8GCXVoaj-xU$s%=RVo;}qn z@*?@N!(GPj?-+G)u??nkJj94&7#Uv@Ghm#{U1oU z$uGnkE;>vtN+otyE&T=8 z8=S>S9a>OwK7M+z+r{NVlELUw3%Pf2MNLK{wX>Yqn(~(pX;)rhWzc19p+>1ZCN3Y% z8O!fL@1s@`ql5&9f-#F!B;h@_gi_r0Gz%--N$xBqYq>7CGLZYJF(AajnXTwXK))4bsyM~HrFjlDxuc|91Gyx>y>hluDm}D?|G&ngQKHcApJDs>Q z%d@LH`xzD`dv;wA2sl!sxG#a9o7I^+egEXlee#zTd6Rq0Pr`4rn}A{#C{rGLV-=6c z%1O)vD}4jcJ?x5Fd4lKkG@ex|+}?&*>_)>}!OPXyJ5%wbSRz`xgt{RL2^;(OUsMl?UL1(p3@Q(7uMId zS0qsW-rgKG&%n-xZ8)8vn;g8ddU37P_B$qw)Z2{)=J#0Sr&T6yzkXnTk2Za8wU`#P z+POGF&T;jr!s~T@eer}!{ZcG$lhQkCjCi@4=I7PN^V@>RJFxvalIw7vRF0C>XJFOI zu@l!#EqduYVjo);JAeA3TIoT*AXUM{vvzf>a)?io0hxRxQaRGDQTMKrIX~zgQ}Vy> ztlTDgjY`q_h}zwn56tfZy|(t_NUq%c*`FXrYRUT-=w%t(q z$#BXoiq~Ub>VT^V;qGIL>`}Rum)QWil}9@R?V|AgTIdnbwuhMF7mQr1#}mwV;-{r&P<$u#%Nqe|E@-}n_AS&u(0ZeNq%ZVlZ>jXpC!2T zbCf-osx7DNV*T@_5o2RbQM$&+bg1&u7SoR9PomQpWQ@MmejM>NInU4>^=IgY8l&v| zNZ~LT?V?|r8)VQWk^I9_nufs1Z?E3)^0eZCOx-1zMKHYTZ|7PAELoTv6x2HrD)Zq5T&l*Hq5XvQ8K2(6i`}TUXyaP_O-QNN4gl@qGD9jRA??U zd3voTOkU{@5}7h7H9cnZ$CR%=XOXaepXzfMCyiAxx*Am?!HqbI-{v<-m~StC%)6sy z1h#2D`*Vn`eYSpG`vWEp@!+p3U-pIrYpaKD9SjH2JgHtC<=HnHRDgpb&vkEFaPl`1 z26@RdZ**4YeK)4B5;$Z`U*(6Sr{?=BzgG#-jjF2OOy(nhq<*P9dou=sqNXBUxXICN z8ozinQW>%fw4y*Yakf!yDyE(^;;jE%GDus#3in^8rYbZBI=&=?&htAPk;%`CWVxme z^}{mb@wHm&l@zwusMNO)TE@OPW<^(Z;>Tls4ZCw{S!{j0d8(UY&X1L}t2^<=RdIGT zA|kKaO0V8ZH?HcAuExb_SKZUP`kvOtRhN^iFDDyUrQ@s9@y3Jh+qnT2BYUv^G(Q;W zAB;Ahr^OF-Ir!qYXVsOj604xYTPJj_@{oj)RKBrf z*ckfa2c_VzQ9A(QQ)18giD_3@P3;$Dc7>-GRoOydB}M7eiYM@8^>feiz-{`012cBc(%erezR8xWbH#j3 zCBJ1oG0`mFbA9nWm8y(%C%(v__`ztALB z3=yN{3r%(A3vVsnkh2?leHrFey|`>K^n%GWiA9T5e(Uu$+Txrsz-8vXkZPV(v_)Bu zk;z%}6(*&cD-GW)jZWRSmekMrbtYq7$a_tGovH1Bud^qi3wyhI`ni`HVQND-nFCIL zPj#9rIpE-ELh_~QEov~Ya+2$YEp-TNvgT^R$>eEHq^DJuCy-*Ip2@7#tH~5*Pc3v# zrPH{fo?WVZ)BN|8I_dfYz877p96az3P8;-$1IpI9v zXf9uf1|IsoncMM#flRJ-e7MX;NMEg|Y>pp1x=GrX(#k2Z)dxViVW4~y$mie(=uOH4 zV<$F@&skZLAa{7$d)%}!?TMpAX@!_3Z*~N%uX)q7Z@>cwcKYRPSW42W6Gt}wKbmD_ AVgLXD literal 0 HcmV?d00001 diff --git a/api/obj/Debug/netcoreapp2.1/project.razor.json b/api/obj/Debug/netcoreapp2.1/project.razor.json new file mode 100644 index 00000000..2ba5fb94 --- /dev/null +++ b/api/obj/Debug/netcoreapp2.1/project.razor.json @@ -0,0 +1,14 @@ +{ + "ProjectFilePath": "c:\\Users\\ZMiguel\\Desktop\\ENEI2019\\api\\api.csproj", + "TargetFramework": "netcoreapp2.1", + "TagHelpers": [], + "Configuration": { + "ConfigurationName": "MVC-2.1", + "LanguageVersion": "2.1", + "Extensions": [ + { + "ExtensionName": "MVC-2.1" + } + ] + } +} \ No newline at end of file From 778e7b45f3dd73896e090bc00715cb5dc51493ee Mon Sep 17 00:00:00 2001 From: ZMiguel Alves Date: Thu, 14 Feb 2019 17:25:19 +0000 Subject: [PATCH 2/3] small up --- api/Controllers/TeamsController.cs | 49 +++ api/Data/DataContext.cs | 1 + api/Data/ITeamsRepository.cs | 13 + api/Data/TeamsRepository.cs | 23 ++ .../20190214165735_teams.Designer.cs | 365 ++++++++++++++++++ api/Migrations/20190214165735_teams.cs | 96 +++++ api/Migrations/DataContextModelSnapshot.cs | 65 +++- api/Models/Event.cs | 3 + api/Models/EventLocVisited.cs | 2 +- api/Models/Team.cs | 2 +- api/obj/Debug/netcoreapp2.1/api.assets.cache | Bin 132987 -> 132987 bytes 11 files changed, 616 insertions(+), 3 deletions(-) create mode 100644 api/Controllers/TeamsController.cs create mode 100644 api/Data/ITeamsRepository.cs create mode 100644 api/Data/TeamsRepository.cs create mode 100644 api/Migrations/20190214165735_teams.Designer.cs create mode 100644 api/Migrations/20190214165735_teams.cs diff --git a/api/Controllers/TeamsController.cs b/api/Controllers/TeamsController.cs new file mode 100644 index 00000000..639af5df --- /dev/null +++ b/api/Controllers/TeamsController.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.IdentityModel.Tokens.Jwt; +using System.Security.Claims; +using System.Text; +using System.Threading.Tasks; +using api.Data; +using api.Dtos; +using api.Models; +using AutoMapper; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; +using Microsoft.IdentityModel.Tokens; + +namespace api.Controllers +{ + [Authorize] + [Route("api/[controller]")] + [ApiController] + + public class TeamsController : ControllerBase + { + + private readonly ITeamsRepository _repo; + private readonly IMapper _mapper; + private readonly UserManager _userManager; + private readonly DataContext _context; + + public TeamsController(DataContext context, ITeamsRepository repo, IMapper mapper,UserManager userManager) + { + _context = context; + _userManager = userManager; + _repo = repo; + _mapper = mapper; + } + + [Authorize] + [HttpGet] + public async Task GetTeams() + { + var result = await _repo.GetTeams(); + + return Ok(result); + } + } +} \ No newline at end of file diff --git a/api/Data/DataContext.cs b/api/Data/DataContext.cs index 43d1c208..d1244135 100644 --- a/api/Data/DataContext.cs +++ b/api/Data/DataContext.cs @@ -14,6 +14,7 @@ namespace api.Data public DbSet Photos {get;set;} + public DbSet Teams {get;set;} protected override void OnModelCreating(ModelBuilder builder) diff --git a/api/Data/ITeamsRepository.cs b/api/Data/ITeamsRepository.cs new file mode 100644 index 00000000..5dcada65 --- /dev/null +++ b/api/Data/ITeamsRepository.cs @@ -0,0 +1,13 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using api.Models; + +namespace api.Data +{ + + public interface ITeamsRepository + { + Task> GetTeams(); + } + +} \ No newline at end of file diff --git a/api/Data/TeamsRepository.cs b/api/Data/TeamsRepository.cs new file mode 100644 index 00000000..40e8304d --- /dev/null +++ b/api/Data/TeamsRepository.cs @@ -0,0 +1,23 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using api.Models; +using Microsoft.EntityFrameworkCore; + +namespace api.Data +{ + public class TeamsRepository : ITeamsRepository + { + private readonly DataContext _context; + + public TeamsRepository(DataContext context) + { + this._context = context; + } + public async Task> GetTeams() + { + var teams = await _context.Teams.ToListAsync(); + + return teams; + } + } +} \ No newline at end of file diff --git a/api/Migrations/20190214165735_teams.Designer.cs b/api/Migrations/20190214165735_teams.Designer.cs new file mode 100644 index 00000000..38655693 --- /dev/null +++ b/api/Migrations/20190214165735_teams.Designer.cs @@ -0,0 +1,365 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using api.Data; + +namespace api.Migrations +{ + [DbContext(typeof(DataContext))] + [Migration("20190214165735_teams")] + partial class teams + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "2.1.4-rtm-31024"); + + modelBuilder.Entity("api.Models.EventQR", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Event"); + + b.Property("EventLocId"); + + b.Property("Pontos"); + + b.Property("QRData"); + + b.Property("TeamId"); + + b.Property("TimeGen"); + + b.HasKey("Id"); + + b.HasIndex("TeamId"); + + b.ToTable("EventQR"); + }); + + modelBuilder.Entity("api.Models.Photo", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("DateAdded"); + + b.Property("Description"); + + b.Property("IsMain"); + + b.Property("Url"); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("Photos"); + }); + + modelBuilder.Entity("api.Models.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Name") + .HasMaxLength(256); + + b.Property("NormalizedName") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasName("RoleNameIndex"); + + b.ToTable("AspNetRoles"); + }); + + modelBuilder.Entity("api.Models.Team", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Event"); + + b.Property("Nome"); + + b.Property("NumMemb"); + + b.Property("Pontos"); + + b.Property("VisitedNum"); + + b.HasKey("Id"); + + b.ToTable("Teams"); + }); + + modelBuilder.Entity("api.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("About"); + + b.Property("AccessFailedCount"); + + b.Property("Adress"); + + b.Property("Age"); + + b.Property("City"); + + b.Property("Company"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Country"); + + b.Property("Degree"); + + b.Property("Email") + .HasMaxLength(256); + + b.Property("EmailConfirmed"); + + b.Property("FullName"); + + b.Property("Gender"); + + b.Property("LastLogin"); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("NormalizedEmail") + .HasMaxLength(256); + + b.Property("NormalizedUserName") + .HasMaxLength(256); + + b.Property("PasswordHash"); + + b.Property("Phone"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("Position"); + + b.Property("ProfileIcon"); + + b.Property("QRcode"); + + b.Property("Registed"); + + b.Property("Role"); + + b.Property("SchoolYear"); + + b.Property("SecurityStamp"); + + b.Property("TeamId"); + + b.Property("TwoFactorEnabled"); + + b.Property("University"); + + b.Property("UserName") + .HasMaxLength(256); + + b.Property("linkedIn"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasName("UserNameIndex"); + + b.HasIndex("TeamId"); + + b.ToTable("AspNetUsers"); + }); + + modelBuilder.Entity("api.Models.UserRole", b => + { + b.Property("UserId"); + + b.Property("RoleId"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles"); + }); + + modelBuilder.Entity("api.Models.Value", b => + { + b.Property("id") + .ValueGeneratedOnAdd(); + + b.Property("Name"); + + b.HasKey("id"); + + b.ToTable("Values"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("RoleId"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider"); + + b.Property("ProviderKey"); + + b.Property("ProviderDisplayName"); + + b.Property("UserId"); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId"); + + b.Property("LoginProvider"); + + b.Property("Name"); + + b.Property("Value"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens"); + }); + + modelBuilder.Entity("api.Models.EventQR", b => + { + b.HasOne("api.Models.Team") + .WithMany("QRs") + .HasForeignKey("TeamId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("api.Models.Photo", b => + { + b.HasOne("api.Models.User", "User") + .WithMany("Photos") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("api.Models.User", b => + { + b.HasOne("api.Models.Team") + .WithMany("Users") + .HasForeignKey("TeamId"); + }); + + modelBuilder.Entity("api.Models.UserRole", b => + { + b.HasOne("api.Models.Role", "Role") + .WithMany("UserRoles") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("api.Models.User", "User") + .WithMany("UserRoles") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("api.Models.Role") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("api.Models.User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("api.Models.User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("api.Models.User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/api/Migrations/20190214165735_teams.cs b/api/Migrations/20190214165735_teams.cs new file mode 100644 index 00000000..0e335ae2 --- /dev/null +++ b/api/Migrations/20190214165735_teams.cs @@ -0,0 +1,96 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace api.Migrations +{ + public partial class teams : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "TeamId", + table: "AspNetUsers", + nullable: true); + + migrationBuilder.CreateTable( + name: "Teams", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("Sqlite:Autoincrement", true), + Nome = table.Column(nullable: true), + Event = table.Column(nullable: false), + NumMemb = table.Column(nullable: false), + VisitedNum = table.Column(nullable: false), + Pontos = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Teams", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "EventQR", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("Sqlite:Autoincrement", true), + Event = table.Column(nullable: false), + TeamId = table.Column(nullable: false), + EventLocId = table.Column(nullable: false), + Pontos = table.Column(nullable: false), + TimeGen = table.Column(nullable: false), + QRData = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_EventQR", x => x.Id); + table.ForeignKey( + name: "FK_EventQR_Teams_TeamId", + column: x => x.TeamId, + principalTable: "Teams", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_AspNetUsers_TeamId", + table: "AspNetUsers", + column: "TeamId"); + + migrationBuilder.CreateIndex( + name: "IX_EventQR_TeamId", + table: "EventQR", + column: "TeamId"); + + migrationBuilder.AddForeignKey( + name: "FK_AspNetUsers_Teams_TeamId", + table: "AspNetUsers", + column: "TeamId", + principalTable: "Teams", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_AspNetUsers_Teams_TeamId", + table: "AspNetUsers"); + + migrationBuilder.DropTable( + name: "EventQR"); + + migrationBuilder.DropTable( + name: "Teams"); + + migrationBuilder.DropIndex( + name: "IX_AspNetUsers_TeamId", + table: "AspNetUsers"); + + migrationBuilder.DropColumn( + name: "TeamId", + table: "AspNetUsers"); + } + } +} diff --git a/api/Migrations/DataContextModelSnapshot.cs b/api/Migrations/DataContextModelSnapshot.cs index 969d2571..bd11d6b2 100644 --- a/api/Migrations/DataContextModelSnapshot.cs +++ b/api/Migrations/DataContextModelSnapshot.cs @@ -14,7 +14,31 @@ namespace api.Migrations { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "2.1.1-rtm-30846"); + .HasAnnotation("ProductVersion", "2.1.4-rtm-31024"); + + modelBuilder.Entity("api.Models.EventQR", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Event"); + + b.Property("EventLocId"); + + b.Property("Pontos"); + + b.Property("QRData"); + + b.Property("TeamId"); + + b.Property("TimeGen"); + + b.HasKey("Id"); + + b.HasIndex("TeamId"); + + b.ToTable("EventQR"); + }); modelBuilder.Entity("api.Models.Photo", b => { @@ -61,6 +85,26 @@ namespace api.Migrations b.ToTable("AspNetRoles"); }); + modelBuilder.Entity("api.Models.Team", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Event"); + + b.Property("Nome"); + + b.Property("NumMemb"); + + b.Property("Pontos"); + + b.Property("VisitedNum"); + + b.HasKey("Id"); + + b.ToTable("Teams"); + }); + modelBuilder.Entity("api.Models.User", b => { b.Property("Id") @@ -128,6 +172,8 @@ namespace api.Migrations b.Property("SecurityStamp"); + b.Property("TeamId"); + b.Property("TwoFactorEnabled"); b.Property("University"); @@ -146,6 +192,8 @@ namespace api.Migrations .IsUnique() .HasName("UserNameIndex"); + b.HasIndex("TeamId"); + b.ToTable("AspNetUsers"); }); @@ -242,6 +290,14 @@ namespace api.Migrations b.ToTable("AspNetUserTokens"); }); + modelBuilder.Entity("api.Models.EventQR", b => + { + b.HasOne("api.Models.Team") + .WithMany("QRs") + .HasForeignKey("TeamId") + .OnDelete(DeleteBehavior.Cascade); + }); + modelBuilder.Entity("api.Models.Photo", b => { b.HasOne("api.Models.User", "User") @@ -250,6 +306,13 @@ namespace api.Migrations .OnDelete(DeleteBehavior.Cascade); }); + modelBuilder.Entity("api.Models.User", b => + { + b.HasOne("api.Models.Team") + .WithMany("Users") + .HasForeignKey("TeamId"); + }); + modelBuilder.Entity("api.Models.UserRole", b => { b.HasOne("api.Models.Role", "Role") diff --git a/api/Models/Event.cs b/api/Models/Event.cs index 9f305738..e3890116 100644 --- a/api/Models/Event.cs +++ b/api/Models/Event.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; namespace api.Models @@ -8,5 +9,7 @@ namespace api.Models public int Id{get;set;} public string Nome{get;set;} public string Desc{get;set;} + public ICollection Locations{get;set;} + } } \ No newline at end of file diff --git a/api/Models/EventLocVisited.cs b/api/Models/EventLocVisited.cs index 5bb8f0e4..d09430ee 100644 --- a/api/Models/EventLocVisited.cs +++ b/api/Models/EventLocVisited.cs @@ -8,7 +8,7 @@ namespace api.Models public int Id{get;set;} public int Event{get;set;} public int TeamId{get;set;} - public int UserId{get;set;} + public String UserQR{get;set;} public int QRId{get;set;} public DateTime Time{get;set;} diff --git a/api/Models/Team.cs b/api/Models/Team.cs index e31cb2b0..fa1b1daa 100644 --- a/api/Models/Team.cs +++ b/api/Models/Team.cs @@ -11,7 +11,7 @@ namespace api.Models public string Nome{get;set;} public int Event{get;set;} - public ICollection Users{get;set;} + public ICollection Users{get;set;} public int NumMemb{get;set;} public int VisitedNum{get;set;} diff --git a/api/obj/Debug/netcoreapp2.1/api.assets.cache b/api/obj/Debug/netcoreapp2.1/api.assets.cache index c812596b123227d3704ee32c73f45fbfaf992f67..6ffa3578b29e078f0d097c9143ab2a5d84594451 100644 GIT binary patch delta 57 zcmV-90LK6OjtKjX2q;iXM?nDq001MdI+t>3P{N><3PT`+RFQOJ^}3%wf(;z|+F=SY P)P8{|g(v~FC<0RlbjTHI delta 57 zcmV-90LK6OjtKjX2q;iXM?nDq006)`W(M*`wOC#E(TVx}oC8v#uLS;5YZ({R#^%7x PUax^Dg(v~FC<0Rl#yl99 From ee363a22075238c3deaab92e0bcf7d40ec433b26 Mon Sep 17 00:00:00 2001 From: ZMiguel Alves Date: Thu, 14 Feb 2019 19:08:51 +0000 Subject: [PATCH 3/3] SQLite -> MySQL --- api/Startup.cs | 3 ++- api/api.csproj | 9 +++++---- api/appsettings.json | 2 +- api/obj/Debug/netcoreapp2.1/api.assets.cache | Bin 132987 -> 133820 bytes 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/api/Startup.cs b/api/Startup.cs index d04246c2..e2129417 100644 --- a/api/Startup.cs +++ b/api/Startup.cs @@ -24,6 +24,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Microsoft.IdentityModel.Tokens; +using Pomelo.EntityFrameworkCore.MySql; namespace api { @@ -46,7 +47,7 @@ namespace api services.AddScoped(); //define a connection string indicada em appsettings.json - services.AddDbContext(x=>x.UseSqlite(Configuration.GetConnectionString("DefaultConnection"))); + services.AddDbContext(x=>x.UseMySql(Configuration.GetConnectionString("DefaultConnection"))); IdentityBuilder builder = services.AddIdentityCore(Options=> { diff --git a/api/api.csproj b/api/api.csproj index d662af91..edf9c949 100644 --- a/api/api.csproj +++ b/api/api.csproj @@ -3,11 +3,12 @@ netcoreapp2.1 - + - - - + + + + \ No newline at end of file diff --git a/api/appsettings.json b/api/appsettings.json index 41669945..0fcc572a 100644 --- a/api/appsettings.json +++ b/api/appsettings.json @@ -5,7 +5,7 @@ }, "ConnectionStrings": { - "DefaultConnection":"Data Source= api.db" + "DefaultConnection":"server=enei.zmiguel.me;port=3306;database=enei;uid=enei;password=ENEIMegaPassword!" }, "Logging": { diff --git a/api/obj/Debug/netcoreapp2.1/api.assets.cache b/api/obj/Debug/netcoreapp2.1/api.assets.cache index 6ffa3578b29e078f0d097c9143ab2a5d84594451..e445080c4a5d97600d8c6fc8c69d2dc856b3c451 100644 GIT binary patch delta 14682 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 delta 14085 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 g2e6=`8%rtiQ{S2}d~87HSStp