// 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)); }
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 })); }
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()); }
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)); }