Rev. 1 Teams e Eventos

This commit is contained in:
José Valdiviesso 2019-03-07 17:33:15 +00:00
parent afaed51e6d
commit 633960e7db
13 changed files with 267 additions and 3 deletions

View File

@ -57,5 +57,22 @@ namespace api.Controllers
var Teams = await _repo.GetEventLocEvent(id);
return Ok(Teams);
}
// POST api/eventLocs/add
// add new event
[HttpPost("add")]
public async Task<IActionResult> AddEventLoc(EventLocAdd EventLocData)
{
EventLoc EAdd = new EventLoc{EventId = EventLocData.EventId, Lat = EventLocData.Lat, Long = EventLocData.Long, Nome = EventLocData.Nome, Desc = EventLocData.Desc, Img = EventLocData.Img};
await context.EventLocs.AddAsync(EAdd);
var result = context.SaveChanges();
if (result == 1)
{
return StatusCode(201);
}
return BadRequest();
}
}
}

View File

@ -60,5 +60,44 @@ namespace api.Controllers
return Ok(Locs);
}
// POST api/eventLocsVisited/add
// add new event
[HttpPost("add")]
public async Task<IActionResult> AddEventLoc(EventLocVisitedAdd EventLocVisitedData)
{
List<Team> uTeam = await context.Teams.Include(t=>t.Membros).ToListAsync();
EventLoc Loc = await context.EventLocs.FirstOrDefaultAsync(a=>a.Id == EventLocVisitedData.EventLocID);
Team TeamToEdit = new Team();
uTeam.ForEach(delegate (Team t){
if(t.EventId == Loc.EventId){
t.Membros.ForEach(delegate (User u){
if(u.QRcode == EventLocVisitedData.USerQR){
TeamToEdit = t;
}
});
}
});
TeamToEdit.Pontos += EventLocVisitedData.pontos;
EventLocVisited toAdd = new EventLocVisited{Team = TeamToEdit,Location = Loc, timestamp = DateTime.Now};
await context.EventLocsVisited.AddAsync(toAdd);
context.Teams.Update(TeamToEdit);
var result = context.SaveChanges();
if (result >= 1)
{
return StatusCode(201);
}
return BadRequest();
}
}
}

View File

@ -46,5 +46,22 @@ namespace api.Controllers
var Event = await _repo.GetEvent(id);
return Ok(Event);
}
// POST api/events/add
// add new event
[HttpPost("add")]
public async Task<IActionResult> AddEvent(EventForAdd EventData)
{
Event EAdd = new Event{Nome = EventData.Nome,Desc = EventData.Desc};
await context.Events.AddAsync(EAdd);
var result = context.SaveChanges();
if (result == 1)
{
return StatusCode(201);
}
return BadRequest();
}
}
}

View File

@ -106,5 +106,67 @@ namespace api.Controllers
return StatusCode(201);
}
// POST api/teams/ChangeName
// create team
[HttpPost("changename")]
public async Task<IActionResult> ChangeName(TeamChangeName NameChange)
{
Team tEdit = await context.Teams.Include(t=>t.Cap).FirstOrDefaultAsync(t=>t.Id == NameChange.TeamID);
User cap = await context.Users.FirstOrDefaultAsync(u=>u.QRcode == NameChange.UserQR);
if(cap == tEdit.Cap){
tEdit.Nome = NameChange.nome;
}
context.Update(tEdit);
var result = context.SaveChanges();
return StatusCode(201);
}
// POST api/teams/delete
// create team
[HttpPost("delete")]
public async Task<IActionResult> DeleteTeam(TeamDelete DeleteData)
{
Team tEdit = await context.Teams.Include(t=>t.Cap).FirstOrDefaultAsync(t=>t.Id == DeleteData.TeamID);
User cap = await context.Users.FirstOrDefaultAsync(u=>u.QRcode == DeleteData.UserQR);
if(cap == tEdit.Cap){
context.Remove(tEdit);
var result = context.SaveChanges();
return StatusCode(201);
}else{
return StatusCode(403);
}
}
// POST api/teams/remove/member
// remove member
[HttpPost("remove/member")]
public async Task<IActionResult> RemoveTeamMember(TeamRemoveMEmber MemberToRemove)
{
User rmMember = await context.Users.FirstOrDefaultAsync(u=>u.QRcode == MemberToRemove.UserToRemoveQR);
Team tEdit = await context.Teams.Include(t=>t.Membros).FirstOrDefaultAsync(t=>t.Id == MemberToRemove.TeamID);
tEdit.NMembros--;
tEdit.Membros.Remove(rmMember);
context.Update(tEdit);
var result = context.SaveChanges();
return StatusCode(201);
}
}
}

View File

@ -23,9 +23,16 @@ namespace api.Data
return rEventLocs;
}
public async Task<EventLoc> GetEventLocEvent(int id)
public async Task<List<EventLoc>> GetEventLocEvent(int id)
{
var rEventLocs = await _context.EventLocs.FirstOrDefaultAsync(e=>e.EventId == id);
List<EventLoc> eLocs = await _context.EventLocs.ToListAsync();
List<EventLoc> rEventLocs = new List<EventLoc>();
eLocs.ForEach(delegate (EventLoc e){
if(e.EventId == id){
rEventLocs.Add(e);
}
});
return rEventLocs;
}

View File

@ -9,7 +9,7 @@ namespace api.Data
Task<IEnumerable<EventLoc>> GetEventLocs();
Task<EventLoc> GetEventLoc(int id);
Task<EventLoc> GetEventLocEvent(int id);
Task<List<EventLoc>> GetEventLocEvent(int id);
}

16
api/Dtos/EventForAdd.cs Normal file
View File

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using api.Models;
namespace api.Dtos
{
public class EventForAdd
{
[Required]
public string Nome{get;set;} //equipa id
[Required]
public string Desc{get;set;} //novo membro
}
}

28
api/Dtos/EventLocAdd.cs Normal file
View File

@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using api.Models;
namespace api.Dtos
{
public class EventLocAdd
{
[Required]
public int EventId{get;set;} //Event ID
[Required]
public float Lat{get;set;} //latitude
[Required]
public float Long{get;set;} //longitude
[Required]
public String Nome{get;set;} //Nome da localização
[Required]
public String Desc{get;set;} //Descrição
public Photo Img{get;set;} //Foto da localização
}
}

View File

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using api.Models;
namespace api.Dtos
{
public class EventLocVisitedAdd
{
[Required]
public String USerQR{get;set;} //User ID
[Required]
public int EventLocID{get;set;} //Loc id
[Required]
public int pontos{get;set;} //Pontos a adicionar
}
}

View File

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using api.Models;
namespace api.Dtos
{
public class TeamChangeName
{
[Required]
public int TeamID{get;set;} //teamid
[Required]
public string nome{get;set;} //novo nome
[Required]
public string UserQR{get;set;} //user qr
}
}

17
api/Dtos/TeamDelete.cs Normal file
View File

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using api.Models;
namespace api.Dtos
{
public class TeamDelete
{
[Required]
public int TeamID{get;set;} //teamid
[Required]
public string UserQR{get;set;} //user qr
}
}

View File

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using api.Models;
namespace api.Dtos
{
public class TeamRemoveMEmber
{
[Required]
public int TeamID{get;set;} //teamid
[Required]
public string UserQR{get;set;} //user qr
[Required]
public string UserToRemoveQR{get;set;} //user qr
}
}