public IHttpActionResult PostProject(Project project)
        {
            if (project == null)
            {
                throw new ArgumentNullException("project");
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Entry(project).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ProjectExists(project.ProjectId))
                {
                    return(NotFound());
                }

                throw;
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public IHttpActionResult PostUserTeam(UserTeam userTeam)
        {
            if (userTeam == null)
            {
                throw new ArgumentNullException("userTeam");
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Entry(userTeam).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!UserTeamExists(userTeam.UserTeamId))
                {
                    return(NotFound());
                }

                throw;
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public IHttpActionResult Get(Guid id)
        {
            Task task = db.Tasks.Find(id);

            if (task == null)
            {
                return(NotFound());
            }

            db.Entry(task).Collection("Pomodoroes").Load();
            task.Project = null; // unload all of this for serialization
            task.User    = null;
            task.Team    = null;
            if (task.Pomodoroes != null)
            {
                foreach (var pomodoro in task.Pomodoroes)
                {
                    pomodoro.Task = null;
                }
            }
            return(Ok(task));
        }
        public IHttpActionResult Get(Guid id)
        {
            var user = db.Users.Find(id);

            if (user == null)
            {
                return(NotFound());
            }

            db.Entry(user).Collection("Tasks").Load();
            foreach (var task in user.Tasks)
            {
                task.User = null;
                if (task.Pomodoroes != null)
                {
                    foreach (var pomodoro in task.Pomodoroes)
                    {
                        pomodoro.Task = null;
                    }
                }
            }

            return(Ok(user));
        }