public Task CreateTask(Data.Model.Task modelTask)
        {
            var task = new Task
            {
                TaskId        = modelTask.TaskId,
                Subject       = modelTask.Subject,
                StartDate     = modelTask.StartDate,
                DateCompleted = modelTask.DateCompleted,
                DueDate       = modelTask.DueDate,
                CreatedDate   = modelTask.CreatedDate,
                Status        = _statusMapper.CreateStatus(modelTask.Status),
                Priority      = _priorityMapper.CreatePriority(modelTask.Priority),
                Categories    = modelTask
                                .Categories
                                .Select(_categoryMapper.CreateCategory)
                                .ToList(),
                Assignees = modelTask
                            .Users
                            .Select(_userMapper.CreateUser)
                            .ToList()
            };

            task.Links = new List <Link>
            {
                new Link
                {
                    Title = "self",
                    Rel   = "self",
                    Href  = "/api/tasks/" + task.TaskId
                },
                new Link
                {
                    Title = "Categories",
                    Rel   = "categories",
                    Href  = "/api/tasks/" + task.TaskId + "/categories"
                },
                new Link
                {
                    Title = "Assignees",
                    Rel   = "users",
                    Href  = "/api/tasks/" + task.TaskId + "/users"
                }
            };

            return(task);
        }
Exemple #2
0
        public HttpResponseMessage Post(HttpRequestMessage request, Task task)
        {
            var currentUser = _session.Get <Data.Model.User>(_userSession.UserId);

            var modelTask = new Data.Model.Task
            {
                CreatedDate   = _dateTime.UtcNow,
                CreatedBy     = currentUser,
                Subject       = task.Subject,
                DateCompleted = task.DateCompleted,
                DueDate       = task.DueDate,
                StartDate     = task.StartDate,
                Priority      = _session.Get <Data.Model.Priority>(task.Priority.PriorityId),
                Status        = _session.Get <Data.Model.Status>(task.Status.StatusId)
            };

            foreach (var category in task.Categories)
            {
                var modelCategory = _session.Get <Data.Model.Category>(category.CategoryId);
                modelTask.Categories.Add(modelCategory);
            }

            foreach (var user in task.Assignees)
            {
                var modelUser = _session.Get <Data.Model.User>(user.UserId);
                modelTask.Users.Add(modelUser);
            }

            _session.SaveOrUpdate(modelTask);

            var newTask = _taskMapper.CreateTask(modelTask);

            var href = newTask.Links.First(x => x.Rel == "self").Href;

            var response = request.CreateResponse(HttpStatusCode.Created, newTask);

            response.Headers.Add("Location", href);

            return(response);
        }
        public HttpResponseMessage Post(HttpRequestMessage request, Task task)
        {
            var currentUser = _session.Get<Data.Model.User>(_userSession.UserId);

            var modelTask = new Data.Model.Task
                                {
                                    CreatedDate = _dateTime.UtcNow,
                                    CreatedBy = currentUser,
                                    Subject = task.Subject,
                                    DateCompleted = task.DateCompleted,
                                    DueDate = task.DueDate,
                                    StartDate = task.StartDate,
                                    Priority = _session.Get<Data.Model.Priority>(task.Priority.PriorityId),
                                    Status = _session.Get<Data.Model.Status>(task.Status.StatusId)
                                };

            foreach (var category in task.Categories)
            {
                var modelCategory = _session.Get<Data.Model.Category>(category.CategoryId);
                modelTask.Categories.Add(modelCategory);
            }

            foreach (var user in task.Assignees)
            {
                var modelUser = _session.Get<Data.Model.User>(user.UserId);
                modelTask.Users.Add(modelUser);
            }

            _session.SaveOrUpdate(modelTask);

            var newTask = _taskMapper.CreateTask(modelTask);

            var href = newTask.Links.First(x => x.Rel == "self").Href;

            var response = request.CreateResponse(HttpStatusCode.Created, newTask);
            response.Headers.Add("Location", href);

            return response;
        }
Exemple #4
0
 /// <summary>
 /// Create a new <see cref="Altask.www.Models.TaskInstance"/> from a <see cref="Altask.Data.Model.Schedule"/>.
 /// </summary>
 /// <param name="task"></param>
 /// <param name="date"></param>
 /// <param name="schedule"></param>
 /// <returns></returns>
 public static TaskInstance FromSchedule(Data.Model.Task task, DateTime date, Data.Model.Schedule schedule)
 {
     return(FromSchedule(task.ToDto(), date, schedule.ToDto()));
 }