コード例 #1
0
        public void Execute()
        {
            FileInfo[] extractedFiles = _ListExtractedFiles();

            foreach (FileInfo extractedFile in extractedFiles)
            {
                try {
                    ITranslateFile fileTranslator     = new FileTranslator();
                    ITelegram      telegram           = fileTranslator.Translate(extractedFile);
                    string         serializedTelegram = JsonConvert.SerializeObject(telegram);

                    IWriteFile fileWriter = new FileWriter();

                    fileWriter
                    .WithPath(Config.Instance.TranslatedFilesPath)
                    .WithFilename(_CreateFilename(extractedFile))
                    .WithContents(serializedTelegram)
                    .Write();

                    extractedFile.Delete();

                    Console.WriteLine($"{DateTime.UtcNow}: Translated '{extractedFile.Name}'");
                }
                catch (Exception ex) {
                    Console.WriteLine($"An error occured while translating file '{extractedFile.FullName}': {ex}");
                }
            }
        }
コード例 #2
0
        public IActionResult GetCurrent()
        {
            IManageTelegram telegramManager = new TelegramManager();
            ITelegram       telegram        = telegramManager.SelectCurrent();

            return(Ok(telegram));
        }
コード例 #3
0
ファイル: FireScheduler.cs プロジェクト: riyanhax/TradingApp
 public FireScheduler(ILoggerFactory logger, ISettings settings, ITelegram telegram, IForecaster forecaster)
 {
     _logger     = logger.CreateLogger("BotTools");
     _settings   = settings;
     _telegram   = telegram;
     _forecaster = forecaster;
 }
コード例 #4
0
        /// <summary>
        /// Public constructor.
        /// </summary>
        /// <param name="deviceId">Device Id.</param>
        /// <param name="nuvoTelegram">Optional. Used in case of unit test to pass a mock telegram object.</param>
        public NuvoEssentiaProtocol(int deviceId, ITelegram nuvoTelegram)
        {
            _deviceId = deviceId;

            _serialPort = ((nuvoTelegram == null)?new NuvoCommandTelegram(null):nuvoTelegram);
            _serialPort.onTelegramReceived += new TelegramEventHandler(_serialPort_onTelegramReceived);
        }
コード例 #5
0
ファイル: Receiver.cs プロジェクト: Zerophase/DyMProject
 public void HandleMessage(ITelegram telegram)
 {
     if (!telegram.Global && owner == telegram.Receiver)
         owner.Receive(telegram);
     else if (telegram.Global && owner.GetType() == telegram.Receiver.GetType())
         owner.Receive(telegram);
 }
コード例 #6
0
 public static void SetStopLoss(this ITelegram ctx, Position position, IStrategyBase strategy)
 {
     ctx.GetPips("Select SL (pips)", (double pips) =>
     {
         if (double.IsNaN(pips))
         {
             strategy.Robot.Print("setSL output no good");
             return;
         }
         double sl = 0;
         if (position.TradeType == TradeType.Buy)
         {
             sl = position.EntryPrice - (pips * strategy.Symbol.TickSize);
         }
         else
         {
             sl = position.EntryPrice + (pips * strategy.Symbol.TickSize);
         }
         var result = strategy.Robot.ModifyPosition(position, sl, position.TakeProfit);
         if (result.IsSuccessful)
         {
             ctx.SendMessage("SL Set {0}", sl);
         }
         else
         {
             ctx.SendMessage("SL failed");
         }
     }, new TimeSpan(1, 0, 0));
 }
コード例 #7
0
 public DataController(IHelpers helpers, IForecaster forecaster, ISettings settings, ITelegram telegram, ILoggerFactory logger)
 {
     _helpers    = helpers;
     _forecaster = forecaster;
     _settings   = settings;
     _telegram   = telegram;
     _logger     = logger.CreateLogger("Controller.DataController");
 }
