Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        internal ActivityViewModel Get(int workLogId)
        {
            var activityModel = _context.WorkLogs.Single(u => u.WorkLogId == workLogId);

            return(ActivityViewModel.From(activityModel));
        }