Beispiel #1
0
        private async Task <Data.Models.Task> MapToDataModel(TaskServiceModel entity, string userId)
        {
            Data.Models.Task task = new Data.Models.Task
            {
                Id              = entity.Id,
                Name            = entity.Name,
                Description     = entity.Description,
                Budget          = entity.Budget,
                CompleationDate = entity.CompleationDate,
                DueDate         = entity.DueDate,
                PictureUrl      = entity.PictureUrl
            };

            User user = await this._userManager.FindByIdAsync(userId);

            task.Issuer = user;

            TaskCategory taskCategory = this._context.TaskCategories.Find(entity.TaskCategoryId);

            task.TaskCategory = taskCategory;

            Data.Models.TaskStatus taskStatus = this._context.TaskStatuses.Find(entity.TaskStatusId);
            task.TaskStatus = taskStatus;

            Location location = this._context.Locations.Find(entity.LocationId);

            task.Location = location;

            return(task);
        }
Beispiel #2
0
        public async System.Threading.Tasks.Task PutForReview(TaskServiceModel taskServiceModel)
        {
            Data.Models.TaskStatus taskStatus = await this._context.TaskStatuses.FirstAsync(x => x.Name == TaskStatusesConstants.ForReview);

            taskServiceModel.TaskStatus = new TaskStatusServiceModel {
                Id = taskStatus.Id, Name = taskStatus.Name
            };
            taskServiceModel.TaskStatusId = taskStatus.Id;

            await this.UpdateAsync(taskServiceModel, taskServiceModel.Issuer.Id, false);
        }
Beispiel #3
0
        public async Task <TaskServiceModel> CreateAsync(TaskServiceModel entity, string userId)
        {
            HauseKeeping.Data.Models.Task task = await MapToDataModel(entity, userId);

            Data.Models.TaskStatus taskStatus = this._context.TaskStatuses.FirstOrDefault(x => x.Name == TaskStatusesConstants.Awaiting);
            task.TaskStatus = taskStatus;

            await this._context.AddAsync(task);

            await this._context.SaveChangesAsync();

            return(null);
        }
Beispiel #4
0
        //TODO: isUser should be falase best practice
        public async Task <TaskServiceModel> UpdateAsync(TaskServiceModel entity, string issuerrId, bool isUser = true)
        {
            User user = await this._userManager.FindByIdAsync(issuerrId);

            Data.Models.Task task = await this._context.Tasks.Include(x => x.Location)
                                    .Include(x => x.Issuer)
                                    .Include(x => x.Assignee)
                                    .Include(x => x.TaskStatus)
                                    .Include(x => x.TaskCategory)
                                    .FirstOrDefaultAsync(x => x.Id == entity.Id);

            if (isUser)
            {
                if (task.TaskStatus.Name != TaskStatusesConstants.Awaiting)
                {
                    throw new TaskNotCorrectStatusException($"Only tasks with status {TaskStatusesConstants.Awaiting} can be editted!");
                }
            }

            task.Name            = entity.Name;
            task.Description     = entity.Description;
            task.Budget          = entity.Budget;
            task.CompleationDate = entity.CompleationDate;
            task.DueDate         = entity.DueDate;
            task.PictureUrl      = entity.PictureUrl;

            if (entity.AssigneeId != null)
            {
                User assignee = await this._userManager.FindByIdAsync(entity.AssigneeId);

                task.Assignee = assignee;
            }

            TaskCategory taskCategory = this._context.TaskCategories.Find(entity.TaskCategoryId);

            task.TaskCategory = taskCategory;

            Data.Models.TaskStatus taskStatus = this._context.TaskStatuses.Find(entity.TaskStatusId);
            task.TaskStatus = taskStatus;

            task.Issuer = user;

            Location location = this._context.Locations.Find(entity.LocationId);

            task.Location = location;

            this._context.Update(task);
            await this._context.SaveChangesAsync();

            return(null);
        }
Beispiel #5
0
        public async System.Threading.Tasks.Task ChangeStatus(string id, string statusName, string requieredStatusName)
        {
            Data.Models.Task task = this._context.Tasks
                                    .Include(x => x.Location)
                                    .Include(x => x.Issuer)
                                    .Include(x => x.Assignee)
                                    .Include(x => x.TaskStatus)
                                    .Include(x => x.TaskCategory)
                                    .FirstOrDefault(x => x.Id == id);

            if (task.TaskStatus.Name != requieredStatusName)
            {
                throw new TaskNotCorrectStatusException($"Task with status {task.TaskStatus.Name} can not recive status {statusName}!");
            }

            Data.Models.TaskStatus taskStatus = await this._context.TaskStatuses.FirstOrDefaultAsync(x => x.Name == statusName);

            task.TaskStatus = taskStatus;

            this._context.Update(task);
            await this._context.SaveChangesAsync();
        }