예제 #1
0
        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());
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
            }
        }
예제 #4
0
        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);
            }
        }