Пример #1
0
        public override sealed async Task <object> EventManyAsync(Query <TModel> query)
        {
            var appenedQuery = new Query <TModel>(query);

            OnQuery(appenedQuery.Graph);

            var where          = AppendWhereExpression(appenedQuery.Where, appenedQuery.Graph);
            appenedQuery.Where = where;

            var eventModels = (ICollection <EventModel <TModel> >)(await NextProvider.QueryAsync(appenedQuery));

            var models = eventModels.Select(x => x.Model).ToArray();

            ICollection <EventModel <TModel> > returnEventModels = null;

            if (models.Length > 0)
            {
                var returnModels = OnGet(models, appenedQuery.Graph);
                returnEventModels = returnEventModels.Where(x => returnModels.Contains(x.Model)).ToArray();
            }
            else
            {
                returnEventModels = Array.Empty <EventModel <TModel> >();
            }

            return(returnEventModels);
        }
        public override sealed object EventMany(Query <TModel> query)
        {
            var whereCompressed = EncryptWhere(query.Where);
            var orderCompressed = EncryptOrder(query.Order);

            var appenedQuery = new Query <TModel>(query);

            appenedQuery.Where = whereCompressed;
            appenedQuery.Order = orderCompressed;

            var eventModels = (ICollection <EventModel <TModel> >)(NextProvider.Query(appenedQuery));

            if (eventModels.Count == 0)
            {
                return(eventModels);
            }

            var encryptedModels = eventModels.Select(x => x.Model).ToArray();
            var models          = DecryptModels(encryptedModels, query.Graph, true);
            int i = 0;

            foreach (var eventModel in eventModels)
            {
                eventModel.Model = encryptedModels[i];
                i++;
            }

            return(eventModels);
        }
Пример #3
0
        public override sealed async Task <object> EventManyAsync(Query <TModel> query)
        {
            var whereCompressed = CompressWhere(query.Where);
            var orderCompressed = CompressOrder(query.Order);

            var appenedQuery = new Query <TModel>(query);

            appenedQuery.Where = whereCompressed;
            appenedQuery.Order = orderCompressed;

            var eventModels = (ICollection <EventModel <TModel> >)(await NextProvider.QueryAsync(appenedQuery));

            if (eventModels.Count == 0)
            {
                return(eventModels);
            }

            var compressedModels = eventModels.Select(x => x.Model).ToArray();
            var models           = DecompressModels(compressedModels, query.Graph, true);
            int i = 0;

            foreach (var eventModel in eventModels)
            {
                eventModel.Model = compressedModels[i];
                i++;
            }

            return(eventModels);
        }
Пример #4
0
        public override void DoTask(TasksToDo task)
        {
            //ActionModel model = new ActionModel();
            if (task == TasksToDo.DownloadSingleAction)
            {
                try
                {
                    actionModel = GetSingleAction(DownloadActionName);
                }
                catch (Exception)
                {
                    NextProvider.DoTask(task);
                }

                if (actionModel.Name != null)
                {
                    Console.WriteLine($"Information downloaded from {ProviderName}");
                    Console.WriteLine($"Action name: {actionModel.Name} Date: {actionModel.Date} Maximum Price: {actionModel.MaximumPrice} Open Price: {actionModel.OpenPrice} Close Price: {actionModel.MinPrice} TKO: {actionModel.Tko} Trading Volume: {actionModel.TradingVolume}");
                    Logger.Instance.AppendLoggerMessage($"Information downloaded from: {ProviderName} Action Name: {actionModel.Name}");
                }
                else
                {
                    Console.WriteLine($"ERROR - {ProviderName} - dont have any information about this action or server not response");
                    Logger.Instance.AppendLoggerMessage($"ERROR - {ProviderName} - dont have any information about this action or server not response");
                    NextProvider.DoTask(task);
                }
            }
            else if (NextProvider != null)
            {
                NextProvider.DoTask(task);
            }
        }
Пример #5
0
        public override sealed async Task UpdateAsync(Persist <TModel> persist)
        {
            var appenedPersist = new Persist <TModel>(persist);
            ICollection <TModel> returnModels = OnUpdate(appenedPersist.Models, appenedPersist.Graph);
            await NextProvider.PersistAsync(new Update <TModel>(appenedPersist.Event, returnModels, appenedPersist.Graph));

            OnUpdateComplete(returnModels, appenedPersist.Graph);
        }
Пример #6
0
 public Task <object> QueryAsync(Query <TModel> query)
 {
     if (query.IsTemporal)
     {
         return(ThisProvider.QueryAsync(query));
     }
     else
     {
         return(NextProvider.QueryAsync(query));
     }
 }
Пример #7
0
 public object Query(Query <TModel> query)
 {
     if (query.IsTemporal)
     {
         return(ThisProvider.Query(query));
     }
     else
     {
         return(NextProvider.Query(query));
     }
 }
Пример #8
0
        public override sealed void Update(Persist <TModel> persist)
        {
            if (persist.Models.Length == 0)
            {
                return;
            }

            ICollection <TModel> compressedModels = CompressModels(persist.Models, persist.Graph, true);

            NextProvider.Persist(new Update <TModel>(persist.Event, compressedModels, persist.Graph));
        }
