Exemplo n.º 1
0
        private void AddTicks(int period, string pair, DateTime dateStart)
        {
            try {
                using (var context = new ForexEntities()
                {
                    CommandTimeout = 6000
                }) {
                    #region callback
                    Action <FXCoreWrapper.RateLoadingCallbackArgs <Rate> > showProgress = (args) => {
                        TestContext.WriteLine("{0}", args.Message);
                        foreach (var t in args.NewRates)
                        {
                            var bar = context.CreateObject <t_Bar>();
                            FillBar(period, pair, bar, t);
                            context.t_Bar.AddObject(bar);
                        }
                        context.SaveChanges(System.Data.Objects.SaveOptions.AcceptAllChangesAfterSave);
                    };
                    #endregion

                    var dateEnd = context.t_Bar.Where(b => b.Pair == pair && b.Period == period).Select(b => b.StartDate).DefaultIfEmpty(DateTime.Now).Min().DateTime;
                    o2g.GetBarsBase(pair, period, 0, dateStart, dateEnd, new List <Rate>(), showProgress);

                    dateStart = context.t_Bar.Where(b => b.Pair == pair && b.Period == period).Select(b => b.StartDate).DefaultIfEmpty(DateTime.Now).Max().DateTime;
                    o2g.GetBarsBase(pair, period, 0, dateStart, DateTime.Now, new List <Rate>(), showProgress);
                }
            } catch (Exception exc) {
                Debug.WriteLine(exc.ToString());
            }
        }