internal ActivityViewModel Update(ActivityViewModel workLog, int userId) { var workLogToUpdate = _context.WorkLogs.Single(u => u.WorkLogId == workLog.Id); if (workLogToUpdate.User.UserId != userId) { throw new UnauthorizedAccessException("You are not allowed to edit this worklog!"); } workLogToUpdate.Hours = workLog.Hours; workLogToUpdate.Description = workLog.Description; _context.SaveChanges(); return(ActivityViewModel.From(workLogToUpdate)); }
internal ActivityViewModel Create(ActivityViewModel activityViewModel) { if (activityViewModel.TaskId == 0) { throw new ValidationException("Please select a task!"); } var startDate = activityViewModel.Date.Date; var endDate = activityViewModel.Date.Date.AddDays(1); var workLog = _context.WorkLogs.SingleOrDefault(l => l.Task.TaskId == activityViewModel.TaskId && l.User.UserId == activityViewModel.UserId && l.Date >= startDate && l.Date <= endDate); if (workLog == null) { workLog = new WorkLog { Date = activityViewModel.Date + DateTime.Now.TimeOfDay, Hours = activityViewModel.Hours, Description = activityViewModel.Description, Task = _context.Tasks.Single(t => t.TaskId == activityViewModel.TaskId), User = _context.Users.Single(u => u.UserId == activityViewModel.UserId), }; _context.WorkLogs.Add(workLog); } else { workLog.Hours += activityViewModel.Hours; } _context.SaveChanges(); return(ActivityViewModel.From(workLog)); }
internal ActivityViewModel Get(int workLogId) { var activityModel = _context.WorkLogs.Single(u => u.WorkLogId == workLogId); return(ActivityViewModel.From(activityModel)); }