コード例 #8
0
        public override void Receive(ITelegram telegram)
        {
            /// TODO replace with Switch Statement
            if (telegram.Receiver == this)
            {
                if(telegram.Message is UnitPhysicsMediator)
                {
                    unitPhysicsMediatorsTempList.Add((UnitPhysicsMediator)telegram.Message);
                    unitPhysicsMediators = unitPhysicsMediatorsTempList.ToArray();
                    if (telegram.Message is Player)
                        player = unitPhysicsMediatorsTempList.Find(p => p is Player);
                }
                else if (telegram.Message is Ground)
                {
                    grounds.Add((Ground)telegram.Message);

                    if (grounds.Count == groundCount)
                    {
                        groundsArray = grounds.ToArray();
                        quicksort(groundsArray, 0, groundsArray.Length - 1);

                        for (int i = 0; i < groundsArray.Length; i++)
                        {
                            var b0 = groundsArray[i].BoundingBox;
                            for (int j = 1; j < groundsArray.Length; j++)
                            {
                                var b1 = groundsArray[j].BoundingBox;
                                if (b0.HalfHeight > b0.HalfWidth && b1.HalfHeight > b1.HalfWidth &&
                                    Math.Abs(Vector3.Cross(groundsArray[i].BoundingBox.Center.normalized, groundsArray[j].BoundingBox.Center.normalized).y) <= 20.0f)
                                {
                                    groundsArray[i].BoundingBox.IgnoreCollision = IgnoreCollision.Y_AXIS;
                                    groundsArray[j].BoundingBox.IgnoreCollision = IgnoreCollision.Y_AXIS;
                                }

                                if (b0.HalfWidth > b0.HalfHeight && b1.HalfWidth > b1.HalfHeight &&
                                    Math.Abs(Vector3.Cross(groundsArray[i].BoundingBox.Center.normalized, groundsArray[j].BoundingBox.Center.normalized).x) <= 130f)
                                {
                                    groundsArray[i].BoundingBox.IgnoreCollision = IgnoreCollision.X_AXIS;
                                    groundsArray[j].BoundingBox.IgnoreCollision = IgnoreCollision.X_AXIS;
                                }
                            }

                        }
                    }
                }
                else if(telegram.Message is ItemPickUp)
                    itemPickUps.Add((ItemPickUp)telegram.Message);
                else if (telegram.Message is Bullet)
                {
                    bullets.Add((Bullet)telegram.Message);
                }
                else if (telegram.Message is Trigger)
                {
                    trigger = (Trigger) telegram.Message;
                }
            }
        }
コード例 #9
0
        public void TranslatesWithCorrectElectricityDeliveredActual()
        {
            decimal  expectedElectricityDeliveredActual = 0.848m;
            string   filePath = $"{Directory.GetCurrentDirectory()}/Files/CreatesFileWithCorrectContents.txt";
            FileInfo fileInfo = new FileInfo(filePath);

            FileTranslator fileTranslator = new FileTranslator();
            ITelegram      telegram       = fileTranslator.Translate(fileInfo);

            Assert.AreEqual(expectedElectricityDeliveredActual, telegram.ElectricityDeliveredActual);
        }
コード例 #10
0
        public void TranslatesWithCorrectElectricityConsumedTariff2()
        {
            decimal  expectedElectricityConsumedTariff2 = 1356.036m;
            string   filePath = $"{Directory.GetCurrentDirectory()}/Files/CreatesFileWithCorrectContents.txt";
            FileInfo fileInfo = new FileInfo(filePath);

            FileTranslator fileTranslator = new FileTranslator();
            ITelegram      telegram       = fileTranslator.Translate(fileInfo);

            Assert.AreEqual(expectedElectricityConsumedTariff2, telegram.ElectricityConsumedTariff2);
        }
コード例 #11
0
        public void TranslatesWithCorrectTimestamp()
        {
            DateTime expectedTimestamp = new DateTime(2017, 08, 31, 10, 55, 07);
            string   filePath          = $"{Directory.GetCurrentDirectory()}/Files/CreatesFileWithCorrectContents.txt";
            FileInfo fileInfo          = new FileInfo(filePath);

            FileTranslator fileTranslator = new FileTranslator();
            ITelegram      telegram       = fileTranslator.Translate(fileInfo);

            Assert.AreEqual(expectedTimestamp, telegram.Timestamp);
        }
