public async Task <IncomingCratesDTO> GetAvailableData(Guid activityId, CrateDirection direction, AvailabilityType availability) { var url = $"{GetHubUrlWithApiVersion()}/plan_nodes/signals?id={activityId}&direction={(int)direction}&availability={(int)availability}"; var uri = new Uri(url, UriKind.Absolute); var availableData = await _restfulServiceClient.GetAsync <IncomingCratesDTO>(uri, null, await GetHMACHeader(uri)); return(availableData); }
public IncomingCratesDTO GetIncomingData(Guid activityId, CrateDirection direction, AvailabilityType availability) { var crates = GetCrateManifestsByDirection(activityId, direction, AvailabilityType.NotSet); var availableData = new IncomingCratesDTO(); availableData.AvailableCrates.AddRange(crates.SelectMany(x => x.CrateDescriptions).Where(x => availability == AvailabilityType.NotSet || (x.Availability & availability) != 0)); return(availableData); }
public async Task <IncomingCratesDTO> GetAvailableData(Guid activityId, CrateDirection direction, AvailabilityType availability) { var crates = await GetCratesByDirection <CrateDescriptionCM>(activityId, direction); var availableData = new IncomingCratesDTO(); availableData.AvailableCrates.AddRange(crates.SelectMany(x => x.Content.CrateDescriptions).Where(x => availability == AvailabilityType.NotSet || (x.Availability & availability) != 0)); return(availableData); }
private List <PlanNodeDO> GetActivitiesByDirection(IUnitOfWork uow, CrateDirection direction, PlanNodeDO curActivityDO) { switch (direction) { case CrateDirection.Downstream: return(GetDownstreamActivities(uow, curActivityDO)); case CrateDirection.Upstream: return(GetUpstreamActivities(uow, curActivityDO)); default: return(GetDownstreamActivities(uow, curActivityDO).Concat(GetUpstreamActivities(uow, curActivityDO)).ToList()); } }
public List <CrateDescriptionCM> GetCrateManifestsByDirection( Guid activityId, CrateDirection direction, AvailabilityType availability, bool includeCratesFromActivity = true ) { Func <Crate <CrateDescriptionCM>, bool> cratePredicate; //validation errors don't need to be present as available data, so remove Validation Errors cratePredicate = f => f.Label != ValidationErrorsLabel; using (var uow = ObjectFactory.GetInstance <IUnitOfWork>()) { var activityDO = uow.PlanRepository.GetById <ActivityDO>(activityId); var activities = GetActivitiesByDirection(uow, direction, activityDO) .OfType <ActivityDO>(); if (!includeCratesFromActivity) { activities = activities.Where(x => x.Id != activityId); } // else // { // if (!activities.Any(x => x.Id == activityId)) // { // var activitiesToAdd = activities.ToList(); // activitiesToAdd.Insert(0, activityDO); // activities = activitiesToAdd; // } // } var result = activities .SelectMany(x => _crate.GetStorage(x).CratesOfType <CrateDescriptionCM>().Where(cratePredicate)) .Select(x => { foreach (var crateDescription in x.Content.CrateDescriptions) { crateDescription.Label = crateDescription.Label ?? crateDescription.ProducedBy; } return(x.Content); }) .ToList(); return(result); } }
public Task <List <Crate> > GetCratesByDirection(Guid activityId, CrateDirection direction) { var searchLabel = direction == CrateDirection.Upstream ? LabelPrefix + "_UpstreamCrate" : LabelPrefix + "_DownstreamCrate"; var crateStorage = Crate.GetStorage(ExplicitData); var crates = crateStorage .Where(x => x.Label.StartsWith(searchLabel)) .ToList(); StripLabelPrefix(crates, searchLabel); return(Task.FromResult(crates)); }
public async Task <IncomingCratesDTO> GetAvailableData(Guid activityId, CrateDirection direction, AvailabilityType availability) { var url = $"{GetHubUrlWithApiVersion()}/plan_nodes/signals?id={activityId}&direction={(int)direction}&availability={(int)availability}"; var uri = new Uri(url, UriKind.Absolute); var availableData = await _restfulServiceClient.GetAsync <IncomingCratesDTO>(uri, null); foreach (var availableCrate in availableData.AvailableCrates) { foreach (var fieldDto in availableCrate.Fields) { fieldDto.SourceCrateLabel = availableCrate.Label; fieldDto.SourceActivityId = availableCrate.SourceActivityId; fieldDto.Availability = availableCrate.Availability; } } return(availableData); }
public async Task <List <Crate> > GetCratesByDirection(Guid activityId, CrateDirection direction) { var directionSuffix = direction == CrateDirection.Upstream ? "upstream" : "downstream"; var uri = new Uri($"{GetHubUrlWithApiVersion()}/plan_nodes?id={activityId}&direction={directionSuffix}", UriKind.Absolute); var curActivities = await _restfulServiceClient.GetAsync <List <ActivityDTO> >(uri, null, await GetHMACHeader(uri)); var curCrates = new List <Crate>(); foreach (var curAction in curActivities) { var storage = _crate.FromDto(curAction.CrateStorage); curCrates.AddRange(storage); } return(curCrates); }
public List <CrateDescriptionCM> GetCrateManifestsByDirection(Guid activityId, CrateDirection direction, AvailabilityType availability, bool includeCratesFromActivity = true) { throw new NotImplementedException(); }
public IHttpActionResult GetAvailableData(Guid id, CrateDirection direction = CrateDirection.Upstream, AvailabilityType availability = AvailabilityType.RunTime) { return(Ok(_activity.GetIncomingData(id, direction, availability))); }
public async Task <List <Crate> > GetCratesByDirection(CrateDirection direction) { return(await _hubCommunicator.GetCratesByDirection(ActivityId, direction)); }
public async Task <List <TManifest> > GetCrateManifestsByDirection <TManifest>(CrateDirection direction) { return((await _hubCommunicator.GetCratesByDirection <TManifest>(ActivityId, direction)).Select(x => x.Content).ToList()); }
public Task <List <Crate> > GetCratesByDirection(Guid activityId, CrateDirection direction) { throw new NotImplementedException("Terminals can't communicate with an unknown hub"); }
public async Task <List <Crate <TManifest> > > GetCratesByDirection <TManifest>(Guid activityId, CrateDirection direction) { var directionSuffix = direction == CrateDirection.Upstream ? "upstream" : "downstream"; var uri = new Uri($"{GetHubUrlWithApiVersion()}/plan_nodes?id={activityId}&direction={directionSuffix}", UriKind.Absolute); var curActivities = await _restfulServiceClient.GetAsync <List <ActivityDTO> >(uri, null); var curCrates = new List <Crate <TManifest> >(); foreach (var curAction in curActivities) { var storage = CrateStorageSerializer.Default.ConvertFromDto(curAction.CrateStorage); curCrates.AddRange(storage.CratesOfType <TManifest>()); } return(curCrates); }
public IncomingCratesDTO GetIncomingData(Guid activityId, CrateDirection direction, AvailabilityType availability) { throw new NotImplementedException(); }
public FieldDescriptionsCM GetDesignTimeFieldsByDirection(Guid activityId, CrateDirection direction, AvailabilityType availability) { throw new NotImplementedException(); }
public Task <IncomingCratesDTO> GetAvailableData(Guid activityId, CrateDirection direction, AvailabilityType availability) { throw new NotImplementedException("Terminals can't communicate with an unknown hub"); }