public void AddTask(Task task)
        {
            var taskDal = new DatabaseFirst.Task
            {
                TaskId        = (int)task.TaskId,
                Subject       = task.Subject,
                StartDate     = task.StartDate,
                DueDate       = task.DueDate,
                CompletedDate = task.CompletedDate,
                CreatedDate   = _dateTime.UtcNow,
                Status        = _context.Set <Status>().SingleOrDefault(x => x.Name == "Not Started"),
                User          = _context.Set <User>().SingleOrDefault(x => x.Username == _userSession.Username)
            };

            taskDal = _context.Set <DatabaseFirst.Task>().Add(taskDal);
            _context.SaveChanges();
            task.TaskId      = taskDal.TaskId;
            task.CreatedDate = taskDal.CreatedDate;
            task.Status      = new Entities.Status
            {
                Name     = taskDal.Status.Name,
                Ordinal  = taskDal.Status.Ordinal,
                StatusId = taskDal.Status.StatusId
            };
            task.CreatedBy = new Entities.User
            {
                Firstname = taskDal.User.Firstname,
                Lastname  = taskDal.User.Lastname,
                Username  = taskDal.User.Username,
                UserId    = taskDal.User.UserId
            };
            AddTaskUser(task, taskDal);
        }
 private void AddTaskUser(Task task, DatabaseFirst.Task taskDal)
 {
     if (task.Users != null && task.Users.Any())
     {
         foreach (var user in task.Users)
         {
             var persistedUser = _context.Set <User>().SingleOrDefault(x => x.UserId == user.UserId);
             if (persistedUser == null)
             {
                 throw new ChildObjectNotFoundException("User not found");
             }
             _context.Set <TaskUser>().AddOrUpdate(new TaskUser
             {
                 TaskId = taskDal.TaskId,
                 UserId = (int)user.UserId,
                 ts     = DateTime.Now
             });
         }
     }
 }