Exemple #1
0
 private IDatabaseReader GetReader(IDatabaseComponent database, LibraryHierarchyNode libraryHierarchyNode, MetaDataItemType?metaDataItemType, string metaDataItemName, ITransactionSource transaction)
 {
     return(database.ExecuteReader(database.Queries.GetLibraryHierarchyMetaData(this.LibraryHierarchyBrowser.Filter), (parameters, phase) =>
     {
         switch (phase)
         {
         case DatabaseParameterPhase.Fetch:
             parameters["libraryHierarchyItemId"] = libraryHierarchyNode.Id;
             if (metaDataItemType.HasValue)
             {
                 parameters["type"] = metaDataItemType.Value;
             }
             else
             {
                 parameters["type"] = null;
             }
             if (!string.IsNullOrEmpty(metaDataItemName))
             {
                 parameters["name"] = metaDataItemName;
             }
             else
             {
                 parameters["name"] = null;
             }
             break;
         }
     }, transaction));
 }
Exemple #2
0
        private static IDatabaseCommand CreateCommand(IDatabaseComponent database, ITransactionSource transaction)
        {
            var query = database.QueryFactory.Build();

            query.Add.AddColumn(database.Tables.LibraryItem.Column("DirectoryName"));
            query.Add.AddColumn(database.Tables.LibraryItem.Column("FileName"));
            query.Add.AddColumn(database.Tables.LibraryItem.Column("ImportDate"));
            query.Add.AddColumn(database.Tables.LibraryItem.Column("Status"));
            query.Add.AddColumn(database.Tables.LibraryItem.Column("Flags"));
            query.Add.SetTable(database.Tables.LibraryItem);
            query.Output.AddParameter("DirectoryName", DbType.String, 0, 0, 0, ParameterDirection.Input, false, null, DatabaseQueryParameterFlags.None);
            query.Output.AddParameter("FileName", DbType.String, 0, 0, 0, ParameterDirection.Input, false, null, DatabaseQueryParameterFlags.None);
            query.Output.AddParameter("ImportDate", DbType.String, 0, 0, 0, ParameterDirection.Input, false, null, DatabaseQueryParameterFlags.None);
            query.Output.AddParameter("Status", DbType.Byte, 0, 0, 0, ParameterDirection.Input, false, null, DatabaseQueryParameterFlags.None);
            query.Output.AddParameter("Flags", DbType.Byte, 0, 0, 0, ParameterDirection.Input, false, null, DatabaseQueryParameterFlags.None);
            query.Filter.Expressions.Add(
                query.Filter.CreateUnary(
                    QueryOperator.Not,
                    query.Filter.CreateFunction(
                        QueryFunction.Exists,
                        query.Filter.CreateSubQuery(
                            database.QueryFactory.Build().With(subQuery =>
            {
                subQuery.Output.AddOperator(QueryOperator.Star);
                subQuery.Source.AddTable(database.Tables.LibraryItem);
                subQuery.Filter.AddColumn(database.Tables.LibraryItem.Column("FileName"));
            })
                            )
                        )
                    )
                );
            return(database.CreateCommand(query.Build(), DatabaseCommandFlags.NoCache, transaction));
        }
 public LibraryPopulator(IDatabaseComponent database, IPlaybackManager playbackManager, bool reportProgress, ITransactionSource transaction)
     : base(reportProgress)
 {
     this.Database        = database;
     this.PlaybackManager = playbackManager;
     this.Transaction     = transaction;
 }
Exemple #4
0
 public static async Task RemoveCancelledLibraryItems(IDatabaseComponent database)
 {
     using (var transaction = database.BeginTransaction(database.PreferredIsolationLevel))
     {
         await database.ExecuteAsync(database.Queries.RemoveCancelledLibraryItems).ConfigureAwait(false);
     }
 }
        public static async Task UpdatePlaylistItem(IDatabaseComponent database, int playlistItemId, Action <PlaylistItem> action, ITransactionSource transaction)
        {
            var table   = database.Tables.PlaylistItem;
            var builder = database.QueryFactory.Build();

            builder.Output.AddColumns(table.Columns);
            builder.Source.AddTable(table);
            builder.Filter.AddColumns(table.PrimaryKeys);
            var query        = builder.Build();
            var playlistItem = default(PlaylistItem);

            using (var sequence = database.ExecuteAsyncEnumerator <PlaylistItem>(query, (parameters, phase) =>
            {
                switch (phase)
                {
                case DatabaseParameterPhase.Fetch:
                    parameters[table.PrimaryKey] = playlistItemId;
                    break;
                }
            }, transaction))
            {
                if (await sequence.MoveNextAsync().ConfigureAwait(false))
                {
                    playlistItem = sequence.Current;
                }
            }
            action(playlistItem);
            await UpdatePlaylistItem(database, playlistItem, transaction).ConfigureAwait(false);
        }
