public ActionResult <Model.DTO.AuditFileDTO> PostAuditFile(AuditFileInsertRequest AuditFile)
        {
            var newAuditFile = _AuditFilesService.PostAuditFile(AuditFile);

            return(CreatedAtAction(nameof(GetAuditFile), new { id = newAuditFile.AuditFileId }, newAuditFile));
        }
        public Model.DTO.TimeSheetDTO PutTimeSheet(int id, TimeSheetInsertRequest TimeSheet)
        {
            var existingTimeSheet = _context.TimeSheets.Find(id);

            if (existingTimeSheet == null)
            {
                return(null);
            }

            var currentUser   = usersService.GetCurrentUser();
            int currentUserId = currentUser.UserId;

            if (currentUser.Role.RoleName == "User")
            {
                TimeSheet.UserId = currentUserId;
            }

            if ((TimeSheet.StartTime.HasValue != existingTimeSheet.StartTime.HasValue) ||
                (TimeSheet.StartTime.HasValue && existingTimeSheet.StartTime.HasValue &&
                 TimeSheet.StartTime.Value.TimeOfDay != existingTimeSheet.StartTime.Value.TimeOfDay))
            {
                auditFilesService.PostAuditFile(new AuditFileInsertRequest
                {
                    ChangedByUserId = currentUserId,
                    Field           = Model.DTO.TimeSheetField.StartTime,
                    TimeSheetId     = id,
                    OldValue        = existingTimeSheet.StartTime,
                    NewValue        = TimeSheet.StartTime
                });
            }

            if ((TimeSheet.EndTime.HasValue != existingTimeSheet.EndTime.HasValue) ||
                (TimeSheet.EndTime.HasValue && existingTimeSheet.EndTime.HasValue &&
                 TimeSheet.EndTime.Value.TimeOfDay != existingTimeSheet.EndTime.Value.TimeOfDay))
            {
                auditFilesService.PostAuditFile(new AuditFileInsertRequest
                {
                    ChangedByUserId = currentUserId,
                    Field           = Model.DTO.TimeSheetField.EndTime,
                    TimeSheetId     = id,
                    OldValue        = existingTimeSheet.EndTime,
                    NewValue        = TimeSheet.EndTime
                });
            }
            if ((TimeSheet.BreakTime.HasValue != existingTimeSheet.BreakTime.HasValue) ||
                (TimeSheet.BreakTime.HasValue && existingTimeSheet.BreakTime.HasValue &&
                 TimeSheet.BreakTime.Value.TimeOfDay != existingTimeSheet.BreakTime.Value.TimeOfDay))
            {
                auditFilesService.PostAuditFile(new AuditFileInsertRequest
                {
                    ChangedByUserId = currentUserId,
                    Field           = Model.DTO.TimeSheetField.BreakTime,
                    TimeSheetId     = id,
                    OldValue        = existingTimeSheet.BreakTime,
                    NewValue        = TimeSheet.BreakTime
                });
            }

            _mapper.Map(TimeSheet, existingTimeSheet);
            _context.SaveChanges();

            return(_mapper.Map <Model.DTO.TimeSheetDTO>(existingTimeSheet));
        }