Exemple #1
0
        private async Task <object> ProcessRequest()
        {
            ThuriaLogger.LogMessage(LogSeverity.Info, "Received Helium Insert Request");

            try
            {
                var(requestModel, errorResponse) = GetHeliumRequest();
                if (errorResponse != null)
                {
                    return(errorResponse);
                }

                var retrieveActor       = _heliumActorSystem.ActorSystem.ActorSelection("/user/HeliumInsertAction");
                var actionMessage       = new HeliumActionMessage(HeliumAction.Insert, requestModel.RequestData);
                var actionResultMessage = await retrieveActor.Ask <HeliumActionResultMessage>(actionMessage);

                var heliumResponse = new HeliumResponse
                {
                    ActionResult = actionResultMessage.HeliumActionResult,
                    ErrorDetail  = actionResultMessage.ErrorDetail
                };

                ThuriaLogger.LogMessage(LogSeverity.Info, $"Completed Helium Insert Request [{heliumResponse.ActionResult}]");

                return(CreateResponse(Context, HttpStatusCode.OK, heliumResponse));
            }
            catch (Exception runtimeException)
            {
                ThuriaLogger.LogMessage(LogSeverity.Exception, $"Exception: {runtimeException}");
                throw new InternalServerErrorException("Error occurred processing Helium Insert Action Request", runtimeException);
            }
        }
        /// <inheritdoc />
        protected override void StartHeliumActionProcessing(HeliumActionMessage actionMessage)
        {
            var sqlQueryMessage = new HeliumConstructSqlQueryMessage(actionMessage.HeliumAction, actionMessage.DataModel);

            sqlQueryMessage.AddStateData("OriginalInsertSender", Sender);
            sqlQueryMessage.AddStateData("OriginalInsertMessage", actionMessage);

            _constructInsertSqlQueryActor.Tell(sqlQueryMessage);
        }
Exemple #3
0
        public void Constructor()
        {
            //---------------Set up test pack-------------------
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var actionMessage = new HeliumActionMessage(HeliumAction.None, null);

            //---------------Test Result -----------------------
            actionMessage.Should().NotBeNull();
        }
Exemple #4
0
 private void HandleHeliumAction(HeliumActionMessage actionMessage)
 {
     ActorLogger.Log(LogLevel.InfoLevel, $"Starting Helium Action : {actionMessage.HeliumAction}");
     StartHeliumActionProcessing(actionMessage);
 }
Exemple #5
0
 /// <summary>
 /// Start the Helium Action Processing
 /// </summary>
 protected abstract void StartHeliumActionProcessing(HeliumActionMessage actionMessage);