コード例 #1
0
        public IActionResult Get(MetaFilter filter)
        {
            var registers = _siriusService.GetRegistersByFilter(filter);

            if (registers != null)
            {
                return(Ok(registers));
            }
            return(NotFound());
        }
コード例 #2
0
        /// <summary>
        /// Получение регистров по фильтру
        /// </summary>
        /// <param name="filter"></param>
        /// <returns></returns>
        public object GetRegistersByFilter(MetaFilter filter)
        {
            if (filter.FinishDate != DateTime.MinValue)
            {
                filter.FinishDate = filter.FinishDate.AddMinutes(59).AddHours(23);
            }
            Expression <Func <Register, bool> > f = x =>
                                                    (filter.ItemId != Guid.Empty ? x.ItemId == filter.ItemId : true) &&
                                                    (filter.CategoryId != Guid.Empty ? x.Item.CategoryId == filter.CategoryId : true) &&
                                                    (filter.StartDate != DateTime.MinValue ? x.Invoice.Date >= filter.StartDate : true) &&
                                                    (filter.FinishDate != DateTime.MinValue ? x.Invoice.Date <= filter.FinishDate : true) &&
                                                    (filter.TypeId != Guid.Empty ? x.Invoice.TypeId == filter.TypeId : true) &&
                                                    (x.Invoice.IsFixed == true);

            return(_unitOfWork.RegisterRepository.GetAll(f));
        }
コード例 #3
0
        private void OnChanged(object source, FileSystemEventArgs e)
        {
            try {
                watcherRestartCount = 0;
                if (store != null &&
                    icomparer.Equals(e.FullPath, store.StoreFile.FullName))
                {
                    return;
                }
                var ext = string.Empty;
                if (!string.IsNullOrEmpty(e.FullPath))
                {
                    ext = Path.GetExtension(e.FullPath);
                    ext = string.IsNullOrEmpty(ext) ? string.Empty : ext.Substring(1);
                }
                if (!Filter.Filtered(ext))
                {
                    // Check if this is a meta data filter file and there are files in the same folder
                    if (MetaFilter.Filtered(ext) && e.ChangeType != WatcherChangeTypes.Deleted)
                    {
                        var affectedFiles = Directory.GetFiles(Path.GetDirectoryName(e.FullPath)).Where(f => Filter.Filtered(Path.GetExtension(f).Substring(1)));
                        var refreshFiles  = new ConcurrentQueue <WeakReference>();
                        foreach (var file in affectedFiles)
                        {
                            // Add the files to the pending files list
                            var type = DlnaMaps.Ext2Dlna[Path.GetExtension(file).ToUpperInvariant().Substring(1)];
                            if (store != null)
                            {
                                var item = store.MaybeGetFile(this, new FileInfo(file), type);
                                if (item != null)
                                {
                                    refreshFiles.Enqueue(new WeakReference(item));
                                }
                            }
                        }
                        BackgroundCacher.AddFiles(store, refreshFiles);

                        DebugFormat("Found {0} affected files from metadata file {1}", affectedFiles.Count(), e.FullPath);
                    }
                    else
                    {
                        DebugFormat(
                            "Skipping name {0} {1}",
                            e.Name, Path.GetExtension(e.FullPath));
                    }
                    return;
                }
                DebugFormat(
                    "File System changed ({1}): {0}", e.FullPath, e.ChangeType);
                lock (ids) {
                    var master = ids.GetItemById(Identifiers.GENERAL_ROOT) as VirtualFolder;
                    if (master != null)
                    {
                        switch (e.ChangeType)
                        {
                        case WatcherChangeTypes.Changed:
                            if (HandleFileDeleted(e.FullPath, master) && HandleFileAdded(e.FullPath))
                            {
                                ReaddRoot(master);
                                return;
                            }
                            break;

                        case WatcherChangeTypes.Created:
                            if (HandleFileAdded(e.FullPath))
                            {
                                ReaddRoot(master);
                                return;
                            }
                            break;

                        case WatcherChangeTypes.Deleted:
                            if (HandleFileDeleted(e.FullPath, master))
                            {
                                ReaddRoot(master);
                                return;
                            }
                            break;
                        }
                    }
                }
                DelayedRescan(e.ChangeType);
            }
            catch (Exception ex) {
                Error("OnChanged failed", ex);
            }
        }