public async Task <IHttpActionResult> Post(CrateDTO raw)
        {
            if (raw == null)
            {
                return(BadRequest("Crate object is not specified"));
            }
            var curCrateStandardEventReport = _crate.FromDto(raw);

            if (!curCrateStandardEventReport.IsOfType <EventReportCM>())
            {
                return(BadRequest("Crate object doesn't contain EventReportCM manifest"));
            }
            if (curCrateStandardEventReport.Get() == null)
            {
                return(BadRequest("Crate content is empty"));
            }
            var eventReportMS = curCrateStandardEventReport.Get <EventReportCM>();

            Logger.GetLogger().Info($"Crate {raw.Id} with incoming event '{eventReportMS.EventNames}' is received for external account '{eventReportMS.ExternalAccountId}'");
            if (eventReportMS.EventPayload == null)
            {
                return(BadRequest("EventReport can't have a null payload"));
            }
            if (string.IsNullOrEmpty(eventReportMS.ExternalAccountId) && string.IsNullOrEmpty(eventReportMS.ExternalDomainId))
            {
                return(BadRequest("EventReport can't have both ExternalAccountId and ExternalDomainId empty"));
            }
            _jobDispatcher.Enqueue(() => ProcessEventsInternal(raw));
            return(Ok());
        }
        public static ICrateStorage GetStorage(this ICrateManager crateManager, string crateStorageRaw)
        {
            if (string.IsNullOrWhiteSpace(crateStorageRaw))
            {
                return(new CrateStorage());
            }

            return(crateManager.FromDto(StringToCrateStorageDTOConverter.Convert(crateStorageRaw)));
        }
        public static ICrateStorage GetStorage(this ICrateManager crateManager, CrateStorageDTO crateStorageDTO)
        {
            if (crateStorageDTO == null)
            {
                return(new CrateStorage());
            }

            return(crateManager.FromDto(crateStorageDTO));
        }
Exemplo n.º 4
0
        public async Task HandleFr8Request_Configure_ReturnsActivityDTO()
        {
            var result = await _activityExecutor.HandleFr8Request(

                "configure",
                null,
                Fixture_HandleRequest.terminalMockFr8DataDTO()
                );

            Assert.IsNotNull(result);
            Assert.IsInstanceOf(typeof(ActivityDTO), result);

            var crateStorage = CrateManagerHelper.FromDto(((ActivityDTO)result).CrateStorage);

            Assert.NotNull(crateStorage);
            //var crateResult = crateStorage.CrateContentsOfType<StandardConfigurationControlsCM>().SingleOrDefault();
            //Assert.Greater(crateResult.Controls.Count(x => x.Label.ToLower() == "configure"), 0);
        }
Exemplo n.º 5
0
        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, await GetHMACHeader(uri));

            var curCrates = new List <Crate <TManifest> >();

            foreach (var curAction in curActivities)
            {
                var storage = _crate.FromDto(curAction.CrateStorage);

                curCrates.AddRange(storage.CratesOfType <TManifest>());
            }

            return(curCrates);
        }
Exemplo n.º 6
0
        public async Task <IHttpActionResult> Run(Guid planId, [FromBody] CrateDTO[] payload)
        {
            Crate[] crates = null;
            if (payload != null)
            {
                crates = payload.Select(c => _crate.FromDto(c)).ToArray();
            }
            var result = await _plan.Run(planId, crates, null);

            if (result == null)
            {
                return(BadRequest());
            }
            return(Ok(result));
        }
            /**********************************************************************************/
            // Executes node is passed if it is an activity
            private async Task ExecuteNode(PlanNodeDO currentNode, IUpdatableCrateStorage payloadStorage, ActivityExecutionMode mode)
            {
                var currentActivity = currentNode as ActivityDO;

                if (currentActivity == null)
                {
                    return;
                }

                _utilizationMonitoringService.TrackActivityExecution(currentActivity, _container);

                var payload = await _activity.Run(_uow, currentActivity, mode, _container);

                if (payload != null)
                {
                    var activityPayloadStroage = _crate.FromDto(payload.CrateStorage);

                    SyncPayload(activityPayloadStroage, payloadStorage, currentActivity.Id.ToString());
                }
            }
 public static ICrateStorage GetStorage(this ICrateManager crateManager, PayloadDTO payload)
 {
     return(crateManager.FromDto(payload.CrateStorage));
 }
 public static ICrateStorage GetStorage(this ICrateManager crateManager, ActivityDTO activity)
 {
     return(crateManager.FromDto(activity.CrateStorage));
 }
Exemplo n.º 10
0
 public void FromNullCrateStorageDTO_ReturnsEmptyStorage()
 {
     Assert.AreEqual(_crateManager.FromDto((CrateStorageDTO)null).Count, 0);
 }