Inheritance: IHttpHandler
Ejemplo n.º 1
0
        public override async Task <bool> ExecuteAsync()
        {
            if (!Initialise())
            {
                return(false);
            }

            if (Database == null)
            {
                Log.Error("Database {Name} does not exist", DatabaseName);
                return(false);
            }

            var colls = Client.CreateDocumentCollectionQuery(Database.SelfLink).AsEnumerable().ToList();

            foreach (var coll in colls)
            {
                var dataFile = CreateBackupFile(coll.Id);
                var handler  = new FeedHandler(Client, coll, dataFile, options);

                handlers.Add(handler);
            }

            Console.CancelKeyPress += OnExit;
            Console.WriteLine("Press Ctrl+C to exit");

            await Task.WhenAll(handlers.Select(x => x.Task).ToArray()).ConfigureAwait(false);

            return(true);
        }
Ejemplo n.º 2
0
        private List <ImportProcessState> GetImportProcesses(int?id)
        {
            IDbCommand cmd;
            string     strSQL;

            Tebaldi.MarketData.Models.State.ImportProcessState obj = new ImportProcessState();

            strSQL = "procGetProcess";

            cmd             = DataLayer.CreateCommand(strSQL, mstrConnectString);
            cmd.CommandType = CommandType.StoredProcedure;
            if (id != null)
            {
                cmd.Parameters.Add(DataLayer.CreateParameter("@Id", DbType.Int32, id, mstrConnectString));
            }

            DataSet ds = DataLayer.GetDataSet(cmd, mstrConnectString);

            List <ImportProcessState> lst = (from dr in ds.Tables[0].AsEnumerable()
                                             select new State.ImportProcessState()
            {
                Id = Convert.ToInt32(dr[obj.Schema.Id]),
                Name = Convert.ToString(dr[obj.Schema.Name]),
                Feed = new FeedState {
                    ID = Convert.ToInt32(dr[obj.Schema.FeedId])
                },
                AutoQueue = Convert.ToBoolean(dr[obj.Schema.AutoQueue]),
                Active = Convert.ToBoolean(dr[obj.Schema.Active])
            }).ToList();


            FeedHandler feed_handller = new FeedHandler(mstrConnectString);

            foreach (ImportProcessState item in lst)
            {
                item.Feed = feed_handller.GetFeed(item.Feed.ID);
            }

            return(lst);
        }
        public Logic()
        {
            _dbHandler   = new DbHandler();
            _controller  = new Controller();
            _feedHandler = new FeedHandler();
            _fileHandler = new FileHandler();

            _fileHandler.ExceptionEvent += OnExceptionEvent;

            _controller.DownloadFeed          += OnDownloadFeed;
            _controller.SearchLocalFolder     += OnSearchLocalFolder;
            _controller.StartDownloadEpisodes += OnStartDownloadEpisodes;
            _controller.CopyFromDownload      += OnCopyFromDownload;
            _controller.StopCopyFromDownload  += OnStopCopyFromDownload;
            _controller.PlayEpisode           += OnPlayEpisode;
            _controller.DeleteEpisode         += OnDeleteEpisode;
            _controller.DeleteTvShow          += OnDeleteTvShow;
            _controller.ToggleAutoDownload    += OnToggleAutoDownload;
            _controller.SaveEpisodeData       += _dbHandler.UpdateEpisode;
            _controller.SaveTvShowData        += _dbHandler.UpdateTvShow;
            _controller.OpenFolder            += OpenFolder;

            _controller.SaveConfig += OnSaveConfig;
            _controller.RestoreLocalPathSettings += OnRestoreLocalPathSettings;
            _controller.RestoreFeedLinkSettings  += OnRestoreFeedLinkSettings;
            _controller.LogRefresh += OnLogRefresh;

            try
            {
                LoadOrCreateConfig();
                OnDownloadFeed(null, null);
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Logic Error!");
            }
        }
