public void JoinTeam(HttpListenerContext context) { string[] parameters = context.Request.RawUrl.Replace("/Join/Team/", "").Split('/'); int teamId = int.Parse(parameters[0]); string token = parameters[1]; var session = SessionManager.GetSession(token); var personDTO = RESTHelper.GetObject <PersonDTO>(context); if (session.user.People.Any(p => p.PersonId == personDTO.Id)) { UnitOfWork unit = new UnitOfWork(session.context); var team = unit.Teams.GetTeamWithMembers(teamId); var person = unit.People.Get(personDTO.Id.Value); if (team != null && !team.Members.Any(m => m.Id == person.Id)) { team.Members.Add(person); unit.Complete(); } MyResponder.RespondJson(context, team.ToDTO()); } }
public void Login(HttpListenerContext context) { Console.WriteLine("URL: {0}", context.Request.RawUrl); var userDTO = RESTHelper.GetObject <UserDTO>(context); Session session = new Session(userDTO.Login, userDTO.Password); var respondObject = new UserDTO(session.user); MyResponder.RespondJson(context, respondObject); }
public void UpdatePerson(HttpListenerContext context) { string token = context.Request.RawUrl.Replace("/Update/Person/", ""); var session = SessionManager.GetSession(token); var personDTO = RESTHelper.GetObject <PersonDTO>(context); UnitOfWork unit = new UnitOfWork(session.context); if (personDTO.Id != null) { var person = unit.People.Get(personDTO.Id.Value); person.Name = personDTO.Name; person.Surname = personDTO.Surname; person.PESEL = personDTO.PESEL; person.DateOfBirth = personDTO.DateOfBirth; unit.Complete(); MyResponder.RespondJson(context, personDTO); } else { var user = session.user; var person = personDTO.ToPerson(); person.OwnerID = user.Id.Value; unit.People.Add(person); session.context.SaveChanges(); person = unit.People.Find(p => p.OwnerID == user.Id).FirstOrDefault(); var connection = new UserToPersonConnection(user.Id.Value, person.Id.Value, ConnectionType.PersonToOwner); person.Users.Add(connection); user.People.Add(connection); unit.Complete(); personDTO = person.ToPersonDTO(); MyResponder.RespondJson(context, personDTO); } }
public void SaveChallenge(HttpListenerContext context) { string[] parameters = context.Request.RawUrl.Replace("/Save/Challenge/", "").Split('/'); string token = parameters[0]; var session = SessionManager.GetSession(token); var unit = new UnitOfWork(session.context); var personChallengesDTO = RESTHelper.GetObject <ChallengeDTO[]>(context).ToList(); var ChallengeTypeId = personChallengesDTO.First().Task.ChallangeTypeId; if (personChallengesDTO.All(c => c.Id.HasValue)) { SaveChanges(session, unit, personChallengesDTO); MyResponder.RespondJson(context, personChallengesDTO); } else { var resultDTO = CreateChallenges(personChallengesDTO, unit); MyResponder.RespondJson(context, resultDTO); } }