Exemple #6
0
        public HistoryDataListViewModel(IEventAggregator eventAggregator, IOrganizationService organizationService, IDatabaseComponent databaseComponent, ICardProcess cardProcess, IHardwareService hardwareService)
        {
            _eventAggregator     = eventAggregator;
            _organizationService = organizationService;
            _databaseComponent   = databaseComponent;
            _cardProcess         = cardProcess;
            _hardwareService     = hardwareService;

            _vInfoObjectsView        = new ListCollectionView(vInfoCollection);
            _vInfoObjectsView.Filter = (object item) =>
            {
                return(true);
            };
            _vInfoObjectsView.GroupDescriptions.Add(new PropertyGroupDescription("OrganizationName"));//对视图进行分组
            //_vInfoObjectsView.GroupDescriptions.Add(new PropertyGroupDescription("DeviceName"));//对视图进行分组
            //_vInfoObjectsView.GroupDescriptions.Add(new PropertyGroupDescription("ItemName"));//对视图进行分组

            _anInfoObjectsView        = new ListCollectionView(anInfoCollection);
            _anInfoObjectsView.Filter = (object item) =>
            {
                return(true);
            };
            _anInfoObjectsView.GroupDescriptions.Add(new PropertyGroupDescription("OrganizationName"));//对视图进行分组
            //_anInfoObjectsView.GroupDescriptions.Add(new PropertyGroupDescription("DeviceName"));//对视图进行分组
            //_anInfoObjectsView.GroupDescriptions.Add(new PropertyGroupDescription("ItemName"));//对视图进行分组

            _divFreObjectsView        = new ListCollectionView(divFreCollection);
            _divFreObjectsView.Filter = (object item) =>
            {
                return(true);
            };
            _divFreObjectsView.GroupDescriptions.Add(new PropertyGroupDescription("OrganizationName"));//对视图进行分组

            InitTree();
        }
Exemple #7
0
 private IDatabaseReader GetReader(IDatabaseComponent database, IEnumerable <PlaylistItem> playlistItems, MetaDataItemType?metaDataItemType, string metaDataItemName, ITransactionSource transaction)
 {
     return(database.ExecuteReader(database.Queries.GetPlaylistMetaData(playlistItems.Count()), (parameters, phase) =>
     {
         switch (phase)
         {
         case DatabaseParameterPhase.Fetch:
             var position = 0;
             foreach (var playlistItem in playlistItems)
             {
                 parameters["playlistItemId" + position] = playlistItem.Id;
                 position++;
             }
             if (metaDataItemType.HasValue)
             {
                 parameters["type"] = metaDataItemType.Value;
             }
             else
             {
                 parameters["type"] = null;
             }
             if (!string.IsNullOrEmpty(metaDataItemName))
             {
                 parameters["name"] = metaDataItemName;
             }
             else
             {
                 parameters["name"] = null;
             }
             break;
         }
     }, transaction));
 }
Exemple #8
0
 private static IDatabaseCommand CreateUpdateCommand(IDatabaseComponent database, ITransactionSource transaction)
 {
     return(database.CreateCommand(
                database.Queries.UpdateLibraryHierarchyNode,
                DatabaseCommandFlags.NoCache,
                transaction
                ));
 }
 protected MetaDataPopulator(IDatabaseComponent database, IDatabaseQuery query, bool reportProgress, ITransactionSource transaction)
     : base(reportProgress)
 {
     this.Database    = database;
     this.Transaction = transaction;
     this.Query       = query;
     this.Writer      = new MetaDataWriter(this.Database, this.Query, this.Transaction);
 }
 protected MetaDataPopulator(IDatabaseComponent database, IDatabaseQuery query, bool reportProgress, ITransactionSource transaction)
     : base(reportProgress)
 {
     this.Database    = database;
     this.Transaction = transaction;
     this.Query       = query;
     this.Writer      = new MetaDataWriter(this.Database, this.Query, this.Transaction);
     this.Warnings    = new ConcurrentDictionary <IFileData, IList <string> >();
 }
