public IActionResult Update(string id, [FromBody] TimecardLine timecardLine, Guid uniqueIdentifier)
        {
            Timecard timecard = Database.Find(id);

            if (timecard != null)
            {
                if (timecard.Resource != timecardLine.Resource)
                {
                    return(StatusCode(408, new InvalidResource()
                    {
                    }));
                }

                if (timecard.Status == TimecardStatus.Draft || timecard.Status == TimecardStatus.Cancelled)
                {
                    var old_line = new AnnotatedTimecardLine(timecard.Lines
                                                             .FirstOrDefault(t => t.UniqueIdentifier == uniqueIdentifier));

                    var annotatedLine = timecard.UpdateLine(old_line, timecardLine, uniqueIdentifier);
                    return(Ok(annotatedLine));
                }
                else
                {
                    return(StatusCode(409, new InvalidStateError()
                    {
                    }));
                }
            }
            else
            {
                return(NotFound());
            }
        }
Пример #2
0
        public IActionResult GetLineId(string id, string lineId)
        {
            Timecard timecard = Database.Find(id);

            if (timecard != null)
            {
                int index = timecard.searchLine(lineId);

                if (index >= 0)
                {
                    AnnotatedTimecardLine line = timecard.Lines[index];
                    return(Ok(line));
                }
                else
                {
                    return(NotFound());
                }
            }
            else
            {
                return(NotFound());
            }
        }