public void Constructor()
        {
            //---------------Set up test pack-------------------
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var resultMessage = new HeliumGetConnectionStringResultMessage("ConnectionString");

            //---------------Test Result -----------------------
            resultMessage.Should().NotBeNull();
        }
        /// <summary>
        /// Helium File Connection String Actor constructor
        /// </summary>
        /// <param name="databaseSettings"></param>
        public HeliumFileConnectionStringActor(IThuriaDatabaseSettings databaseSettings)
        {
            if (databaseSettings == null)
            {
                throw new ArgumentNullException(nameof(databaseSettings));
            }

            Receive <HeliumGetConnectionStringMessage>(message =>
            {
                var connectionString = databaseSettings.GetConnectionString(message.DbContextName);
                ActorLogger.Log(LogLevel.InfoLevel, $"Retrieved Connection String Context: {message.DbContextName} String: {connectionString}");

                var resultMessage = new HeliumGetConnectionStringResultMessage(connectionString);
                resultMessage.AddStateData(message.MessageStateData);

                Sender.Tell(resultMessage);
            });
        }
        private void HandleConnectionStringResult(HeliumGetConnectionStringResultMessage resultMessage)
        {
            var heliumAction   = (HeliumAction)ExtractMessageStateData(resultMessage.MessageStateData, "HeliumAction");
            var originalSender = (IActorRef)ExtractMessageStateData(resultMessage.MessageStateData, "Sender");
            var sqlQuery       = (string)ExtractMessageStateData(resultMessage.MessageStateData, "SqlQuery");

            var heliumResult = HeliumActionResult.Success;
            var errorDetail  = string.Empty;
            IEnumerable <object> resultData = null;

            try
            {
                switch (heliumAction)
                {
                case HeliumAction.Retrieve:
                    resultData = ExecuteSelectSqlQuery(resultMessage.ConnectionString, sqlQuery);
                    break;

                case HeliumAction.Insert:
                    var rowsAffected = ExecuteSqlQuery(resultMessage.ConnectionString, sqlQuery);
                    if (rowsAffected <= 0)
                    {
                        heliumResult = HeliumActionResult.Warning;
                        errorDetail  = "No rows affected by Insert Action";
                    }
                    break;

                default:
                    throw new Exception($"Helium Action [{heliumAction}] not currently supported");
                }
            }
            catch (Exception runtimeException)
            {
                heliumResult = HeliumActionResult.Error;
                errorDetail  = runtimeException.ToString();
            }
            finally
            {
                SendResultMessage(originalSender, heliumAction, heliumResult, resultData, errorDetail, resultMessage.MessageStateData);
            }
        }