public void UpsertTimeSheetEntry(Model.DTO.RequestDTO updatedRequest, int UserId, DateTime startDate, DateTime?endDate = null) { DayType dayType = updatedRequest.RequestType == Model.DTO.RequestType.Vacation ? DayType.Vacation : DayType.TimeConsumption; var existingTimeSheets = timeSheetsAPIService.GetTimeSheets(new TimeSheetSearchRequest { UserId = updatedRequest.UserId, Month = startDate.Month, Year = startDate.Year, Day = startDate.Day }); TimeSheetInsertRequest request; if (existingTimeSheets.Count > 0) { var existingTimeSheet = existingTimeSheets[0]; request = mapper.Map <TimeSheetInsertRequest>(existingTimeSheet); } else { request = new TimeSheetInsertRequest { UserId = UserId, }; } request.DayType = dayType; request.Status = Model.DTO.Status.Closed; if (dayType == DayType.TimeConsumption) { request.EntryDate = startDate.Date; request.StartTime = startDate; request.EndTime = endDate; } else if (dayType == DayType.Vacation) { request.EntryDate = startDate; } if (existingTimeSheets.Count > 0) { timeSheetsAPIService.PutTimeSheet(request.TimeSheetId, request); } else { timeSheetsAPIService.PostTimeSheet(request); } }
public Model.DTO.TimeSheetDTO PostTimeSheet(TimeSheetInsertRequest TimeSheet) { var newTimeSheet = _mapper.Map <TimeSheet>(TimeSheet); if (newTimeSheet.EntryDate == DateTime.MinValue) { newTimeSheet.EntryDate = DateTime.Now; } _context.TimeSheets.Add(newTimeSheet); _context.SaveChanges(); return(_mapper.Map <Model.DTO.TimeSheetDTO>(newTimeSheet)); }
public ActionResult <Model.DTO.TimeSheetDTO> PutTimeSheet(int id, TimeSheetInsertRequest TimeSheet) { if (id != TimeSheet.TimeSheetId) { return(BadRequest()); } if (!_TimeSheetsService.TimeSheetExists(id)) { return(NotFound()); } return(_TimeSheetsService.PutTimeSheet(id, TimeSheet)); }
public ActionResult <Model.DTO.TimeSheetDTO> PostTimeSheet(TimeSheetInsertRequest TimeSheet) { var newTimeSheet = _TimeSheetsService.PostTimeSheet(TimeSheet); return(CreatedAtAction(nameof(GetTimeSheet), new { id = newTimeSheet.TimeSheetId }, newTimeSheet)); }
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)); }