Ejemplo n.º 1
0
        public IActionResult ReplaceLine(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()
                {
                }));
            }

            timecard.RemoveLine(Guid.Parse(lineId));
            var newLine = timecard.AddLine(timecardLine);

            return(Ok(newLine));
        }
Ejemplo n.º 2
0
        public IActionResult ReplaceLine(Guid id, [FromBody] DocumentLine newLine, Guid lineId)
        {
            logger.LogInformation($"Looking for timesheet {id} , line {lineId} ");

            Timecard timecard = repository.Find(id);

            if (timecard == null)
            {
                return(NotFound());
            }

            if (timecard != null)
            {
                if (timecard.Status != TimecardStatus.Draft)
                {
                    return(StatusCode(409, new InvalidStateError()
                    {
                    }));
                }

                timecard.RemoveLine(lineId);

                var replaceLine = timecard.AddLine(newLine);

                repository.Update(timecard);

                return(Ok(replaceLine));
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 3
0
        public IActionResult ReplaceLine(Guid id, [FromBody] DocumentLine documentLine, Guid lineId)
        {
            logger.LogInformation($"Looking for timesheet {id} and line {lineId}");

            Timecard timecard = repository.Find(id);

            if (timecard != null)
            {
                if (timecard.Status != TimecardStatus.Draft)
                {
                    return(StatusCode(409, new InvalidStateError()
                    {
                    }));
                }

                //replace line
                if (timecard.HasLine(lineId))
                {
                    //remove the line
                    if (timecard.RemoveLine(lineId))
                    {
                        repository.Update(timecard);
                        //add the new line
                        return(AddLine(id, documentLine));
                    }
                    else
                    {
                        //unable to remove line
                        return(StatusCode(409, new RemoveLineError()
                        {
                        }));
                    }
                }
            }
            return(NotFound());
        }