コード例 #12
0
 public ForecasterSheduled(ITelegram messenger,
                           IProcessModel processModel,
                           IDirectoryManager directoryManager,
                           IFileManager fileManager,
                           IPythonExec pythonExec,
                           IUtility utility,
                           IRequests requests)
 {
     _messenger        = messenger;
     _processModel     = processModel;
     _fileManager      = fileManager;
     _directoryManager = directoryManager;
     _pythonExec       = pythonExec;
     _utility          = utility;
     _requestHelper    = requests;
 }
コード例 #13
0
 private void initializeTelegram()
 {
     try
     {
         if (this.Robot.IsBacktesting)
         {
             _nooptelegramClient = new NoopTelegram();
         }
         else
         {
             _telegramClient = new StrategyTelegram(this);
         }
     }
     catch (Exception ex)
     {
         Robot.Print("StrategyBase: Error starting telegram client {0}", ex.Message);
     }
 }
コード例 #14
0
        public void Save(ITelegram telegram)
        {
            string statement = @"
        INSERT INTO `electricity`
        (Timestamp, ElectricityConsumedTariff1, ElectricityConsumedTariff2, ElectricityDeliveredTariff1, ElectricityDeliveredTariff2, ElectrictyConsumedActual, ElectricityDeliveredActual)
        VALUES 
        (@Timestamp, @ElectricityConsumedTariff1, @ElectricityConsumedTariff2, @ElectricityDeliveredTariff1, @ElectricityDeliveredTariff2, @ElectrictyConsumedActual, @ElectricityDeliveredActual)
        ON DUPLICATE KEY UPDATE
        ElectricityConsumedTariff1 = VALUES(ElectricityConsumedTariff1),
        ElectricityConsumedTariff2 = VALUES(ElectricityConsumedTariff2),
        ElectricityDeliveredTariff1 = VALUES(ElectricityDeliveredTariff1),
        ElectricityDeliveredTariff2 = VALUES(ElectricityDeliveredTariff2),
        ElectrictyConsumedActual = VALUES(ElectrictyConsumedActual),
        ElectricityDeliveredActual = VALUES(ElectricityDeliveredActual);
      ";

            using (IDbConnection connection = new DatabaseConnection().CreateConnection()) {
                connection.Execute(statement, telegram);
            }
        }
コード例 #15
0
        public static void GetPips(this ITelegram ctx, string msg, DoubleResponse callback, TimeSpan expiration)
        {
            var commands = new List <string>()
            {
                "5", "10", "15", "20", "30", "40", "50"
            };

            ctx.GetChoice(msg,
                          commands, (string s) =>
            {
                double outVal = 0;
                if (double.TryParse(s, out outVal))
                {
                    callback(outVal);
                }
                else
                {
                    callback(double.NaN);
                }
            }, expiration);
        }
コード例 #16
0
        public void Execute()
        {
            IManageTelegram telegramManager = new TelegramManager();

            FileInfo[] translatedFiles = _ListTranslatedFiles();

            foreach (FileInfo translatedFile in translatedFiles)
            {
                try {
                    string    serializedTelegram = File.ReadAllText(translatedFile.FullName);
                    ITelegram telegram           = JsonConvert.DeserializeObject <Telegram>(serializedTelegram);

                    telegramManager.Save(telegram);

                    translatedFile.Delete();

                    Console.WriteLine($"{DateTime.UtcNow}: Loaded '{translatedFile.Name}'");
                }
                catch (Exception ex) {
                    Console.WriteLine($"An error occured while loading file '{translatedFile.FullName}': {ex}");
                }
            }
        }
コード例 #17
0
 public SendScheduledMessage(ITelegram messenger)
 {
     _messenger = messenger;
 }
コード例 #18
0
ファイル: Director.cs プロジェクト: Zerophase/DyMProject
 public virtual void Receive(ITelegram telegram)
 {
     throw new NotImplementedException();
 }
コード例 #19
0
 public void DispatchMessage(ITelegram telegram)
 {
     if (SendMessage != null)
         SendMessage(telegram);
 }
コード例 #20
0
 protected void makeMessageSystem()
 {
     telegram = Substitute.For<ITelegram>();
     receiver = Substitute.For<IReceiver>();
     messageDispatcher = Substitute.For<IMessageDispatcher>();
 }
コード例 #21
0
 public void Receive(ITelegram telegram)
 {
     if(telegram.Message is StatusEffect)
         GainStatusEffect((StatusEffect)telegram.Message);
 }