Example #1
0
        // if works don't modify
        public async Task <ActionResult <LogDto> > PutLog(Guid id, LogForCreationDto log)
        {
            var logForUpdate = _context.Logs
                               .Include(c => c.Categories)
                               .FirstOrDefault(l => l.LogId == log.LogId);

            logForUpdate?.Categories.Clear();

            var categories =
                log.Categories.Select(c => _context.Categories.FirstOrDefault(x => x.CategoryId == c)).ToList();

            categories.ForEach(i =>
            {
                logForUpdate?.Categories.Add(i);
            });

            logForUpdate !.MechanicId = log.Mechanic;
            logForUpdate !.Name       = log.Name;
            logForUpdate !.Details    = log.Details;

            _context.Update(logForUpdate !);
            await _context.SaveChangesAsync();

            return(_mapper.Map <LogDto>(logForUpdate));
        }
Example #2
0
        public async Task <TaskDetailsDto> AddNewLog([FromRoute] int teamId,
                                                     [FromRoute] int taskId, [FromBody] LogForCreationDto dto)
        {
            dto.TasksId = taskId;
            dto.TeamId  = teamId;

            return(await _mediator.Send(new AddLogToATaskCommand { LogForCreationDto = dto }));
        }
Example #3
0
        public async Task <int> ChangeStatusBasedOnAdminApproval(Tasks task, LogForCreationDto log)
        {
            task.Status = log.TaskStatus;

            if (_accessor.HttpContext.User.IsInRole("Admin") &&
                task.Status == TaskStatus.Done)
            {
                task.AdminApprovalOfTaskCompletion = TrackerTaskStatus.Approved;
                return(await _context.SaveChangesAsync());
            }

            if (task.Status == TaskStatus.Done &&
                task.AdminApprovalOfTaskCompletion != TrackerTaskStatus.Approved)
            {
                task.Status = TaskStatus.Pending;
            }

            return(await _context.SaveChangesAsync());
        }
Example #4
0
        public async Task <ActionResult <LogDto> > PostLog(LogForCreationDto createLog)
        {
            var user = await _userManager.FindByIdAsync(createLog.Mechanic.ToString());

            var newLog = new Log
            {
                Name       = createLog.Name,
                MechanicId = createLog.Mechanic,
                Details    = createLog.Details,
                Categories = createLog.Categories.Select(c => _context.Categories.Find(c)).ToList()
            };
            await _context.Logs.AddAsync(newLog);

            await _context.SaveChangesAsync();

            createLog.LogId = newLog.LogId;
            var outputLog = _mapper.Map <LogDto>(newLog);

            return(CreatedAtAction("GetLog", new { id = createLog.LogId }, outputLog));
        }