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);
        }
Example #4
0
        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));
        }