Пример #9
0
        public override sealed Task UpdateAsync(Persist <TModel> persist)
        {
            if (persist.Models.Length == 0)
            {
                return(Task.CompletedTask);
            }

            ICollection <TModel> compressedModels = CompressModels(persist.Models, persist.Graph, true);

            return(NextProvider.PersistAsync(new Update <TModel>(persist.Event, compressedModels, persist.Graph)));
        }
Пример #10
0
        public override sealed Task <object> AnyAsync(Query <TModel> query)
        {
            var whereCompressed = CompressWhere(query.Where);

            var appenedQuery = new Query <TModel>(query);

            appenedQuery.Where = whereCompressed;

            var any = NextProvider.QueryAsync(appenedQuery);

            return(any);
        }
        public override sealed Task <object> CountAsync(Query <TModel> query)
        {
            var whereCompressed = EncryptWhere(query.Where);

            var appenedQuery = new Query <TModel>(query);

            appenedQuery.Where = whereCompressed;

            var count = NextProvider.QueryAsync(appenedQuery);

            return(count);
        }
        public override sealed object Any(Query <TModel> query)
        {
            var whereCompressed = EncryptWhere(query.Where);

            var appenedQuery = new Query <TModel>(query);

            appenedQuery.Where = whereCompressed;

            var any = NextProvider.Query(appenedQuery);

            return(any);
        }
Пример #13
0
        public override sealed object Count(Query <TModel> query)
        {
            var whereCompressed = CompressWhere(query.Where);

            var appenedQuery = new Query <TModel>(query);

            appenedQuery.Where = whereCompressed;

            var count = NextProvider.Query(appenedQuery);

            return(count);
        }
Пример #14
0
        public override sealed Task <object> AnyAsync(Query <TModel> query)
        {
            var appenedQuery = new Query <TModel>(query);

            OnQuery(appenedQuery.Graph);

            var where          = AppendWhereExpression(appenedQuery.Where, appenedQuery.Graph);
            appenedQuery.Where = where;

            var any = NextProvider.QueryAsync(appenedQuery);

            return(any);
        }
        public override sealed void Create(Persist <TModel> persist)
        {
            if (persist.Models.Length == 0)
            {
                return;
            }

            TModel[] encryptedModels = EncryptModels(persist.Models, persist.Graph, true);
            NextProvider.Persist(new Create <TModel>(encryptedModels, persist.Graph));

            for (var i = 0; i < persist.Models.Length; i++)
            {
                object identity = ModelAnalyzer.GetIdentity(encryptedModels[i]);
                ModelAnalyzer.SetIdentity(persist.Models[i], identity);
            }
        }
Пример #16
0
        public override sealed async Task CreateAsync(Persist <TModel> persist)
        {
            if (persist.Models.Length == 0)
            {
                return;
            }

            TModel[] compressedModels = CompressModels(persist.Models, persist.Graph, true);
            await NextProvider.PersistAsync(new Create <TModel>(persist.Event, compressedModels, persist.Graph));

            for (var i = 0; i < persist.Models.Length; i++)
            {
                object identity = ModelAnalyzer.GetIdentity(compressedModels[i]);
                ModelAnalyzer.SetIdentity(persist.Models[i], identity);
            }
        }
Пример #17
0
        public override void DoTask(TasksToDo task)
        {
            if (task == TasksToDo.DownloadSingleAction)
            {
                HtmlDocument html = DownloadHtml(url);

                var model = GetSingleAction(DownloadActionName, html);
                Console.WriteLine($"Information downloaded from {ProviderName}");
                Console.WriteLine($"Action name: {model.Name} Date: {model.Date} Maximum Price: {model.MaximumPrice} Open Price: {model.OpenPrice} Close Price: {model.MinPrice} TKO: {model.Tko} Trading Volume: {model.TradingVolume}");
                Logger.Instance.AppendLoggerMessage($"Information downloaded from: {ProviderName} Action Name: {model.Name}");
            }
            else if (NextProvider != null)
            {
                NextProvider.DoTask(task);
                Logger.Instance.AppendLoggerMessage($"ERROR - {ProviderName} - dont have any information about this action or server not response");
            }
        }
        public override sealed async Task <object> SingleAsync(Query <TModel> query)
        {
            var whereCompressed = EncryptWhere(query.Where);

            var appenedQuery = new Query <TModel>(query);

            appenedQuery.Where = whereCompressed;

            var encryptedModels = (TModel)(await NextProvider.QueryAsync(appenedQuery));

            if (encryptedModels == null)
            {
                return(null);
            }

            var model = DecryptModels(new TModel[] { encryptedModels }, query.Graph, true).FirstOrDefault();

            return(model);
        }
        public override sealed object Single(Query <TModel> query)
        {
            var whereCompressed = EncryptWhere(query.Where);

            var appenedQuery = new Query <TModel>(query);

            appenedQuery.Where = whereCompressed;

            var encryptedModels = (TModel)(NextProvider.Query(appenedQuery));

            if (encryptedModels == null)
            {
                return(null);
            }

            var model = DecryptModel(encryptedModels, query.Graph, true);

            return(model);
        }