Exemple #11
0
 public LibraryUpdater(IDatabaseComponent database, IEnumerable <LibraryItem> items, Func <LibraryItem, bool> predicate, Func <IDatabaseSet <LibraryItem>, LibraryItem, Task> task, bool reportProgress, ITransactionSource transaction)
     : base(reportProgress)
 {
     this.Database    = database;
     this.Items       = items;
     this.Predicate   = predicate;
     this.Task        = task;
     this.Transaction = transaction;
 }
 public PlaylistPopulator(IDatabaseComponent database, IPlaybackManager playbackManager, int sequence, int offset, bool reportProgress, ITransactionSource transaction)
     : base(reportProgress)
 {
     this.Database        = database;
     this.PlaybackManager = playbackManager;
     this.Sequence        = sequence;
     this.Offset          = offset;
     this.Transaction     = transaction;
 }
Exemple #13
0
        public HistoryEventAlarmTrendViewModel(IEventAggregator eventAggregator, IOrganizationService organizationService, IDatabaseComponent databaseComponent, ICardProcess cardProcess, IHardwareService hardwareService)
        {
            _eventAggregator     = eventAggregator;
            _organizationService = organizationService;
            _databaseComponent   = databaseComponent;
            _cardProcess         = cardProcess;
            _hardwareService     = hardwareService;

            Initialization = InitializeAsync();
        }
        public DeviceHourlyDataViewModel(IEventAggregator eventAggregator, IOrganizationService organizationService, ISignalProcess signalProcess, ICardProcess cardProcess, IDatabaseComponent databaseComponent)
        {
            _eventAggregator     = eventAggregator;
            _organizationService = organizationService;
            _signalProcess       = signalProcess;
            _cardProcess         = cardProcess;
            _databaseComponent   = databaseComponent;

            InitTree();

            StartTime = Convert.ToDateTime(DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"));
        }
Exemple #15
0
        public static async Task UpdateLibraryItem(IDatabaseComponent database, LibraryItem libraryItem)
        {
            using (var transaction = database.BeginTransaction(database.PreferredIsolationLevel))
            {
                await UpdateLibraryItem(database, libraryItem, transaction).ConfigureAwait(false);

                if (transaction.HasTransaction)
                {
                    transaction.Commit();
                }
            }
        }
        public static async Task UpdatePlaylistItem(IDatabaseComponent database, int playlistItemId, Action <PlaylistItem> action)
        {
            using (var transaction = database.BeginTransaction(database.PreferredIsolationLevel))
            {
                await UpdatePlaylistItem(database, playlistItemId, action, transaction).ConfigureAwait(false);

                if (transaction.HasTransaction)
                {
                    transaction.Commit();
                }
            }
        }
Exemple #17
0
        public EditDeviceComponentsViewModel(IEventAggregator eventAggregator, IOrganizationService organizationService, ISignalProcess signalProcess, ICardProcess cardProcess, IDatabaseComponent databaseComponent, IRegionManager regionManager, IDeviceDiagnoseTemplateService deviceDiagnoseTemplateService)
        {
            _eventAggregator               = eventAggregator;
            _organizationService           = organizationService;
            _signalProcess                 = signalProcess;
            _cardProcess                   = cardProcess;
            _databaseComponent             = databaseComponent;
            _regionManager                 = regionManager;
            _deviceDiagnoseTemplateService = deviceDiagnoseTemplateService;

            InitTree();
        }
        public static Task UpdatePlaylistItem(IDatabaseComponent database, PlaylistItem playlistItem, ITransactionSource transaction)
        {
            var table   = database.Tables.PlaylistItem;
            var builder = database.QueryFactory.Build();

            builder.Update.SetTable(table);
            builder.Update.AddColumns(table.UpdatableColumns);
            builder.Filter.AddColumns(table.PrimaryKeys);
            var query      = builder.Build();
            var parameters = new ParameterHandlerStrategy(table, playlistItem).Handler;

            return(database.ExecuteAsync(query, parameters, transaction));
        }
 public static Task RemovePlaylistItems(IDatabaseComponent database, int playlistId, PlaylistItemStatus status, ITransactionSource transaction)
 {
     return(database.ExecuteAsync(database.Queries.RemovePlaylistItems, (parameters, phase) =>
     {
         switch (phase)
         {
         case DatabaseParameterPhase.Fetch:
             parameters["playlistId"] = playlistId;
             parameters["status"] = status;
             break;
         }
     }, transaction));
 }
Exemple #20
0
        public LibraryHierarchyPopulator(IDatabaseComponent database, bool reportProgress, ITransactionSource transaction)
            : base(reportProgress)
        {
            this.Database    = database;
            this.Transaction = transaction;
#if NET40
            this.Contexts = new TrackingThreadLocal <IScriptingContext>();
#else
            this.Contexts = new ThreadLocal <IScriptingContext>(true);
#endif
            this.Writer = new LibraryHierarchyWriter(this.Database, this.Transaction);
            this.Roots  = new Lazy <IEnumerable <string> >(() => this.GetRoots());
        }
Exemple #21
0
        public HistoryEventListViewModel(IDatabaseComponent databaseComponent, ILoginUserService loginUserService, IOrganizationService organizationService)
        {
            _loginUserService    = loginUserService;
            _organizationService = organizationService;
            _databaseComponent   = databaseComponent;

            customSystemException = _loginUserService.CustomSystemException;

            ServerIPCategory = _databaseComponent.GetServerIPCategory();
            ServerIP         = _databaseComponent.MainServerIp;

            SearchStartTime = DateTime.Now.AddDays(-1);
            SearchEndTime   = DateTime.Now;
        }
Exemple #22
0
        public OrganizationService(ICardProcess cardProcess, IDatabaseComponent databaseComponent)
        {
            _cardProcess       = cardProcess;
            _databaseComponent = databaseComponent;

            OrganizationTreeItems = new ObservableCollection <OrganizationTreeItemViewModel>();
            RecycledTreeItems     = new ObservableCollection <OrganizationTreeItemViewModel>();
            ItemTreeItems         = new List <ItemTreeItemViewModel>();
            DivFreTreeItems       = new List <DivFreTreeItemViewModel>();
            //T_Organization = new Dictionary<string, List<T1_Organization>>();
            T_OrganizationPrivilege = new Dictionary <string, List <T1_OrganizationPrivilege> >();
            //T_Item = new Dictionary<string, List<T1_Item>>();
            T_DivFreInfo = new Dictionary <string, List <T1_DivFreInfo> >();
        }
Exemple #23
0
 public void InitializeDatabase(IDatabaseComponent database, DatabaseInitializeType type)
 {
     ComponentRegistry.Instance.ForEach <IDatabaseInitializer>(component =>
     {
         try
         {
             component.InitializeDatabase(database, type);
         }
         catch (Exception e)
         {
             Logger.Write(this, LogLevel.Warn, "Failed to initialize database {0}: {1}", component.GetType().Name, e.Message);
         }
     });
 }
Exemple #24
0
        private static IDatabaseCommand CreateCommand(IDatabaseComponent database, ITransactionSource transaction)
        {
            var query = database.QueryFactory.Build();

            query.Add.SetTable(database.Tables.PlaylistItem);
            query.Add.AddColumns(database.Tables.PlaylistItem.Columns.Except(database.Tables.PlaylistItem.PrimaryKeys));
            query.Output.AddSubQuery(database.QueryFactory.Build().With(subQuery =>
            {
                subQuery.Output.AddColumn(database.Tables.LibraryItem.Column("Id"));
                subQuery.Source.AddTable(database.Tables.LibraryItem);
                subQuery.Filter.AddColumn(database.Tables.LibraryItem.Column("FileName"));
            }));
            query.Output.AddParameters(database.Tables.PlaylistItem.Columns.Except(database.Tables.PlaylistItem.PrimaryKeys.Concat(database.Tables.PlaylistItem.Column("LibraryItem_Id"))));
            return(database.CreateCommand(query.Build(), DatabaseCommandFlags.NoCache, transaction));
        }
 public void InitializeDatabase(IDatabaseComponent database)
 {
     using (var transaction = database.BeginTransaction())
     {
         var set = database.Set <PlaylistColumn>(transaction);
         set.Add(new PlaylistColumn()
         {
             Name     = "Rating",
             Type     = PlaylistColumnType.Plugin,
             Sequence = 100,
             Plugin   = typeof(RatingBehaviour).AssemblyQualifiedName,
             Enabled  = false
         });
         transaction.Commit();
     }
 }
Exemple #26
0
            protected virtual IReportRow GetRow(IDatabaseComponent database, LibraryRoot libraryRoot, ITransactionSource transaction)
            {
                var table   = database.Tables.LibraryItem;
                var builder = database.QueryFactory.Build();

                builder.Output.AddFunction(QueryFunction.Count, builder.Output.CreateOperator(QueryOperator.Star));
                builder.Source.AddTable(table);
                builder.Filter.Add().With(binary =>
                {
                    binary.Left     = binary.CreateColumn(table.Column("DirectoryName"));
                    binary.Operator = binary.CreateOperator(QueryOperator.Match);
                    binary.Right    = binary.CreateConstant(libraryRoot.DirectoryName + "%");
                });
                var count = database.ExecuteScalar <long>(builder.Build(), transaction);

                return(new ReportRow(libraryRoot.DirectoryName, count));
            }
 public void InitializeDatabase(IDatabaseComponent database, DatabaseInitializeType type)
 {
     //IMPORTANT: When editing this function remember to change the checksum.
     if (!type.HasFlag(DatabaseInitializeType.MetaData))
     {
         return;
     }
     using (var transaction = database.BeginTransaction(database.PreferredIsolationLevel))
     {
         var set = database.Set <MetaDataProvider>(transaction);
         set.Clear();
         //No default data, yet.
         if (transaction.HasTransaction)
         {
             transaction.Commit();
         }
     }
 }
Exemple #28
0
        public LoginUserService(ILocalConfiguration localConfiguration, IHardwareService hardwareService, IOrganizationService organizationService, IUserManageService userManageService, ICardProcess cardProcess, ISignalProcess signalProcess, IDatabaseComponent databaseComponent, IEventAggregator eventAggregator, IRegionManager regionManager)
        {
            _localConfiguration  = localConfiguration;
            _hardwareService     = hardwareService;
            _organizationService = organizationService;
            _userManageService   = userManageService;
            _cardProcess         = cardProcess;
            _signalProcess       = signalProcess;
            _databaseComponent   = databaseComponent;
            _eventAggregator     = eventAggregator;
            _regionManager       = regionManager;

            MenuManageList        = new MenuManageList();
            ExceptionModel        = new ObservableCollection <ExceptionModel>();
            CustomSystemException = new ObservableCollection <T1_SystemEvent>();

            _eventAggregator.GetEvent <ThrowExceptionEvent>().Subscribe(ManageException, ThreadOption.UIThread);
        }
Exemple #29
0
 public static Task RemoveHierarchies(IDatabaseComponent database, LibraryHierarchy libraryHierarchy, LibraryItemStatus?status, ITransactionSource transaction)
 {
     return(database.ExecuteAsync(database.Queries.RemoveLibraryHierarchyItems, (parameters, phase) =>
     {
         switch (phase)
         {
         case DatabaseParameterPhase.Fetch:
             if (libraryHierarchy != null)
             {
                 parameters["libraryHierarchyId"] = libraryHierarchy.Id;
             }
             if (status.HasValue)
             {
                 parameters["status"] = status;
             }
             break;
         }
     }, transaction));
 }
Exemple #30
0
        private async void Win_Parachanged(LoginInfo logininfo)
        {
            _databaseComponent = ServiceLocator.Current.GetInstance <IDatabaseComponent>();

            if (logininfo.UserName == "superadmin" && logininfo.Password == "superadmin")
            {
                loginSucceed = true;
                loginWin.Close();
            }
            else if (await _databaseComponent.UserLogin(logininfo.ServerInfo.IP, logininfo.UserName, logininfo.Password) != null)
            {
                loginSucceed = true;
                loginWin.Close();
            }
            else
            {
                logininfo.RrrorInformation = (string)Application.Current.Resources["strUserError"];
            }
        }