public static int AnalyzeOriginalMinute(WriteJobTimesheetPayload payload) { if (payload.IsDuration.Value) { return(payload.Minutes); } return(Convert.ToInt32((payload.EndDateTime - payload.StartDateTime).Value.TotalMinutes)); }
public static int AnalyzeRoundedMinute(WriteJobTimesheetPayload payload) { var minutes = AnalyzeOriginalMinute(payload); //TODO: settings rounded if (minutes % 30 > 0) { minutes = 30 * (minutes / 30) + 30; } return(minutes); }
public static JobTimesheetTypes AnalyzeType(WriteJobTimesheetPayload payload) { if (payload.IsDuration.Value) { return(JobTimesheetTypes.Draft); } if (!payload.IsDuration.Value && (!payload.StartDateTime.HasValue || !payload.EndDateTime.HasValue)) { return(JobTimesheetTypes.Draft); } return(JobTimesheetTypes.Timesheet); }
public IHttpActionResult Post( [FromUri] CreateJobTimesheetRequest request, [FromBody] WriteJobTimesheetPayload payload) { if (!ModelState.IsValid) { return(BadRequestWithErrors()); } //TODO: validator //TODO: staff privilege (admin can create timesheet for others, but others can only create for themselves) request.Payload = payload; var result = _createRequestProcessor.Process(request); return(Ok(result)); }