Пример #20
0
        public override sealed async Task <object> SingleAsync(Query <TModel> query)
        {
            var whereCompressed = CompressWhere(query.Where);

            var appenedQuery = new Query <TModel>(query);

            appenedQuery.Where = whereCompressed;

            var compressedModels = (TModel)(await NextProvider.QueryAsync(appenedQuery));

            if (compressedModels == null)
            {
                return(null);
            }

            var model = DecompressModel(compressedModels, query.Graph, true);

            return(model);
        }
Пример #21
0
        public override sealed async Task <object> SingleAsync(Query <TModel> query)
        {
            var appenedQuery = new Query <TModel>(query);

            OnQuery(appenedQuery.Graph);

            var where          = AppendWhereExpression(appenedQuery.Where, appenedQuery.Graph);
            appenedQuery.Where = where;

            var model = (TModel)(await NextProvider.QueryAsync(appenedQuery));

            TModel returnModel = null;

            if (model != null)
            {
                returnModel = OnGet(new TModel[] { model }, appenedQuery.Graph).SingleOrDefault();
            }

            return(returnModel);
        }
        public override sealed object Many(Query <TModel> query)
        {
            var whereCompressed = EncryptWhere(query.Where);
            var orderCompressed = EncryptOrder(query.Order);

            var appenedQuery = new Query <TModel>(query);

            appenedQuery.Where = whereCompressed;
            appenedQuery.Order = orderCompressed;

            var encryptedModels = (ICollection <TModel>)(NextProvider.Query(appenedQuery));

            if (encryptedModels.Count == 0)
            {
                return(encryptedModels);
            }

            var models = DecryptModels(encryptedModels, query.Graph, true);

            return(models);
        }
Пример #23
0
        public override sealed async Task <object> ManyAsync(Query <TModel> query)
        {
            var whereCompressed = CompressWhere(query.Where);
            var orderCompressed = CompressOrder(query.Order);

            var appenedQuery = new Query <TModel>(query);

            appenedQuery.Where = whereCompressed;
            appenedQuery.Order = orderCompressed;

            var compressedModels = (ICollection <TModel>)(await NextProvider.QueryAsync(appenedQuery));

            if (compressedModels.Count == 0)
            {
                return(compressedModels);
            }

            var models = DecompressModels(compressedModels, query.Graph, true);

            return(models);
        }
Пример #24
0
        public override sealed object First(Query <TModel> query)
        {
            var whereCompressed = CompressWhere(query.Where);
            var orderCompressed = CompressOrder(query.Order);

            var appenedQuery = new Query <TModel>(query);

            appenedQuery.Where = whereCompressed;
            appenedQuery.Order = orderCompressed;

            var compressedModels = (TModel)(NextProvider.Query(appenedQuery));

            if (compressedModels == null)
            {
                return(null);
            }

            var model = DecompressModel(compressedModels, query.Graph, true);

            return(model);
        }
Пример #25
0
        public override sealed async Task DeleteAsync(Persist <TModel> persist)
        {
            ICollection returnIds;

            if (persist.IDs != null)
            {
                returnIds = OnDelete(persist.IDs);
            }
            else
            {
                List <object> ids = new List <object>();
                foreach (TModel model in persist.Models)
                {
                    ids.Add(ModelAnalyzer.GetIdentity <TModel>(model));
                }

                returnIds = OnDelete(ids);
            }

            await NextProvider.PersistAsync(new DeleteByID <TModel>(persist.Event, returnIds));

            OnDeleteComplete(returnIds);
        }
Пример #26
0
        public override sealed async Task <object> ManyAsync(Query <TModel> query)
        {
            var appenedQuery = new Query <TModel>(query);

            OnQuery(appenedQuery.Graph);
            var where = AppendWhereExpression(appenedQuery.Where, appenedQuery.Graph);

            appenedQuery.Where = where;

            var models = (ICollection <TModel>)(await NextProvider.QueryAsync(appenedQuery));

            ICollection <TModel> returnModels;

            if (models.Count > 0)
            {
                returnModels = OnGet(models, appenedQuery.Graph);
            }
            else
            {
                returnModels = Array.Empty <TModel>();
            }

            return(returnModels);
        }
Пример #27
0
        public async Task SaveAsync(string name, Stream stream)
        {
            var resultStream = await OnSaveAsync(stream);

            await NextProvider.SaveAsync(name, resultStream);
        }
Пример #28
0
        public async Task <Stream> GetAsync(string name)
        {
            var stream = await NextProvider.GetAsync(name);

            return(await OnGetAsync(stream));
        }
Пример #29
0
 public Task <bool> ExistsAsync(string name)
 {
     return(NextProvider.ExistsAsync(name));
 }
Пример #30
0
        public void Save(string name, Stream stream)
        {
            var resultStream = OnSave(stream);

            NextProvider.Save(name, resultStream);
        }