public static void DatasetToBinary(string filename, Bar[] dataset, DataFeedType type = DataFeedType.Both)
 {
     //Writes an array of bar data to a binary file
     //Usually used by reading a csv file into a Bar array and then writing to binary.
     using (BinaryWriter writer = new BinaryWriter(File.Open(filename, FileMode.Create)))
     {
         foreach (Bar bar in dataset)
         {
             if (bar != null)
             {
                 //convert from python to .net date
                 writer.Write(bar.OpenTime.AddYears(-1969).ToBinary() * 100);
                 if (type == DataFeedType.Both || type == DataFeedType.Bid)
                 {
                     writer.Write(bar.BidOpen);
                     writer.Write(bar.BidClose);
                     writer.Write(bar.BidHigh);
                     writer.Write(bar.BidLow);
                 }
                 if (type == DataFeedType.Both || type == DataFeedType.Ask)
                 {
                     writer.Write(bar.AskOpen);
                     writer.Write(bar.AskClose);
                     writer.Write(bar.AskHigh);
                     writer.Write(bar.AskLow);
                 }
                 writer.Write(bar.Volume);
             }
         }
     }
 }
Beispiel #2
0
 public VkGroupProcessingState GetProcessingState(int vkGroupId, DataFeedType feedType)
 {
     using (IDataGateway dataGateway = this.dataGatewayProvider.GetDataGateway())
     {
         var state = dataGateway.Connection.Query <VkGroupProcessingState>("select * from vkgroupprocessingstate where vkgroupid = @vkgroupid and feedtype = @feedType", new { vkgroupid = vkGroupId, feedType = (int)feedType }).FirstOrDefault();
         return(state);
     }
 }
Beispiel #3
0
        public DateTime?GetDateLimit(int vkGroupId, DataFeedType feedType)
        {
            DateTime?dateLimit = this.IsLimitedProcessingEnabled(vkGroupId, feedType)
                ? this.dateTimeHelper.GetDateTimeNow().Date.AddMonths(-this.GetMonthLimit())
                : (DateTime?)null;

            return(dateLimit);
        }
        public static void DatasetToBinarySingle(string filename, Bar[] dataset, DataFeedType type)
        {
            //this function is used to create a binary time series of just one datafeed - used for
            //creating features in python for example.
            using (BinaryWriter writer = new BinaryWriter(File.Open(filename, FileMode.Create)))
            {
                foreach (Bar bar in dataset)
                {
                    //convert from python to .net date
                    writer.Write((bar.OpenTime.AddYears(-1969).ToBinary() * 100));
                    switch (type)
                    {
                    case DataFeedType.BidOpen:
                        writer.Write(bar.BidOpen);
                        break;

                    case DataFeedType.BidClose:
                        writer.Write(bar.BidClose);
                        break;

                    case DataFeedType.BidHigh:
                        writer.Write(bar.BidHigh);
                        break;

                    case DataFeedType.BidLow:
                        writer.Write(bar.BidLow);
                        break;

                    case DataFeedType.AskOpen:
                        writer.Write(bar.AskOpen);
                        break;

                    case DataFeedType.AskClose:
                        writer.Write(bar.AskClose);
                        break;

                    case DataFeedType.AskHigh:
                        writer.Write(bar.AskHigh);
                        break;

                    case DataFeedType.AskLow:
                        writer.Write(bar.AskLow);
                        break;

                    case DataFeedType.Volume:
                        writer.Write((float)bar.Volume);
                        break;

                    default:
                        throw new Exception("Invalid datafeed type. Must be a single datefeed value for the DatasetToBinarySingle.");
                    }
                }
            }
        }
        public bool IsLimitedCachingEnabled(int vkGroupId, DataFeedType dataFeedType)
        {
            if (this.cachingSettings.CachingMode != CachingMode.HonorFeedProcessingConfig)
            {
                return(false);
            }

            var item = this.groupRepository.GetProcessingState(vkGroupId, dataFeedType);

            return(item != null);
        }
