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); }
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!"); } }
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); } }
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); }