Example #1
0
        public async void PrependData()
        {
            XmlDataBase tb = new XmlDataBase();

            List <Bar> barList = new List <Bar>();
            var        firstDt = new DateTime(2019, 1, 1, 5, 0, 0);

            barList.Add(new Bar(10, 20, 5, 12, 0, firstDt));
            barList.Add(new Bar(15, 25, 10, 17, 0, firstDt.AddMinutes(5)));
            barList.Add(new Bar(15, 27, 8, 17, 0, firstDt.AddMinutes(10)));

            var instrument = new Instrument {
                Type = InstrumentType.Stock, Name = "GLD"
            };
            var resolution = new Resolution(TimeFrame.Hourly, 1);
            var b          = await tb.WriteLocalDataAsync(instrument, resolution, barList);

            barList.Clear();
            barList.Add(new Bar(1, 20, 5, 12, 0, firstDt.AddMinutes(-60)));
            barList.Add(new Bar(0, 25, 10, 17, 0, firstDt.AddMinutes(-55)));
            barList.Add(new Bar(0, 27, 8, 17, 0, firstDt.AddMinutes(-50)));
            _ = tb.PrependLocalData(instrument, resolution, barList);

            var rbs = await tb.ReadLocalDataAsync(instrument, resolution, firstDt.AddMinutes(-60), firstDt.AddMinutes(15));

            Assert.AreEqual(6, rbs.Count());
        }
Example #2
0
        public async void AppendData_Last_Element_Intact()
        {
            XmlDataBase tb = new XmlDataBase();

            List <Bar> barList = new List <Bar>();
            DateTime   dt      = new DateTime(2018, 1, 1, 0, 0, 0);

            barList.Add(new Bar(10, 20, 5, 12, 0, dt));
            barList.Add(new Bar(15, 25, 10, 17, 0, dt.AddDays(1)));
            barList.Add(new Bar(15, 27, 8, 17, 0, dt.AddDays(2)));

            var instrument = new Instrument {
                Type = InstrumentType.Stock, Name = "GLD"
            };
            var resolution = new Resolution(TimeFrame.Hourly, 1);
            var b          = await tb.WriteLocalDataAsync(instrument, resolution, barList);

            barList.Clear();
            barList.Add(new Bar(1, 20, 5, 12, 0, dt.AddDays(3)));
            barList.Add(new Bar(0, 25, 10, 17, 0, dt.AddDays(4)));
            barList.Add(new Bar(0, 27, 8, 17, 0, dt.AddDays(5)));
            _ = tb.AppendLocalData(instrument, resolution, barList);

            var rbs = await tb.ReadLocalDataAsync(instrument, resolution, dt, dt.AddDays(5));

            Assert.AreEqual(6, rbs.Count());
            Assert.AreEqual(dt.AddDays(3), rbs.ElementAt(3).DateTime);
        }
Example #3
0
        public void PrependData()
        {
            XmlDataBase tb = new XmlDataBase();

            List <Bar> barList = new List <Bar>();

            barList.Add(new Bar(10, 20, 5, 12, 0, DateTime.Now, DateTime.Now));
            barList.Add(new Bar(15, 25, 10, 17, 0, DateTime.Now, DateTime.Now));
            barList.Add(new Bar(15, 27, 8, 17, 0, DateTime.Now, DateTime.Now));

            var instrument = new Instrument {
                Type = InstrumentType.Stock, Name = "GLD"
            };
            var resolution = new Resolution(TimeFrame.Hourly, 1);

            tb.WriteLocalData(instrument, resolution, barList);

            barList.Clear();
            barList.Add(new Bar(1, 20, 5, 12, 0, DateTime.Now, DateTime.Now));
            barList.Add(new Bar(0, 25, 10, 17, 0, DateTime.Now, DateTime.Now));
            barList.Add(new Bar(0, 27, 8, 17, 0, DateTime.Now, DateTime.Now));
            tb.PrependLocalData(instrument, resolution, barList);

            var rbs = tb.ReadLocalData(instrument, resolution, DateTime.Now, DateTime.Now);

            Assert.AreEqual(6, rbs.Count());
        }
Example #4
0
        public TuiViewModel()
        {
            //database = new XmlStorage();
            database = new DatabaseStorage();
            XmlDataBase loadedDataBase = database.LoadDataBase();

            Publishers = loadedDataBase?.Publishers.ToList();
            NewsPapers = loadedDataBase?.NewsPapers.ToList();
        }
Example #5
0
        public void SaveDataBase(XmlDataBase database)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(XmlDataBase));

            using (StreamWriter writer = new StreamWriter(DATABASE_NAME))
            {
                serializer.Serialize(writer, database);
            }
        }
Example #6
0
        public GuiViewModel()
        {
            XmlDataBase tempDataBase = data.LoadDataBase();

            if (tempDataBase != null)
            {
                Publishers = tempDataBase.Publishers.ToList();
                NewsPapers = tempDataBase.NewsPapers.ToList();
            }
        }
        public void TestFixtureSetUp()
        {
            _path = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\..\DataOut"));

            _xmlDb = new XmlDataBase(_path);
            _fileDb = new FileDataBase(_path);

            _xmlRepository = new Repository(_xmlDb);
            _fileRepository = new Repository(_fileDb);

            // steb by step | write file -> read file -> delete file
        }
