private async System.Threading.Tasks.Task CloneTask(List <Data.Entities.Task> tasks, int projectId)
        {
            int parentID = 0;

            foreach (var item in tasks)
            {
                if (item.JobTypeID == JobType.Project)
                {
                    if (item.Level == 1)
                    {
                        parentID = 0;
                    }
                    var itemAdd = new Data.Entities.Task
                    {
                        JobName    = item.JobName,
                        JobTypeID  = item.JobTypeID,
                        periodType = item.periodType,
                        OCID       = item.OCID,
                        CreatedBy  = item.CreatedBy,
                        FromWhoID  = item.FromWhoID,
                        Priority   = item.Priority,
                        Level      = item.Level,
                        ProjectID  = projectId,
                        ParentID   = parentID
                    };
                    itemAdd.CreatedDate = DateTime.Now;
                    await _taskRepository.AddAsync(itemAdd);

                    await _unitOfWork.Commit();

                    parentID = itemAdd.ID;
                }
            }
        }
예제 #2
0
        public async Task <IActionResult> CreateTask([FromBody] TaskViewModel task)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(new Response(false, "Data is invalid")));
                }

                var user = await _uow.UserRepository.FindById(task.UserId);

                if (user == null)
                {
                    return(BadRequest(new Response(false, "User not found")));
                }

                var newTask = new Data.Entities.Task(task.Description, task.UserId);
                _uow.TaskRepository.Create(newTask);
                var rows = await _uow.CommitAsync();

                if (rows == 0)
                {
                    return(BadRequest(new Response(false, "Something went wrong when create task")));
                }

                return(Ok(new Response(true, "Task create successfully!", newTask)));
            } catch (Exception e)
            {
                _uow.Rollback();
                return(BadRequest(new Response(false, e.Message)));
            }
        }
        public virtual Task CreateTaskResponse(Data.Entities.Task taskEntity)
        {
            var task = _autoMapper.Map <Task>(taskEntity);

            _taskLinkService.AddLinks(task);
            return(task);
        }
예제 #4
0
        internal Data.Entities.Task ToEntity(Data.Entities.Task entity, string username)
        {
            entity.TaskName   = this.TaskName;
            entity.Modified   = DateTime.Now;
            entity.ModifiedBy = username;

            return(entity);
        }
예제 #5
0
        public IActionResult CreateTask(Data.Entities.Task task)
        {
            if (!ModelState.IsValid)
            {
                return(View(task));
            }
            var jj   = User.Identity.Name;
            var user = _userRepository.FindUserByName(User.Identity.Name);

            task.UserId = user.Id;
            _taskRepository.CreateTask(task);
            _taskRepository.Commit();
            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> PostTask([FromBody] TaskModel taskModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = await _userManager.GetUserAsync(HttpContext.User);

            var task = new Data.Entities.Task()
            {
                Title       = taskModel.Title,
                Description = taskModel.Description,
                OwnerUserID = user.Id,
                Created     = DateTime.Now
            };

            _tasksUnitOfWork.GetTaksRepository().Add(task);

            await _tasksUnitOfWork.SaveChangesAsync();

            task = _tasksUnitOfWork.GetTaksRepository().GetAll().Where(p => p.ID == task.ID).IncludeMultiple(t => t.OwnerUser, t => t.AssignedToUser).FirstOrDefault();

            return(Ok(new TaskModel
            {
                ID = task.ID,
                Title = task.Title,
                Description = task.Description,
                Created = task.Created,
                OwnerUser = new UserModel()
                {
                    ID = task.OwnerUser.Id,
                    Username = task.OwnerUser.UserName,
                    Email = task.OwnerUser.Email
                },
                AssignedToUser = task.AssignedToUser != null ? new UserModel()
                {
                    ID = task.AssignedToUser.Id,
                    Username = task.AssignedToUser.UserName,
                    Email = task.AssignedToUser.Email
                } : null,
                Completed = task.Completed
            }));
        }
예제 #7
0
        public static void Main(string[] args)
        {
            _repository = new TaskRepository(CreateContext(), true);

            ClearAndPrint("Screens/Menu.txt");

            while (_running)
            {
                var input = Console.ReadKey();

                try
                {
                    if (char.IsDigit(input.KeyChar))
                    {
                        int taskId;
                        switch ((int)char.GetNumericValue(input.KeyChar))
                        {
                            case 1:
                                Clear();
                                Console.WriteLine("Current open tasks:");
                                if (!_repository.Entities.Any())
                                {
                                    Console.WriteLine("No open tasks...");
                                }

                                foreach (var task in _repository.ExecuteQuery(new ExampleRepositoryQuery { HideCompleted = true }))
                                {
                                    Console.WriteLine($"{task.Id} - {task.Description}");
                                }

                                Console.Write("\nPress any key to return...");
                                Console.ReadKey();
                                break;
                            case 2:
                                Clear();
                                var newTask = new Data.Entities.Task();
                                Console.WriteLine("Input task description:");
                                Console.Write("> ");
                                newTask.Description = Console.ReadLine();
                                _repository.Add(newTask);
                                _repository.SaveChanges();
                                break;
                            case 3:
                                Clear();
                                Console.Write("Task ID to mark as done > ");
                                taskId = (int)char.GetNumericValue(Console.ReadKey().KeyChar);
                                var taskToMark = _repository.Find(taskId);
                                taskToMark.Done = true;
                                taskToMark.LastChangeAt = DateTime.UtcNow;
                                _repository.SaveChanges();
                                break;
                            case 4:
                                Clear();
                                Console.Write("Task ID to delete > ");
                                taskId = (int)char.GetNumericValue(Console.ReadKey().KeyChar);
                                _repository.Remove(taskId);
                                _repository.SaveChanges();
                                break;
                            case 0:
                                _running = false;
                                break;
                            default:
                                throw new ArgumentOutOfRangeException(nameof(input.KeyChar));
                        }
                    }
                    else
                    {
                        throw new InvalidCastException(nameof(input.KeyChar));
                    }
                }
                catch (Exception exception)
                {
                    if (exception is ArgumentOutOfRangeException) Console.WriteLine("Invalid option selected.");
                    else if (exception is InvalidCastException) Console.WriteLine("Invalid character given.");
                    else if (exception is KeyNotFoundException) Console.WriteLine("No such task was found.");
                    else throw;
                }

                ClearAndPrint("Screens/Menu.txt");
            }
        }
 protected override List <User> ResolveCore(Data.Entities.Task source)
 {
     return(source.Users.Select(x => AutoMapper.Map <User>(x)).ToList());
 }
예제 #9
0
 public void MarkAsModified(Data.Entities.Task t)
 {
 }