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()); } }
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()); } }
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()); } }
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); }