public async Task <int> GetTemplatesCountAsync(DataLoadingOptions <TemplateFilter> dataLoadingOptions) { var query = _templateRepository.Query(); // Filter if (dataLoadingOptions.Filter != null) { if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.Name)) { query = query.Where(x => x.Name.Contains(dataLoadingOptions.Filter.Name, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.Urls)) { query = query.Where(x => x.Urls.Contains(dataLoadingOptions.Filter.Urls, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.Apps)) { query = query.Where(x => x.Apps.Contains(dataLoadingOptions.Filter.Apps, StringComparison.OrdinalIgnoreCase)); } } // Search if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => x.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Urls.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Apps.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } return(await query.CountAsync()); }
public async Task <int> GetGruopMembersCountAsync(DataLoadingOptions <GroupMembershipFilter> dataLoadingOptions) { var query = _groupMembershipRepository .Query() .Include(x => x.Employee) .Where(x => x.GroupId == dataLoadingOptions.EntityId) .AsQueryable(); // Filter if (dataLoadingOptions.Filter != null) { if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.Name)) { query = query.Where(x => (x.Employee.FirstName + " " + x.Employee.LastName).Contains(dataLoadingOptions.Filter.Name, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.Email)) { query = query.Where(x => x.Employee.Email.Contains(dataLoadingOptions.Filter.Email, StringComparison.OrdinalIgnoreCase)); } } // Search if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => (x.Employee.FirstName + " " + x.Employee.LastName).Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Employee.Email.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } return(await query.CountAsync()); }
public async Task <int> GetGroupsCountAsync(DataLoadingOptions <GroupFilter> dataLoadingOptions) { var query = _groupRepository.Query(); // Filter if (dataLoadingOptions.Filter != null) { if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.Name)) { query = query.Where(x => x.Name.Contains(dataLoadingOptions.Filter.Name, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.Email)) { query = query.Where(x => x.Email.Contains(dataLoadingOptions.Filter.Email, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.MembersCount)) { query = query.Where(x => x.GroupMemberships.Count().ToString().Contains(dataLoadingOptions.Filter.MembersCount)); } } // Search if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => x.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Email.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.GroupMemberships.Count.ToString().Contains(dataLoadingOptions.SearchText)); } return(await query.CountAsync()); }
public async Task <List <ApplicationUser> > GetAdministratorsAsync(DataLoadingOptions <ApplicationUserFilter> dataLoadingOptions) { var query = _applicationUserRepository.Query(); if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => x.Email.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.PhoneNumber.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } switch (dataLoadingOptions.SortedColumn) { case nameof(ApplicationUser.Email): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Email) : query.OrderByDescending(x => x.Email); break; case nameof(ApplicationUser.PhoneNumber): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.PhoneNumber) : query.OrderByDescending(x => x.PhoneNumber); break; case nameof(ApplicationUser.EmailConfirmed): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.EmailConfirmed) : query.OrderByDescending(x => x.EmailConfirmed); break; case nameof(ApplicationUser.TwoFactorEnabled): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.TwoFactorEnabled) : query.OrderByDescending(x => x.TwoFactorEnabled); break; } return(await query.Skip(dataLoadingOptions.Skip).Take(dataLoadingOptions.Take).AsNoTracking().ToListAsync()); }
public HardwareVaultServiceTestingOptions(int hardwareVaultsCount, int hardwareVaultId, string newHardwareVaultRFID, int employeeId, IAsyncRepository <HardwareVault> hardwareVaultRepository, IAsyncRepository <HardwareVaultProfile> hardwareVaultProfileRepository) { NewHardwareVaultRFID = newHardwareVaultRFID; HardwareVaultId = hardwareVaultId.ToString(); HardwareVaultsCount = hardwareVaultsCount; _hardwareVaultRepository = hardwareVaultRepository; EmployeetId = $"{employeeId}"; hardwareVaultProfileRepository.AddAsync(new HardwareVaultProfile { Id = ServerConstants.DefaulHardwareVaultProfileId, Name = "Default" }); ActivationCodeLenght = 6; CreateHardwareVaults(); DataLoadingOptions = new DataLoadingOptions <HardwareVaultFilter>() { Skip = 0, Take = HardwareVaultsCount, SortDirection = ListSortDirection.Ascending, SortedColumn = nameof(Employee.Id), SearchText = string.Empty, Filter = null }; }
public async Task GetAccountsCountAsync() { var options = new DataLoadingOptions <AccountFilter>() { EntityId = _testingOptions.AccountsEmployeeId }; var accountsCount = await _employeeService.GetAccountsCountAsync(options); Assert.Equal(_testingOptions.AccountsCount, accountsCount); }
public async Task <List <Group> > GetGroupsAsync(DataLoadingOptions <GroupFilter> dataLoadingOptions) { var query = _groupRepository .Query() .Include(x => x.GroupMemberships) .AsQueryable(); // Filter if (dataLoadingOptions.Filter != null) { if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.Name)) { query = query.Where(x => x.Name.Contains(dataLoadingOptions.Filter.Name, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.Email)) { query = query.Where(x => x.Email.Contains(dataLoadingOptions.Filter.Email, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.MembersCount)) { query = query.Where(x => x.GroupMemberships.Count().ToString().Contains(dataLoadingOptions.Filter.MembersCount)); } } // Search if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => x.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Email.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.GroupMemberships.Count.ToString().Contains(dataLoadingOptions.SearchText)); } // Sort Direction switch (dataLoadingOptions.SortedColumn) { case nameof(Group.Name): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Name) : query.OrderByDescending(x => x.Name); break; case nameof(Group.Email): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Email) : query.OrderByDescending(x => x.Email); break; case nameof(Group.GroupMemberships): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.GroupMemberships.Count) : query.OrderByDescending(x => x.GroupMemberships.Count); break; } return(await query.Skip(dataLoadingOptions.Skip).Take(dataLoadingOptions.Take).AsNoTracking().ToListAsync()); }
public async Task <int> GetAdministratorsCountAsync(DataLoadingOptions <ApplicationUserFilter> dataLoadingOptions) { var query = _applicationUserRepository.Query(); if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => x.Email.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.PhoneNumber.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } return(await query.CountAsync()); }
public async Task <List <Template> > GetTemplatesAsync(DataLoadingOptions <TemplateFilter> dataLoadingOptions) { var query = _templateRepository.Query(); // Filter if (dataLoadingOptions.Filter != null) { if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.Name)) { query = query.Where(x => x.Name.Contains(dataLoadingOptions.Filter.Name, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.Urls)) { query = query.Where(x => x.Urls.Contains(dataLoadingOptions.Filter.Urls, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.Apps)) { query = query.Where(x => x.Apps.Contains(dataLoadingOptions.Filter.Apps, StringComparison.OrdinalIgnoreCase)); } } // Search if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => x.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Urls.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Apps.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } // Sort Direction switch (dataLoadingOptions.SortedColumn) { case nameof(Template.Name): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Name) : query.OrderByDescending(x => x.Name); break; case nameof(Template.Urls): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Urls) : query.OrderByDescending(x => x.Urls); break; case nameof(Template.Apps): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Apps) : query.OrderByDescending(x => x.Apps); break; } return(await query.Skip(dataLoadingOptions.Skip).Take(dataLoadingOptions.Take).AsNoTracking().ToListAsync()); }
public async Task <List <GroupMembership> > GetGruopMembersAsync(DataLoadingOptions <GroupMembershipFilter> dataLoadingOptions) { var query = _groupMembershipRepository .Query() .Include(x => x.Employee) .Where(x => x.GroupId == dataLoadingOptions.EntityId) .AsQueryable(); // Filter if (dataLoadingOptions.Filter != null) { if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.Name)) { query = query.Where(x => (x.Employee.FirstName + " " + x.Employee.LastName).Contains(dataLoadingOptions.Filter.Name, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.Email)) { query = query.Where(x => x.Employee.Email.Contains(dataLoadingOptions.Filter.Email, StringComparison.OrdinalIgnoreCase)); } } // Search if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => (x.Employee.FirstName + " " + x.Employee.LastName).Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Employee.Email.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } // Sort Direction switch (dataLoadingOptions.SortedColumn) { case nameof(GroupMembership.Employee.FullName): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Employee.FirstName).ThenBy(x => x.Employee.LastName) : query.OrderByDescending(x => x.Employee.FirstName).ThenByDescending(x => x.Employee.LastName); break; case nameof(GroupMembership.Employee.Email): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Employee.Email) : query.OrderByDescending(x => x.Employee.Email); break; } return(await query.Skip(dataLoadingOptions.Skip).Take(dataLoadingOptions.Take).ToListAsync()); }
public async Task <int> GetProximityVaultsCountAsync(DataLoadingOptions <WorkstationDetailsFilter> dataLoadingOptions) { var query = _workstationProximityVaultRepository .Query() .Include(d => d.HardwareVault.Employee.Department.Company) .Where(d => d.WorkstationId == dataLoadingOptions.EntityId) .AsQueryable(); // Search if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => x.HardwareVaultId.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || (x.HardwareVault.Employee.FirstName + " " + x.HardwareVault.Employee.LastName).Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.HardwareVault.Employee.Department.Company.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.HardwareVault.Employee.Department.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } return(await query.CountAsync()); }
public async Task <int> GetSharedAccountsCountAsync(DataLoadingOptions <SharedAccountsFilter> dataLoadingOptions) { var query = _sharedAccountRepository .Query() .Where(d => d.Deleted == false); // Filter if (dataLoadingOptions.Filter != null) { if (dataLoadingOptions.Filter.Name != null) { query = query.Where(w => w.Name.Contains(dataLoadingOptions.Filter.Name, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Urls != null) { query = query.Where(w => w.Urls.Contains(dataLoadingOptions.Filter.Urls, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Apps != null) { query = query.Where(w => w.Apps.Contains(dataLoadingOptions.Filter.Apps, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Login != null) { query = query.Where(w => w.Login.Contains(dataLoadingOptions.Filter.Login, StringComparison.OrdinalIgnoreCase)); } } //Search if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => x.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Urls.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Apps.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Login.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } return(await query.CountAsync()); }
public async Task <int> GetAccountsCountAsync(DataLoadingOptions <AccountFilter> dataLoadingOptions) { var query = _accountService .Query() .Include(x => x.Employee.HardwareVaults) .Include(x => x.SharedAccount) .Where(x => x.EmployeeId == dataLoadingOptions.EntityId && x.Deleted == false) .AsQueryable(); if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => x.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Urls.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Apps.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Login.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } return(await query.CountAsync()); }
/// <summary> /// Constructor /// </summary> public MultiAlignAnalysisOptions() { DataLoadOptions = new DataLoadingOptions(); InstrumentTolerances = new FeatureTolerances(); MassTagDatabaseOptions = new MassTagDatabaseOptions(); MsFilteringOptions = new MsFeatureFilteringOptions(); LcmsFindingOptions = new LcmsFeatureFindingOptions(InstrumentTolerances); LcmsFilteringOptions = new LcmsFeatureFilteringOptions { FilterOnMinutes = true, FeatureLengthRangeMinutes = new FilterRange(0, 20), MinimumDataPoints = 3, FeatureLengthRangeScans = new FilterRange(0, 2000) }; AlignmentOptions = new AlignmentOptions(); LcmsClusteringOptions = new LcmsClusteringOptions(InstrumentTolerances); StacOptions = new StacOptions(); HasMsMs = false; UsedIonMobility = false; this.ClusterPostProcessingoptions = new ClusterPostProcessingOptions(); }
private async Task LoadDataAsync() { var filter = new HardwareVaultFilter() { Status = VaultStatus.Active }; TotalRecords = await HardwareVaultService.GetVaultsCountAsync(new DataLoadingOptions <HardwareVaultFilter> { SearchText = SearchText, Filter = filter }); HardwareVaults = await HardwareVaultService.GetVaultsAsync(new DataLoadingOptions <HardwareVaultFilter> { Take = TotalRecords, SortedColumn = nameof(HardwareVault.Id), SortDirection = ListSortDirection.Ascending, SearchText = SearchText, Filter = filter }); var count = await WorkstationService.GetProximityVaultsCountAsync(new DataLoadingOptions <WorkstationDetailsFilter>() { EntityId = WorkstationId }); var proximityVaultFilter = new DataLoadingOptions <WorkstationDetailsFilter>() { Take = count, SortedColumn = nameof(WorkstationProximityVault.HardwareVaultId), SortDirection = ListSortDirection.Ascending, EntityId = WorkstationId }; var proximityVaults = await WorkstationService.GetProximityVaultsAsync(proximityVaultFilter); AlreadyAdded = proximityVaults.Count > 0; HardwareVaults = HardwareVaults.Where(x => !proximityVaults.Select(s => s.HardwareVaultId).Contains(x.Id)).ToList(); SelectedHardwareVault = null; StateHasChanged(); }
private IQueryable <ApplicationUser> AdministratorsQuery(DataLoadingOptions <ApplicationUserFilter> dataLoadingOptions) { var query = _applicationUserRepository.Query() .Include(x => x.UserRoles) .ThenInclude(x => x.Role) .Where(x => x.UserRoles.Any(x => x.Role.Name == ApplicationRoles.Admin)) .AsQueryable(); if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => x.Email.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.PhoneNumber.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } switch (dataLoadingOptions.SortedColumn) { case nameof(ApplicationUser.Email): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Email) : query.OrderByDescending(x => x.Email); break; case nameof(ApplicationUser.PhoneNumber): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.PhoneNumber) : query.OrderByDescending(x => x.PhoneNumber); break; case nameof(ApplicationUser.EmailConfirmed): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.EmailConfirmed) : query.OrderByDescending(x => x.EmailConfirmed); break; case nameof(ApplicationUser.TwoFactorEnabled): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.TwoFactorEnabled) : query.OrderByDescending(x => x.TwoFactorEnabled); break; } return(query); }
/// <summary> /// Loads baseline data for alignment. /// </summary> private IList <UMCLight> LoadBaselineData(DatasetInformation baselineInfo, MsFeatureFilteringOptions msFilterOptions, LcmsFeatureFindingOptions lcmsFindingOptions, LcmsFeatureFilteringOptions lcmsFilterOptions, DataLoadingOptions dataLoadOptions, FeatureDataAccessProviders dataProviders, MassTagDatabase database, bool shouldUseMassTagDbAsBaseline) { IList <UMCLight> baselineFeatures = null; UpdateStatus("Loading baseline features."); if (!shouldUseMassTagDbAsBaseline) { if (baselineInfo == null) { throw new Exception("The baseline dataset was never set."); } var cache = new FeatureLoader { Providers = dataProviders }; RegisterProgressNotifier(cache); UpdateStatus("Loading baseline features from " + baselineInfo.DatasetName + " for alignment."); baselineFeatures = cache.LoadDataset(baselineInfo, msFilterOptions, lcmsFindingOptions, lcmsFilterOptions, dataLoadOptions, m_scanSummaryProviderCache, this.m_identificationsProvider); cache.CacheFeatures(baselineFeatures); if (BaselineFeaturesLoaded != null) { BaselineFeaturesLoaded(this, new BaselineFeaturesLoadedEventArgs(baselineInfo, baselineFeatures.ToList())); } DeRegisterProgressNotifier(cache); } else { if (database == null) { throw new NullReferenceException( "The mass tag database has to have data in it if it's being used for drift time alignment."); } UpdateStatus("Setting baseline features for post drift time alignment from mass tag database."); var tags = FeatureDataConverters.ConvertToUMC(database.MassTags); if (BaselineFeaturesLoaded == null) { return(tags); } if (tags != null) { BaselineFeaturesLoaded(this, new BaselineFeaturesLoadedEventArgs(null, tags.ToList(), database)); } } return(baselineFeatures); }
/// <summary> /// Load a single dataset from the provider. /// </summary> /// <returns></returns> public IList <UMCLight> LoadDataset(DatasetInformation dataset, MsFeatureFilteringOptions msFilteringOptions, LcmsFeatureFindingOptions lcmsFindingOptions, LcmsFeatureFilteringOptions lcmsFilteringOptions, DataLoadingOptions dataLoadOptions, ScanSummaryProviderCache providerCache, IdentificationProviderCache identificationProviders, IProgress <ProgressData> progress = null) { var progData = new ProgressData(progress); IScanSummaryProvider provider = null; if (!string.IsNullOrWhiteSpace(dataset.RawFile.Path)) { UpdateStatus("Using raw data to create better features."); provider = providerCache.GetScanSummaryProvider(dataset.RawFile.Path, dataset.DatasetId); } progData.StepRange(1); progData.Status = "Looking for existing features in the database."; UpdateStatus(string.Format("[{0}] - Loading dataset [{0}] - {1}.", dataset.DatasetId, dataset.DatasetName)); var datasetId = dataset.DatasetId; var features = UmcLoaderFactory.LoadUmcFeatureData(dataset, Providers.FeatureCache, provider); var hasMsFeatures = features.Any(f => f.MsFeatures.Any()); var msFeatures = new List <MSFeatureLight>(); if (!hasMsFeatures) { progData.StepRange(2); progData.Status = "Loading MS Feature Data."; UpdateStatus(string.Format("[{0}] Loading MS Feature Data [{0}] - {1}.", dataset.DatasetId, dataset.DatasetName)); var isosFilterOptions = dataLoadOptions.GetIsosFilterOptions(); msFeatures = UmcLoaderFactory.LoadMsFeatureData(dataset.Features.Path, isosFilterOptions); } progData.StepRange(3); progData.Status = "Loading scan summaries."; ////var scansInfo = UmcLoaderFactory.LoadScanSummaries(dataset.Scans.Path); ////dataset.BuildScanTimes(scansInfo); progData.StepRange(100); var msnSpectra = new List <MSSpectra>(); // If we don't have any features, then we have to create some from the MS features // provided to us. if (features.Count < 1) { msFeatures = LcmsFeatureFilters.FilterMsFeatures(msFeatures, msFilteringOptions); msFeatures = Filter(msFeatures, provider, ref dataset); progData.Status = "Creating LCMS features."; features = CreateLcmsFeatures(dataset, msFeatures, lcmsFindingOptions, lcmsFilteringOptions, provider, new Progress <ProgressData>(pd => progData.Report(pd.Percent))); //var maxScan = Convert.ToDouble(features.Max(feature => feature.Scan)); //var minScan = Convert.ToDouble(features.Min(feature => feature.Scan)); var maxScan = features.Max(feature => feature.Scan); var minScan = features.Min(feature => feature.Scan); var id = 0; var scanTimes = dataset.ScanTimes; foreach (var feature in features) { feature.Id = id++; //feature.Net = (Convert.ToDouble(feature.Scan) - minScan) / (maxScan - minScan); feature.Net = (Convert.ToDouble(scanTimes[feature.Scan]) - scanTimes[minScan]) / (scanTimes[maxScan] - scanTimes[minScan]); feature.MassMonoisotopicAligned = feature.MassMonoisotopic; feature.NetAligned = feature.Net; feature.GroupId = datasetId; feature.SpectralCount = feature.MsFeatures.Count; foreach (var msFeature in feature.MsFeatures.Where(msFeature => msFeature != null)) { msFeature.UmcId = feature.Id; msFeature.GroupId = datasetId; msFeature.MSnSpectra.ForEach(x => x.GroupId = datasetId); msnSpectra.AddRange(msFeature.MSnSpectra); } } } else { if (!UmcLoaderFactory.AreExistingFeatures(dataset.Features.Path)) { var i = 0; foreach (var feature in features) { feature.GroupId = datasetId; feature.Id = i++; } } // Otherwise, we need to map the MS features to the LCMS Features provided. // This would mean that we extracted data from an existing database. if (msFeatures.Count > 0) { var map = FeatureDataConverters.MapFeature(features); foreach (var feature in from feature in msFeatures let doesFeatureExists = map.ContainsKey(feature.UmcId) where doesFeatureExists select feature) { map[feature.UmcId].AddChildFeature(feature); } } } //if (provider is ISpectraProvider) //{ // var spectraProvider = provider as ISpectraProvider; // UmcLoaderFactory.LoadMsMs(features.ToList(), spectraProvider); //} // Process the MS/MS data with peptides UpdateStatus("Reading List of Peptides"); if (dataset.SequenceFile != null && !string.IsNullOrEmpty(dataset.SequenceFile.Path)) { UpdateStatus("Reading List of Peptides"); var idProvider = identificationProviders.GetProvider(dataset.SequenceFile.Path, dataset.DatasetId); var peptideList = idProvider.GetAllIdentifications(); UpdateStatus("Linking MS/MS to any known Peptide/Metabolite Sequences"); var linker = new PeptideMsMsLinker(); linker.LinkPeptidesToSpectra(msnSpectra, peptideList); } progData.Report(100); return(features); }
public async Task <int> GetWorkstationsCountAsync(DataLoadingOptions <WorkstationFilter> dataLoadingOptions) { var query = _workstationRepository .Query() .Include(x => x.Department.Company) .Include(x => x.WorkstationProximityVaults) .AsQueryable(); // Filter if (dataLoadingOptions.Filter != null) { if (dataLoadingOptions.Filter.Name != null) { query = query.Where(w => w.Name.Contains(dataLoadingOptions.Filter.Name, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Domain != null) { query = query.Where(w => w.Domain.Contains(dataLoadingOptions.Filter.Domain, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.ClientVersion != null) { query = query.Where(w => w.ClientVersion.Contains(dataLoadingOptions.Filter.ClientVersion, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Company != null) { query = query.Where(x => x.Department.Company.Name.Contains(dataLoadingOptions.Filter.Company, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Department != null) { query = query.Where(x => x.Department.Name.Contains(dataLoadingOptions.Filter.Department, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.OS != null) { query = query.Where(w => w.OS.Contains(dataLoadingOptions.Filter.OS, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.IP != null) { query = query.Where(w => w.IP.Contains(dataLoadingOptions.Filter.IP, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.LastSeenStartDate != null) { query = query.Where(w => w.LastSeen >= dataLoadingOptions.Filter.LastSeenStartDate); } if (dataLoadingOptions.Filter.LastSeenEndDate != null) { query = query.Where(x => x.LastSeen <= dataLoadingOptions.Filter.LastSeenEndDate); } if (dataLoadingOptions.Filter.RFID != null) { query = query.Where(x => x.RFID == dataLoadingOptions.Filter.RFID); } if (dataLoadingOptions.Filter.Approved != null) { query = query.Where(x => x.Approved == dataLoadingOptions.Filter.Approved); } } // Search if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => x.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Domain.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.ClientVersion.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Department.Company.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Department.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.OS.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.IP.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } return(await query.CountAsync()); }
public async Task <int> GetLicenseOrdersCountAsync(DataLoadingOptions <LicenseOrderFilter> dataLoadingOptions) { var query = _licenseOrderRepository .Query() .Include(x => x.HardwareVaultLicenses) .AsQueryable(); // Filter if (dataLoadingOptions.Filter != null) { if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.Note)) { query = query.Where(x => x.Note.Contains(dataLoadingOptions.Filter.Note, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.ContactEmail)) { query = query.Where(w => w.ContactEmail.Contains(dataLoadingOptions.Filter.ContactEmail, StringComparison.OrdinalIgnoreCase)); } if (!dataLoadingOptions.Filter.ProlongLicense != null) { query = query.Where(w => w.ProlongExistingLicenses == dataLoadingOptions.Filter.ProlongLicense); } if (dataLoadingOptions.Filter.OrderStatus != null) { query = query.Where(x => x.OrderStatus == dataLoadingOptions.Filter.OrderStatus); } if (dataLoadingOptions.Filter.LicenseStartDateStart != null) { query = query.Where(w => w.StartDate >= dataLoadingOptions.Filter.LicenseStartDateStart); } if (dataLoadingOptions.Filter.LicenseStartDateEnd != null) { query = query.Where(x => x.StartDate <= dataLoadingOptions.Filter.LicenseStartDateEnd); } if (dataLoadingOptions.Filter.LicenseEndDateStart != null) { query = query.Where(w => w.EndDate >= dataLoadingOptions.Filter.LicenseEndDateStart); } if (dataLoadingOptions.Filter.LicenseEndDateEnd != null) { query = query.Where(x => x.EndDate <= dataLoadingOptions.Filter.LicenseEndDateEnd); } if (dataLoadingOptions.Filter.CreatedDateStart != null) { query = query.Where(w => w.CreatedAt >= dataLoadingOptions.Filter.CreatedDateStart); } if (dataLoadingOptions.Filter.CreatedDateEnd != null) { query = query.Where(x => x.CreatedAt <= dataLoadingOptions.Filter.CreatedDateEnd); } } // Search if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => x.ContactEmail.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Note.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } return(await query.CountAsync()); }
public async Task <List <LicenseOrder> > GetLicenseOrdersAsync(DataLoadingOptions <LicenseOrderFilter> dataLoadingOptions) { var query = _licenseOrderRepository .Query() .Include(x => x.HardwareVaultLicenses) .AsQueryable(); // Filter if (dataLoadingOptions.Filter != null) { if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.Note)) { query = query.Where(x => x.Note.Contains(dataLoadingOptions.Filter.Note, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrWhiteSpace(dataLoadingOptions.Filter.ContactEmail)) { query = query.Where(w => w.ContactEmail.Contains(dataLoadingOptions.Filter.ContactEmail, StringComparison.OrdinalIgnoreCase)); } if (!dataLoadingOptions.Filter.ProlongLicense != null) { query = query.Where(w => w.ProlongExistingLicenses == dataLoadingOptions.Filter.ProlongLicense); } if (dataLoadingOptions.Filter.OrderStatus != null) { query = query.Where(x => x.OrderStatus == dataLoadingOptions.Filter.OrderStatus); } if (dataLoadingOptions.Filter.LicenseStartDateStart != null) { query = query.Where(w => w.StartDate >= dataLoadingOptions.Filter.LicenseStartDateStart); } if (dataLoadingOptions.Filter.LicenseStartDateEnd != null) { query = query.Where(x => x.StartDate <= dataLoadingOptions.Filter.LicenseStartDateEnd); } if (dataLoadingOptions.Filter.LicenseEndDateStart != null) { query = query.Where(w => w.EndDate >= dataLoadingOptions.Filter.LicenseEndDateStart); } if (dataLoadingOptions.Filter.LicenseEndDateEnd != null) { query = query.Where(x => x.EndDate <= dataLoadingOptions.Filter.LicenseEndDateEnd); } if (dataLoadingOptions.Filter.CreatedDateStart != null) { query = query.Where(w => w.CreatedAt >= dataLoadingOptions.Filter.CreatedDateStart); } if (dataLoadingOptions.Filter.CreatedDateEnd != null) { query = query.Where(x => x.CreatedAt <= dataLoadingOptions.Filter.CreatedDateEnd); } } // Search if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => x.ContactEmail.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Note.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } // Sort Direction switch (dataLoadingOptions.SortedColumn) { case nameof(LicenseOrder.ContactEmail): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.ContactEmail) : query.OrderByDescending(x => x.ContactEmail); break; case nameof(LicenseOrder.Note): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Note) : query.OrderByDescending(x => x.Note); break; case nameof(LicenseOrder.ProlongExistingLicenses): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.ProlongExistingLicenses) : query.OrderByDescending(x => x.ProlongExistingLicenses); break; case nameof(LicenseOrder.StartDate): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.StartDate) : query.OrderByDescending(x => x.StartDate); break; case nameof(LicenseOrder.EndDate): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.EndDate) : query.OrderByDescending(x => x.EndDate); break; case nameof(LicenseOrder.CreatedAt): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.CreatedAt) : query.OrderByDescending(x => x.CreatedAt); break; case nameof(LicenseOrder.OrderStatus): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.OrderStatus) : query.OrderByDescending(x => x.OrderStatus); break; } return(await query.Skip(dataLoadingOptions.Skip).Take(dataLoadingOptions.Take).AsNoTracking().ToListAsync()); }
public async Task <List <Employee> > GetEmployeesAsync(DataLoadingOptions <EmployeeFilter> dataLoadingOptions) { var query = _employeeRepository .Query() .Include(x => x.Department.Company) .Include(x => x.Position) .Include(x => x.HardwareVaults) .Include(x => x.SoftwareVaults) .AsQueryable(); // Filter if (dataLoadingOptions.Filter != null) { if (dataLoadingOptions.Filter.Employee != null) { query = query.Where(x => (x.FirstName + " " + x.LastName).Contains(dataLoadingOptions.Filter.Employee, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Email != null) { query = query.Where(w => w.Email.Contains(dataLoadingOptions.Filter.Email, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.PhoneNumber != null) { query = query.Where(w => w.PhoneNumber.Contains(dataLoadingOptions.Filter.PhoneNumber, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Company != null) { query = query.Where(x => x.Department.Company.Name.Contains(dataLoadingOptions.Filter.Company, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Department != null) { query = query.Where(x => x.Department.Name.Contains(dataLoadingOptions.Filter.Department, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Position != null) { query = query.Where(x => x.Position.Name.Contains(dataLoadingOptions.Filter.Position, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.LastSeenStartDate != null) { query = query.Where(w => w.LastSeen >= dataLoadingOptions.Filter.LastSeenStartDate); } if (dataLoadingOptions.Filter.LastSeenEndDate != null) { query = query.Where(x => x.LastSeen <= dataLoadingOptions.Filter.LastSeenEndDate); } if (dataLoadingOptions.Filter.VaultsCount != null) { query = query.Where(x => (x.HardwareVaults.Count + x.SoftwareVaults.Count) == dataLoadingOptions.Filter.VaultsCount); } } // Search if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => (x.FirstName + " " + x.LastName).Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Email.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.PhoneNumber.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Department.Company.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Department.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Position.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || (x.HardwareVaults.Count + x.SoftwareVaults.Count).ToString().Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } // Sort Direction switch (dataLoadingOptions.SortedColumn) { case nameof(Employee.FullName): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.FirstName).ThenBy(x => x.LastName) : query.OrderByDescending(x => x.FirstName).ThenByDescending(x => x.LastName); break; case nameof(Employee.Email): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Email) : query.OrderByDescending(x => x.Email); break; case nameof(Employee.PhoneNumber): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.PhoneNumber) : query.OrderByDescending(x => x.PhoneNumber); break; case nameof(Employee.Department.Company): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Department.Company.Name) : query.OrderByDescending(x => x.Department.Company.Name); break; case nameof(Employee.Department): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Department.Name) : query.OrderByDescending(x => x.Department.Name); break; case nameof(Employee.Position): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Position.Name) : query.OrderByDescending(x => x.Position.Name); break; case nameof(Employee.LastSeen): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.LastSeen) : query.OrderByDescending(x => x.LastSeen); break; case nameof(Employee.VaultsCount): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.HardwareVaults.Count).ThenBy(x => x.SoftwareVaults.Count) : query.OrderByDescending(x => x.HardwareVaults.Count).ThenByDescending(x => x.SoftwareVaults.Count); break; } return(await query.Skip(dataLoadingOptions.Skip).Take(dataLoadingOptions.Take).AsNoTracking().ToListAsync()); }
public async Task <List <Account> > GetAccountsAsync(DataLoadingOptions <AccountFilter> dataLoadingOptions) { var query = _accountService .Query() .Include(x => x.Employee.HardwareVaults) .Include(x => x.SharedAccount) .Where(x => x.EmployeeId == dataLoadingOptions.EntityId && x.Deleted == false) .AsQueryable(); if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => x.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Urls.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Apps.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Login.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } switch (dataLoadingOptions.SortedColumn) { case nameof(Account.Name): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Name) : query.OrderByDescending(x => x.Name); break; case nameof(Account.Urls): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Urls) : query.OrderByDescending(x => x.Urls); break; case nameof(Account.Apps): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Apps) : query.OrderByDescending(x => x.Apps); break; case nameof(Account.Login): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Login) : query.OrderByDescending(x => x.Login); break; case nameof(Account.AccountType): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.AccountType) : query.OrderByDescending(x => x.AccountType); break; case nameof(Account.CreatedAt): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.CreatedAt) : query.OrderByDescending(x => x.CreatedAt); break; case nameof(Account.UpdatedAt): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.UpdatedAt) : query.OrderByDescending(x => x.UpdatedAt); break; case nameof(Account.PasswordUpdatedAt): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.PasswordUpdatedAt) : query.OrderByDescending(x => x.PasswordUpdatedAt); break; case nameof(Account.OtpUpdatedAt): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.OtpUpdatedAt) : query.OrderByDescending(x => x.OtpUpdatedAt); break; } return(await query.Skip(dataLoadingOptions.Skip).Take(dataLoadingOptions.Take).AsNoTracking().ToListAsync()); }
public async Task <int> GetEmployeesCountAsync(DataLoadingOptions <EmployeeFilter> dataLoadingOptions) { var query = _employeeRepository .Query() .Include(x => x.Department.Company) .Include(x => x.Position) .Include(x => x.HardwareVaults) .Include(x => x.SoftwareVaults) .AsQueryable(); // Filter if (dataLoadingOptions.Filter != null) { if (dataLoadingOptions.Filter.Employee != null) { query = query.Where(x => (x.FirstName + " " + x.LastName).Contains(dataLoadingOptions.Filter.Employee, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Email != null) { query = query.Where(w => w.Email.Contains(dataLoadingOptions.Filter.Email, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.PhoneNumber != null) { query = query.Where(w => w.PhoneNumber.Contains(dataLoadingOptions.Filter.PhoneNumber, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Company != null) { query = query.Where(x => x.Department.Company.Name.Contains(dataLoadingOptions.Filter.Company, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Department != null) { query = query.Where(x => x.Department.Name.Contains(dataLoadingOptions.Filter.Department, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Position != null) { query = query.Where(x => x.Position.Name.Contains(dataLoadingOptions.Filter.Position, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.LastSeenStartDate != null) { query = query.Where(w => w.LastSeen >= dataLoadingOptions.Filter.LastSeenStartDate); } if (dataLoadingOptions.Filter.LastSeenEndDate != null) { query = query.Where(x => x.LastSeen <= dataLoadingOptions.Filter.LastSeenEndDate); } if (dataLoadingOptions.Filter.VaultsCount != null) { query = query.Where(x => (x.HardwareVaults.Count + x.SoftwareVaults.Count) == dataLoadingOptions.Filter.VaultsCount); } } // Search if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => (x.FirstName + " " + x.LastName).Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Email.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.PhoneNumber.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Department.Company.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Department.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Position.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || (x.HardwareVaults.Count + x.SoftwareVaults.Count).ToString().Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } return(await query.CountAsync()); }
public async Task <List <SharedAccount> > GetSharedAccountsAsync(DataLoadingOptions <SharedAccountsFilter> dataLoadingOptions) { var query = _sharedAccountRepository .Query() .Where(d => d.Deleted == false); // Filter if (dataLoadingOptions.Filter != null) { if (dataLoadingOptions.Filter.Name != null) { query = query.Where(w => w.Name.Contains(dataLoadingOptions.Filter.Name, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Urls != null) { query = query.Where(w => w.Urls.Contains(dataLoadingOptions.Filter.Urls, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Apps != null) { query = query.Where(w => w.Apps.Contains(dataLoadingOptions.Filter.Apps, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Login != null) { query = query.Where(w => w.Login.Contains(dataLoadingOptions.Filter.Login, StringComparison.OrdinalIgnoreCase)); } } //Search if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => x.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Urls.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Apps.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Login.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } //Sort Direction switch (dataLoadingOptions.SortedColumn) { case nameof(SharedAccount.Name): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Name) : query.OrderByDescending(x => x.Name); break; case nameof(SharedAccount.Urls): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Urls) : query.OrderByDescending(x => x.Urls); break; case nameof(SharedAccount.Apps): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Apps) : query.OrderByDescending(x => x.Apps); break; case nameof(SharedAccount.Login): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Login) : query.OrderByDescending(x => x.Login); break; case nameof(SharedAccount.PasswordChangedAt): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.PasswordChangedAt) : query.OrderByDescending(x => x.PasswordChangedAt); break; case nameof(SharedAccount.OtpSecretChangedAt): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.OtpSecretChangedAt) : query.OrderByDescending(x => x.OtpSecretChangedAt); break; } return(await query.Skip(dataLoadingOptions.Skip).Take(dataLoadingOptions.Take).AsNoTracking().ToListAsync()); }
public async Task <List <WorkstationProximityVault> > GetProximityVaultsAsync(DataLoadingOptions <WorkstationDetailsFilter> dataLoadingOptions) { var query = _workstationProximityVaultRepository .Query() .Include(d => d.HardwareVault.Employee.Department.Company) .Where(d => d.WorkstationId == dataLoadingOptions.EntityId) .AsQueryable(); // Search if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => x.HardwareVaultId.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || (x.HardwareVault.Employee.FirstName + " " + x.HardwareVault.Employee.LastName).Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.HardwareVault.Employee.Department.Company.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.HardwareVault.Employee.Department.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } // Sort Direction switch (dataLoadingOptions.SortedColumn) { case nameof(WorkstationProximityVault.HardwareVault): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.HardwareVaultId) : query.OrderByDescending(x => x.HardwareVaultId); break; case nameof(WorkstationProximityVault.HardwareVault.Employee): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.HardwareVault.Employee.FirstName).ThenBy(x => x.HardwareVault.Employee.LastName) : query.OrderByDescending(x => x.HardwareVault.Employee.FirstName).ThenByDescending(x => x.HardwareVault.Employee.LastName); break; case nameof(WorkstationProximityVault.HardwareVault.Employee.Department.Company): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.HardwareVault.Employee.Department.Company.Name) : query.OrderByDescending(x => x.HardwareVault.Employee.Department.Company.Name); break; case nameof(WorkstationProximityVault.HardwareVault.Employee.Department): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.HardwareVault.Employee.Department.Name) : query.OrderByDescending(x => x.HardwareVault.Employee.Department.Name); break; } return(await query.Skip(dataLoadingOptions.Skip).Take(dataLoadingOptions.Take).AsNoTracking().ToListAsync()); }
public EmployeeServiceTestingOptions(int employeeCount, int crudEmployeeId, int accountsEmployeeId) { EmployeesCount = employeeCount; CrudEmployeeId = $"{crudEmployeeId}"; AccountsEmployeeId = $"{accountsEmployeeId}"; NewAccountName = "New name"; TestingEmployees = GetTestEmployees(); DataLoadingOptions = new DataLoadingOptions <EmployeeFilter>() { Skip = 0, Take = EmployeesCount, SortDirection = ListSortDirection.Ascending, SortedColumn = nameof(Employee.Id), SearchText = string.Empty, Filter = null }; PersonalAccount = new AccountAddModel() { Name = "stackoverflow", Urls = "stackoverflow.com", Login = "******", Password = "******", ConfirmPassword = "******", EmployeeId = AccountsEmployeeId }; //WorkstationAccount = new WorkstationAccount() //{ // Name = "local", // UserName = "******", // Password = "******", // ConfirmPassword = "******", // EmployeeId = AccountsEmployeeId, // Type = WorkstationAccountType.Local //}; //WorkstationDomainAccount = new WorkstationDomain() //{ // Name = "domain", // UserName = "******", // Password = "******", // ConfirmPassword = "******", // EmployeeId = AccountsEmployeeId, //}; //WorkstationMsAccount = new WorkstationAccount() //{ // Name = "ms", // UserName = "******", // Password = "******", // ConfirmPassword = "******", // EmployeeId = AccountsEmployeeId, // Type = WorkstationAccountType.Microsoft //}; //WorkstationAzureAccount = new WorkstationAccount() //{ // Name = "azure", // UserName = "******", // Password = "******", // ConfirmPassword = "******", // EmployeeId = AccountsEmployeeId, // Type = WorkstationAccountType.AzureAD //}; AccountsCount = 5; }
public async Task <List <Workstation> > GetWorkstationsAsync(DataLoadingOptions <WorkstationFilter> dataLoadingOptions) { var query = _workstationRepository .Query() .Include(x => x.Department.Company) .Include(x => x.WorkstationProximityVaults) .AsQueryable(); // Filter if (dataLoadingOptions.Filter != null) { if (dataLoadingOptions.Filter.Name != null) { query = query.Where(w => w.Name.Contains(dataLoadingOptions.Filter.Name, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Domain != null) { query = query.Where(w => w.Domain.Contains(dataLoadingOptions.Filter.Domain, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.ClientVersion != null) { query = query.Where(w => w.ClientVersion.Contains(dataLoadingOptions.Filter.ClientVersion, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Company != null) { query = query.Where(x => x.Department.Company.Name.Contains(dataLoadingOptions.Filter.Company, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.Department != null) { query = query.Where(x => x.Department.Name.Contains(dataLoadingOptions.Filter.Department, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.OS != null) { query = query.Where(w => w.OS.Contains(dataLoadingOptions.Filter.OS, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.IP != null) { query = query.Where(w => w.IP.Contains(dataLoadingOptions.Filter.IP, StringComparison.OrdinalIgnoreCase)); } if (dataLoadingOptions.Filter.LastSeenStartDate != null) { query = query.Where(w => w.LastSeen >= dataLoadingOptions.Filter.LastSeenStartDate); } if (dataLoadingOptions.Filter.LastSeenEndDate != null) { query = query.Where(x => x.LastSeen <= dataLoadingOptions.Filter.LastSeenEndDate); } if (dataLoadingOptions.Filter.RFID != null) { query = query.Where(x => x.RFID == dataLoadingOptions.Filter.RFID); } if (dataLoadingOptions.Filter.Approved != null) { query = query.Where(x => x.Approved == dataLoadingOptions.Filter.Approved); } } // Search if (!string.IsNullOrWhiteSpace(dataLoadingOptions.SearchText)) { dataLoadingOptions.SearchText = dataLoadingOptions.SearchText.Trim(); query = query.Where(x => x.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Domain.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.ClientVersion.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Department.Company.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.Department.Name.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.OS.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase) || x.IP.Contains(dataLoadingOptions.SearchText, StringComparison.OrdinalIgnoreCase)); } // Sort Direction switch (dataLoadingOptions.SortedColumn) { case nameof(Workstation.Name): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Name) : query.OrderByDescending(x => x.Name); break; case nameof(Workstation.Domain): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Domain) : query.OrderByDescending(x => x.Domain); break; case nameof(Workstation.ClientVersion): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.ClientVersion) : query.OrderByDescending(x => x.ClientVersion); break; case nameof(Workstation.Department.Company): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Department.Company.Name) : query.OrderByDescending(x => x.Department.Company.Name); break; case nameof(Workstation.Department): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Department.Name) : query.OrderByDescending(x => x.Department.Name); break; case nameof(Workstation.OS): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.OS) : query.OrderByDescending(x => x.OS); break; case nameof(Workstation.IP): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.IP) : query.OrderByDescending(x => x.IP); break; case nameof(Workstation.LastSeen): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.LastSeen) : query.OrderByDescending(x => x.LastSeen); break; case nameof(Workstation.RFID): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.RFID) : query.OrderByDescending(x => x.RFID); break; case nameof(Workstation.Approved): query = dataLoadingOptions.SortDirection == ListSortDirection.Ascending ? query.OrderBy(x => x.Approved) : query.OrderByDescending(x => x.Approved); break; } return(await query.Skip(dataLoadingOptions.Skip).Take(dataLoadingOptions.Take).AsNoTracking().ToListAsync()); }
public DataTableService() { DataLoadingOptions = new DataLoadingOptions <TFilter>(); }
public async Task <int> GetAdministratorsCountAsync(DataLoadingOptions <ApplicationUserFilter> dataLoadingOptions) { var query = AdministratorsQuery(dataLoadingOptions); return(await query.CountAsync()); }