Example #1
0
        public IActionResult UpdateLine(string timecardId, string lineId, [FromBody] TimecardLine timecardLine, [ModelBinder] int resource)
        {
            Timecard timecard = Database.Find(timecardId);

            if (timecard == null || !timecard.DoesLineExist(Guid.Parse(lineId)))
            {
                return(NotFound());
            }
            if (timecard.Status != TimecardStatus.Draft)
            {
                return(StatusCode(409, new InvalidStateError()
                {
                }));
            }
            if (resource != timecard.Resource)
            {
                return(StatusCode(409, new InvalidResourceError()
                {
                }));
            }

            var updatedLine = timecard.UpdateLine(Guid.Parse(lineId), timecardLine);

            return(Ok(updatedLine));
        }