Example #8
0
        public void TestFixtureSetUp()
        {
            _path = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\..\DataOut"));

            _xmlDb  = new XmlDataBase(_path);
            _fileDb = new FileDataBase(_path);

            _xmlRepository  = new Repository(_xmlDb);
            _fileRepository = new Repository(_fileDb);

            // steb by step | write file -> read file -> delete file
        }
Example #9
0
        public void ReadData()
        {
            XmlDataBase tb = new XmlDataBase();

            var instrument = new Instrument {
                Type = InstrumentType.Forex, Name = "AUD/CAD"
            };
            var rbs = tb.ReadLocalDataAsync(instrument, new Resolution(TimeFrame.Hourly, 1),
                                            new DateTime(2018, 11, 22), new DateTime(2018, 11, 22, 20, 0, 0));

            //Assert.AreEqual(barList.Count, rbs.Count());
        }
Example #10
0
        public XmlDataBase LoadDataBase()
        {
            XmlDataBase database = null;

            if (File.Exists(DATABASE_NAME))
            {
                using (StreamReader streamReader = new StreamReader(DATABASE_NAME))
                {
                    XmlReader     reader     = XmlReader.Create(streamReader);
                    XmlSerializer serializer = new XmlSerializer(typeof(XmlDataBase));
                    if (serializer.CanDeserialize(reader))
                    {
                        database = (XmlDataBase)serializer.Deserialize(reader);
                    }
                }
            }
            return(database);
        }
        public void SaveDataBase(XmlDataBase database)
        {
            ClearDatabase();

            Dictionary <string, int> publisherNameAndId = new Dictionary <string, int>();

            using (SQLiteCommand command = new SQLiteCommand(connection))
            {
                int counter = 0;
                foreach (Publisher publisher in database.Publishers)
                {
                    command.CommandText = $"INSERT INTO Publisher(publisher_id, publishername) VALUES ('{counter}', '{publisher.Name}')";
                    command.ExecuteNonQuery();

                    publisherNameAndId.Add(publisher.Name, counter);

                    foreach (NewsPaper paper in publisher.NewsPapers)
                    {
                        command.CommandText = $"INSERT INTO Newspaper(newspapername, publisher_id) VALUES('{paper.Name}', '{counter}')";
                        command.ExecuteNonQuery();
                    }

                    ++counter;
                }

                foreach (NewsPaper paper in database.NewsPapers)
                {
                    string publisherID = "NULL";
                    if (paper.Publisher != null && publisherNameAndId.Keys.Contains(paper.Publisher?.Name))
                    {
                        publisherID = publisherNameAndId[paper.Publisher.Name].ToString();
                    }

                    try
                    {
                        command.CommandText = $"INSERT INTO Newspaper(newspapername, publisher_id) VALUES('{paper.Name}', '{publisherID}');";
                        command.ExecuteNonQuery();
                    }
                    catch { }
                }
            }
        }
Example #12
0
        public async void WriteData_Stock()
        {
            XmlDataBase tb = new XmlDataBase();

            List <Bar> barList = new List <Bar>();

            barList.Add(new Bar(10, 20, 5, 12, 0, DateTime.Now));
            barList.Add(new Bar(9, 25, 10, 17, 0, DateTime.Now));
            barList.Add(new Bar(8, 27, 8, 17, 0, DateTime.Now));

            var instrument = new Instrument {
                Type = InstrumentType.Stock, Name = "TSLA"
            };
            var resolution = new Resolution(TimeFrame.Hourly, 1);
            var b          = await tb.WriteLocalDataAsync(instrument, new Resolution(TimeFrame.Hourly, 1), barList);

            var rbs = await tb.ReadLocalDataAsync(instrument, resolution, barList.First().DateTime, barList.Last().DateTime);

            Assert.AreEqual(barList.Count, rbs.Count());
        }
Example #13
0
        public async void WriteData_Forex()
        {
            XmlDataBase tb = new XmlDataBase();

            List <Bar> barList = new List <Bar>();

            barList.Add(Helper.GetUpBar());
            barList.Add(Helper.GetUpBar(barList.Last(), barList.Last().DateTime.AddDays(1)));
            barList.Add(Helper.GetUpBar(barList.Last(), barList.Last().DateTime.AddDays(1)));
            barList.Add(Helper.GetUpBar(barList.Last(), barList.Last().DateTime.AddDays(1)));
            barList.Add(Helper.GetUpBar(barList.Last(), barList.Last().DateTime.AddDays(1)));
            barList.Add(Helper.GetUpBar(barList.Last(), barList.Last().DateTime.AddDays(1)));

            var instrument = new Instrument {
                Type = InstrumentType.Forex, Name = "USD/CAD"
            };
            var b = await tb.WriteLocalDataAsync(instrument, new Resolution(TimeFrame.Hourly, 1), barList);

            var rbs = await tb.ReadLocalDataAsync(instrument, new Resolution(TimeFrame.Hourly, 1), barList.First().DateTime, barList.Last().DateTime);

            Assert.AreEqual(barList.Count, rbs.Count());
        }
Example #14
0
        public void SaveData()
        {
            XmlDataBase xmldata = new XmlDataBase(NewsPapers.ToArray(), Publishers.ToArray());

            data.SaveDataBase(xmldata);
        }