Ejemplo n.º 4
0
        public Logic()
        {
            _dbHandler      = new DbHandler();
            _controller     = new Controller();
            _fileNameParser = new FileNameParser();
            _feedHandler    = new FeedHandler(_fileNameParser);
            _fileHandler    = new FileHandler(_fileNameParser);
            var unused = new LogHandler(LogLevel.Debug, _fileHandler);

            _fileHandler.ExceptionEvent += OnExceptionEvent;

            _controller.DownloadFeed          += OnDownloadFeed;
            _controller.SearchLocalFolder     += OnSearchLocalFolder;
            _controller.StartDownloadEpisodes += OnStartDownloadEpisodes;
            _controller.PlayEpisode           += OnPlayEpisode;
            _controller.DeleteEpisode         += OnDeleteEpisode;
            _controller.DeleteTvShow          += OnDeleteTvShow;
            _controller.ToggleAutoDownload    += OnToggleAutoDownload;
            _controller.SaveEpisodeData       += _dbHandler.UpdateEpisode;
            _controller.SaveTvShowData        += _dbHandler.UpdateTvShow;
            _controller.OpenFolder            += OpenFolder;

            _controller.SaveConfig += OnSaveConfig;
            _controller.RestoreLocalPathSettings += OnRestoreLocalPathSettings;
            _controller.RestoreFeedLinkSettings  += OnRestoreFeedLinkSettings;
            _controller.LogRefresh += OnLogRefresh;

            try
            {
                LoadOrCreateConfig();
                OnDownloadFeed(null, null);
            }
            catch (Exception ex)
            {
                LogHandler.WriteSystemLog("Logic: " + ex, LogLevel.Error);
            }
        }
Ejemplo n.º 5
0
        public List <ProcessQueueState> GetQueue(DateTime?dtAgendadaMax, bool?executado, bool?activeFeeds)
        {
            IDbCommand cmd;
            string     strSQL;

            Tebaldi.MarketData.Models.State.ProcessQueueState obj = new ProcessQueueState();


            strSQL = "procGetProcessQueue";

            cmd             = DataLayer.CreateCommand(strSQL, mstrConnectString);
            cmd.CommandType = CommandType.StoredProcedure;
            if (dtAgendadaMax != null)
            {
                cmd.Parameters.Add(DataLayer.CreateParameter("@dt_agd_max", DbType.DateTime, dtAgendadaMax, mstrConnectString));
            }

            if (executado != null)
            {
                cmd.Parameters.Add(DataLayer.CreateParameter("@executado", DbType.Boolean, executado, mstrConnectString));
            }

            if (activeFeeds != null)
            {
                cmd.Parameters.Add(DataLayer.CreateParameter("@activeFeeds", DbType.Boolean, activeFeeds, mstrConnectString));
            }

            DataSet ds = DataLayer.GetDataSet(cmd, mstrConnectString);


            List <ProcessQueueState> lstQueue = (from dr in ds.Tables[0].AsEnumerable()
                                                 select new State.ProcessQueueState()
            {
                QueueId = Convert.ToInt32(dr[obj.Schema.QueueId]),
                Process = new ImportProcessState
                {
                    Id = Convert.ToInt32(dr[obj.Schema.ProcessId]),
                    Active = Convert.ToBoolean(dr[obj.Process.Schema.ObjectName + "." + obj.Process.Schema.Active]),
                    AutoQueue = Convert.ToBoolean(dr[obj.Process.Schema.ObjectName + "." + obj.Process.Schema.AutoQueue]),
                    Feed = new FeedState
                    {
                        ID = Convert.ToInt32(dr[obj.Process.Schema.ObjectName + "." + obj.Process.Schema.FeedId]),
                    },
                    Name = Convert.ToString(dr[obj.Process.Schema.ObjectName + "." + obj.Process.Schema.Name])
                },
                DataAgendada = Convert.ToDateTime(dr[obj.Schema.DataAgendada]),
                DataExecucao = dr[obj.Schema.DataExecucao] == DBNull.Value ? DateTime.MinValue : Convert.ToDateTime(dr[obj.Schema.DataExecucao]),
                DataReferencia = Convert.ToDateTime(dr[obj.Schema.DataReferencia]),
                Executado = Convert.ToBoolean(dr[obj.Schema.Executado]),
                Success = Convert.ToBoolean(dr[obj.Schema.Success])
            }).ToList();

            FeedHandler feed_handller = new FeedHandler(mstrConnectString);

            foreach (ProcessQueueState item in lstQueue)
            {
                item.Process.Feed = feed_handller.GetFeed(item.Process.Feed.ID);
            }

            return(lstQueue);
        }