public IActionResult Submit(string id, [FromBody] Submittal submittal)
        {
            Timecard timecard = Database.Find(id);

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

                if (timecard.Lines.Count < 1)
                {
                    return(StatusCode(409, new EmptyTimecardError()
                    {
                    }));
                }

                //Verify that timecard resource is consistent
                //only the employer can submit the time sheet
                if (timecard.Resource == submittal.Resource)
                {
                    var transition = new Transition(submittal, TimecardStatus.Submitted);
                    timecard.Transitions.Add(transition);
                    return(Ok(transition));
                }
                else
                {
                    return(StatusCode(409, new NonConsistentResource()
                    {
                    }));
                }
            }
            else
            {
                return(NotFound());
            }
        }
Beispiel #2
0
        public IActionResult Submit(string id, [FromBody] Submittal submittal)
        {
            Timecard timecard = Database.Find(id);

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

                if (timecard.Lines.Count < 1)
                {
                    return(StatusCode(409, new EmptyTimecardError()
                    {
                    }));
                }

                // Verify resource is the timecard creator. Also, allow supervisor
                // to submit on employee's behalf (e.g. they are out sick).
                if (submittal.Resource != timecard.Resource && submittal.Resource != SUPERVISOR_ID)
                {
                    return(StatusCode(409, new ResourceIdError()
                    {
                    }));
                }

                var transition = new Transition(submittal, TimecardStatus.Submitted);
                timecard.Transitions.Add(transition);
                return(Ok(transition));
            }
            else
            {
                return(NotFound());
            }
        }
        public IActionResult Submit(string id, [FromBody] DocumentResource resource)//resource must be same
        {
            Timecard timecard = Database.Find(id);

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

                if (timecard.Lines.Count < 1)
                {
                    return(StatusCode(409, new EmptyTimecardError()
                    {
                    }));
                }
                var submittal = new Submittal()
                {
                    Resource = resource.Resource
                };
                var transition = new Transition(submittal, TimecardStatus.Submitted);
                timecard.Transitions.Add(transition);
                return(Ok(transition));
            }
            else
            {
                return(NotFound());
            }
        }
        public IActionResult Submit(Guid id, [FromBody] Submittal submittal)
        {
            logger.LogInformation($"Looking for timesheet {id}");

            Timecard timecard = repository.Find(id);

            if (timecard != null)
            {
                // We check the person submitting the timecard is the same person who owns the timecard
                if (timecard.Status != TimecardStatus.Draft || timecard.Employee != submittal.Person)
                {
                    return(StatusCode(409, new InvalidStateError()
                    {
                    }));
                }

                if (timecard.Lines.Count < 1)
                {
                    return(StatusCode(409, new EmptyTimecardError()
                    {
                    }));
                }

                var transition = new Transition(submittal, TimecardStatus.Submitted);

                logger.LogInformation($"Adding submittal {transition}");

                timecard.Transitions.Add(transition);

                repository.Update(timecard);

                return(Ok(transition));
            }
            else
            {
                return(NotFound());
            }
        }
        public IActionResult Submit(string id, [FromBody] Submittal submittal)
        {
            Timecard timecard = Database.Find(id);

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

                if (timecard.Lines.Count < 1)
                {
                    return(StatusCode(409, new EmptyTimecardError()
                    {
                    }));
                }

                // For consistency, only resource can submit a timecard for that resource
                if (timecard.Resource != submittal.Resource)
                {
                    return(StatusCode(409, new InconsistentResourceError()
                    {
                    }));
                }

                var transition = new Transition(submittal, TimecardStatus.Submitted);
                timecard.Transitions.Add(transition);
                return(Ok(transition));
            }
            else
            {
                return(NotFound());
            }
        }
Beispiel #6
0
        public IActionResult Submit(string id, [FromBody] Submittal submittal)
        {
            Timecard timecard = Database.Find(id);

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

                if (timecard.Lines.Count < 1)
                {
                    return(StatusCode(409, new EmptyTimecardError()
                    {
                    }));
                }
                if (timecard.Resource == submittal.Resource)
                {
                    var transition = new Transition(submittal, TimecardStatus.Submitted);
                    timecard.Transitions.Add(transition);
                    return(Ok(transition));
                }
                else
                {
                    return(StatusCode(409, new NotAuthorizedError()
                    {
                    }));
                }
            }
            else
            {
                return(NotFound());
            }
        }
Beispiel #7
0
        public IActionResult Submit(string id, [FromBody] Submittal submittal)
        {
            Timecard timecard = Database.Find(id);

            if (submittal.Resource != timecard.Resource)
            {
                return(StatusCode(409, new InvalidOperationException("The Resource entered does not match the one in the timecard.")
                {
                }));
            }

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

                if (timecard.Lines.Count < 1)
                {
                    return(StatusCode(409, new EmptyTimecardError()
                    {
                    }));
                }

                var transition = new Transition(submittal, TimecardStatus.Submitted);
                timecard.Transitions.Add(transition);
                return(Ok(transition));
            }
            else
            {
                return(NotFound());
            }
        }
        public void FindSubmittalByKeyTest()
        {
            Submittal submittal = this.repository.FindBy("a5d32de3-25a6-465f-b9ea-f49d774ac920");

            Assert.AreEqual("03300.01.00", submittal.Number);
        }