/// <summary> /// An AddedEcaItineraryValidationEntity is used to validate an itinerary when being created. /// </summary> /// <param name="addedEcaItinerary">The new itinerary.</param> /// <param name="project">The project the itinerary belongs to.</param> /// <param name="arrivalLocation">The arrival location.</param> /// <param name="departureLocation">The departure destination location.</param> public AddedEcaItineraryValidationEntity(AddedEcaItinerary addedEcaItinerary, Project project, Location arrivalLocation, Location departureLocation) : base( arrivalLocation: arrivalLocation, departureLocation: departureLocation) { this.Project = project; this.AddedItinerary = addedEcaItinerary; }
/// <summary> /// Creates a new itinerary in the eca datastore. /// </summary> /// <param name="itinerary">The new itinerary.</param> /// <returns>The itinerary that was added to the eca context.</returns> public async Task <Itinerary> CreateAsync(AddedEcaItinerary itinerary) { var project = await Context.Projects.FindAsync(itinerary.ProjectId); throwIfModelDoesNotExist(itinerary.ProjectId, project, typeof(Project)); var arrivalLocation = await Context.Locations.FindAsync(itinerary.ArrivalLocationId); throwIfModelDoesNotExist(itinerary.ArrivalLocationId, arrivalLocation, typeof(Location)); var departureLocation = await Context.Locations.FindAsync(itinerary.DepartureLocationId); throwIfModelDoesNotExist(itinerary.DepartureLocationId, departureLocation, typeof(Location)); return(DoCreate( addedItinerary: itinerary, project: project, arrivalLocation: arrivalLocation, departureLocation: departureLocation)); }
private Itinerary DoCreate(AddedEcaItinerary addedItinerary, Project project, Location arrivalLocation, Location departureLocation) { ecaItineraryValidator.ValidateCreate(GetAddedEcaItineraryValidationEntity( addedItinerary: addedItinerary, project: project, arrivalLocation: arrivalLocation, departureLocation: departureLocation)); var itinerary = new Itinerary(); addedItinerary.Audit.SetHistory(itinerary); itinerary.ArrivalLocationId = arrivalLocation.LocationId; itinerary.DepartureLocationId = departureLocation.LocationId; itinerary.EndDate = addedItinerary.EndDate; itinerary.Name = addedItinerary.Name; itinerary.ProjectId = project.ProjectId; itinerary.StartDate = addedItinerary.StartDate; itinerary.ItineraryStatusId = ItineraryStatus.InProgress.Id; this.Context.Itineraries.Add(itinerary); return(itinerary); }
/// <summary> /// /// </summary> /// <param name="itinerary"></param> /// <returns></returns> public Task <Itinerary> CreateAsync(AddedEcaItinerary itinerary) { Contract.Requires(itinerary != null, "The itinerary must not be null."); return(Task.FromResult <Itinerary>(null)); }
/// <summary> /// /// </summary> /// <param name="itinerary"></param> /// <returns></returns> public Itinerary Create(AddedEcaItinerary itinerary) { Contract.Requires(itinerary != null, "The itinerary must not be null."); return(null); }
private AddedEcaItineraryValidationEntity GetAddedEcaItineraryValidationEntity(AddedEcaItinerary addedItinerary, Project project, Location arrivalLocation, Location departureLocation) { Contract.Requires(addedItinerary != null, "The added itinerary must not be null."); Contract.Requires(project != null, "The project must not be null."); Contract.Requires(arrivalLocation != null, "The arrival location must not be null."); Contract.Requires(departureLocation != null, "The departure destination location must not be null."); return(new AddedEcaItineraryValidationEntity( addedEcaItinerary: addedItinerary, project: project, arrivalLocation: arrivalLocation, departureLocation: departureLocation )); }