Beispiel #6
0
        private string GetItemTitle(DataFeedType feedType)
        {
            switch (feedType)
            {
            case DataFeedType.WallPosts:
                return("Посты");

            case DataFeedType.Photo:
                return("Фотографии");

            case DataFeedType.Video:
                return("Видео");

            case DataFeedType.Administrators:
                return("Администраторы");

            case DataFeedType.WallPostComments:
                return("Комментарии к постам");

            case DataFeedType.Topic:
                return("Темы");

            case DataFeedType.TopicComment:
                return("Сообщения в темах");

            case DataFeedType.MembersInfo:
                return("Участники");

            case DataFeedType.PhotoAlbumDetails:
                return("Информация о фотографиях");

            case DataFeedType.VideoComments:
                return("Комментарии к видео");

            case DataFeedType.VideoLikes:
                return("Лайки к видео");

            case DataFeedType.MemberLikes:
                return("Лайки");

            case DataFeedType.MemberShares:
                return("Шеры");

            case DataFeedType.MemberSubscription:
                return("Подписки");

            default:
                throw new ArgumentOutOfRangeException("feedType");
            }
        }
Beispiel #7
0
        public bool IsLimitedProcessingEnabled(int vkGroupId, DataFeedType dataFeedType)
        {
            var item = this.vkGroupRepository.GetProcessingState(vkGroupId, dataFeedType);

            return(item != null);
        }
Beispiel #8
0
        public IFeedProcessor Create(DataFeedType feedType)
        {
            if (this.processorsCache.ContainsKey(feedType))
            {
                return(this.processorsCache[feedType]);
            }

            switch (feedType)
            {
            case DataFeedType.WallPosts:
                this.processorsCache.Add(feedType, Factory.GetInstance <WallPostFeedProcessor>());
                break;

            case DataFeedType.WallPostComments:
                this.processorsCache.Add(feedType, Factory.GetInstance <WallPostCommentFeedProcessor>());
                break;

            case DataFeedType.Photo:
                this.processorsCache.Add(feedType, Factory.GetInstance <PhotoFeedProcessor>());
                break;

            case DataFeedType.PhotoAlbumDetails:
                this.processorsCache.Add(feedType, Factory.GetInstance <PhotoAlbumDetailsFeedProcessor>());
                break;

            case DataFeedType.MembersCount:
                this.processorsCache.Add(feedType, Factory.GetInstance <MembersCountFeedProcessor>());
                break;

            case DataFeedType.MemberLikes:
                this.processorsCache.Add(feedType, Factory.GetInstance <MemberLikesFeedProcessor>());
                break;

            case DataFeedType.MemberShares:
                this.processorsCache.Add(feedType, Factory.GetInstance <MemberSharesFeedProcessor>());
                break;

            case DataFeedType.MemberSubscription:
                this.processorsCache.Add(feedType, Factory.GetInstance <MemberSubscriptionFeedProcessor>());
                break;

            case DataFeedType.Video:
                this.processorsCache.Add(feedType, Factory.GetInstance <VideoFeedProcessor>());
                break;

            case DataFeedType.VideoComments:
                this.processorsCache.Add(feedType, Factory.GetInstance <VideoCommentFeedProcessor>());
                break;

            case DataFeedType.VideoLikes:
                this.processorsCache.Add(feedType, Factory.GetInstance <VideoLikesFeedProcessor>());
                break;

            case DataFeedType.Administrators:
                this.processorsCache.Add(feedType, Factory.GetInstance <AdministratorsFeedProcessor>());
                break;

            case DataFeedType.MembersInfo:
                this.processorsCache.Add(feedType, Factory.GetInstance <MembersFeedProcessor>());
                break;

            case DataFeedType.Topic:
                this.processorsCache.Add(feedType, Factory.GetInstance <TopicFeedProcessor>());
                break;

            case DataFeedType.TopicComment:
                this.processorsCache.Add(feedType, Factory.GetInstance <TopicCommentFeedProcessor>());
                break;

            default:
                throw new ArgumentException(string.Format("Feed type \"{0}\" is not supported", feedType), "feedType");
            }

            return(this.processorsCache[feedType]);
        }