示例#1
0
        /// <summary>
        /// This method returns a specific task work.
        /// </summary>
        /// <param name="id">Task work id.</param>
        /// <returns>A TaskWork object.</returns>
        public async Task <TaskWorkWrapperVO <TaskWorkVO> > GetAsync(int id)
        {
            using (var db = new PoWDbContext())
            {
                var result = new TaskWorkWrapperVO <TaskWorkVO>();
                var query  = from tw in db.TaskWorks
                             where tw.Id == id
                             select new TaskWorkVO()
                {
                    Id          = tw.Id,
                    Title       = tw.Title,
                    Description = tw.Description,
                    Status      = tw.Status
                };

                result.TaskWork = await query.SingleOrDefaultAsync();

                if (result.TaskWork == null)
                {
                    throw new EntityNotFoundException();
                }

                return(result);
            }
        }
示例#2
0
        /// <summary>
        /// This method creates a new task work.
        /// </summary>
        /// <param name="vo">New task work object.</param>
        public async Task <int> InsertAsync(TaskWorkInsertVO vo)
        {
            using (var db = new PoWDbContext())
            {
                TaskWork entity = new TaskWork();
                entity.Title       = vo.Title;
                entity.Description = vo.Description;
                entity.CreateDate  = DateTime.Now;
                entity.Status      = TaskWorkStatus.TODO;

                db.TaskWorks.Add(entity);
                await db.SaveChangesAsync();

                return(entity.Id);
            }
        }
示例#3
0
        /// <summary>
        /// This method removes an existing task work.
        /// </summary>
        /// <param name="id">Task work id.</param>
        public async Task DeleteAsync(int id)
        {
            using (var db = new PoWDbContext())
            {
                var entity = await db.TaskWorks.Where(tw => tw.Id == id).SingleOrDefaultAsync();

                if (entity == null)
                {
                    throw new EntityNotFoundException();
                }

                entity.EditDate   = DateTime.Now;
                entity.RemoveDate = DateTime.Now;
                entity.Status     = TaskWorkStatus.REMOVED;

                await db.SaveChangesAsync();
            }
        }
示例#4
0
        /// <summary>
        /// This method edits an existing task work.
        /// </summary>
        /// <param name="id">Task work id.</param>
        /// <param name="vo">Task work object to be edited.</param>
        public async Task UpdateAsync(int id, TaskWorkVO vo)
        {
            using (var db = new PoWDbContext())
            {
                var entity = await db.TaskWorks.Where(tw => tw.Id == id).SingleOrDefaultAsync();

                if (entity == null)
                {
                    throw new EntityNotFoundException();
                }

                switch (vo.Status)
                {
                case TaskWorkStatus.UNKNOW:
                    throw new System.Exception("Status da tarefa inválido.");

                case TaskWorkStatus.TODO:
                case TaskWorkStatus.DOING:
                    entity.EditDate = DateTime.Now;
                    break;

                case TaskWorkStatus.DONE:
                    entity.EditDate  = DateTime.Now;
                    entity.CloseDate = DateTime.Now;
                    break;

                case TaskWorkStatus.REMOVED:
                    entity.EditDate   = DateTime.Now;
                    entity.RemoveDate = DateTime.Now;
                    break;

                default:
                    break;
                }

                entity.Title       = vo.Title;
                entity.Description = vo.Description;
                entity.Status      = vo.Status;

                await db.SaveChangesAsync();
            }
        }
示例#5
0
        /// <summary>
        /// This method returns an entire list of task works.
        /// </summary>
        /// <returns>A list of TaskWorks objects.</returns>
        public async Task <TaskWorkListVO <TaskWorkVO> > GetListAsync()
        {
            using (var db = new PoWDbContext())
            {
                var result = new TaskWorkListVO <TaskWorkVO>();
                var query  = from tw in db.TaskWorks
                             where tw.Status != TaskWorkStatus.REMOVED
                             select new TaskWorkVO()
                {
                    Id          = tw.Id,
                    Title       = tw.Title,
                    Description = tw.Description,
                    Status      = tw.Status
                };

                result.TaskWorks = await query.ToListAsync();

                return(result);
            }
        }