/// <summary> /// Gets all the devices that a given stakeholder can access. /// </summary> public IEnumerable <ApplicationAccess> GetAppsAccessibleTo( Network network, Stakeholder stakeholder, Scenario scenario, FsUnitOfWork db) { // get loginn var logins = db.StakeholderLogins .LinqReader.Where(m => m.StakeholderId == stakeholder.Id && m.ScenarioId == scenario.Id); var loginIds = logins.Select(m => m.Id); // get memberships var groups = db.UserGroupMemberships.LinqReader .Where(m => m.MemberId == stakeholder.Id && m.ScenarioId == scenario.Id); var groupIds = groups.Select(m => m.GroupId); // find by user group membership var appAccessByGroupIds = _db.ApplicationAccess .LinqReader.Where(m => m.UserGroupId != null && m.ScenarioId == scenario.Id) .ToList() .Where(m => groupIds.Contains(m.UserGroupId.Value)); // find by stakeholder assignment List <ApplicationAccess> appAccess = this._db.ApplicationAccess .LinqReader.Where(m => m.StakeholderLoginId != null && m.ScenarioId == scenario.Id) .ToList() // contains can't be processed by underlying provider .Where(m => loginIds.Contains(m.StakeholderLoginId.Value)) .ToList(); return(appAccess); }
public SoftwareModelService( FsUnitOfWork db, FSSecurityContext securityContext, ReferenceProvider referenceService, BusinessUnitProvider businessUnitService, CapabilityProvider capabilityProvider, ProjectService projectService, StakeholderService stakeholderService, SoftwareModelInterfaceService softwareModelInterfaceService, ProviderLinq <SoftwareModelDependency, Guid> softwareModelDependencyProvider, IEntityIdProvider <SoftwareModel, Guid> idProvider, IMessagePipe messagePipe = null, IProvideSpecifications <SoftwareModel> specProvider = null, EntityHandler <SoftwareModel, Guid> entityHandler = null) : base(securityContext, referenceService, db, idProvider, messagePipe, specProvider, entityHandler) { Guard.ArgumentNotNull(securityContext, nameof(securityContext)); Guard.ArgumentNotNull(capabilityProvider, nameof(capabilityProvider)); Guard.ArgumentNotNull(referenceService, nameof(referenceService)); Guard.ArgumentNotNull(softwareModelInterfaceService, nameof(softwareModelInterfaceService)); _sfDb = db; _capabilitiesProvider = capabilityProvider; _businessUnitService = businessUnitService; _stakeholderService = stakeholderService; _softwareModelInterfaceService = softwareModelInterfaceService; _softwareModelDependencyService = softwareModelDependencyProvider; _projectService = projectService; }
/// <summary> /// Gets the containing design domain e.g. software -> linux. /// </summary> public DesignDomain GetContainingDomain(DesignDomain entity, FsUnitOfWork fsDb) { Guard.ArgumentNotNull(entity, nameof(entity)); if (entity.ParentId == null) { return(null); } return(Where(m => m.Id == entity.ParentId, fsDb).FirstOrDefault()); }
/// <summary> /// Gets the network that contains a given network instance. /// </summary> public Network GetContainingNetwork(Network network, FsUnitOfWork db) { Guard.ArgumentNotNull(network, nameof(network)); if (network.ParentId == null) { return(null); } return(Where(m => m.Id == network.ParentId, db).FirstOrDefault()); }
public ApplicationAccessService( FsUnitOfWork db, DeviceService deviceService, IEntityIdProvider <ApplicationAccess, Guid> keyBinder, IMessagePipe messagePipe = null, IProvideSpecifications <ApplicationAccess> specProvider = null, EntityHandler <ApplicationAccess, Guid> entityHandler = null) : base(db, keyBinder, messagePipe, specProvider, entityHandler) { _deviceService = deviceService; _db = db; }
public DeviceService( FSSecurityContext securityContext, ProjectService projectService, ReferenceProvider referenceService, FsUnitOfWork db, DeviceModelService deviceModelService, IEntityIdProvider <Device, Guid> idProvider) : base(securityContext, referenceService, db, idProvider, deviceModelService?.MessagePipe) { _sfDb = db; // null reference checked by base class _deviceModelService = deviceModelService; _projectService = projectService; }
public DesignDomainService( FsUnitOfWork db, PolicyProvider policyProvider, ReferenceProvider referencesProvider, IEntityIdProvider <DesignDomain, Guid> keyBinder, IMessagePipe messagePipe = null, IProvideSpecifications <DesignDomain> specProvider = null, EntityHandler <DesignDomain, Guid> entityHandler = null) : base(db, keyBinder, messagePipe, specProvider, entityHandler) { _referenceService = referencesProvider; _fsDb = db; _policyProvider = policyProvider; }
/// <summary> /// Creates a new instance. /// </summary> /// <param name="db">The references database.</param> /// <param name="idProvider"></param> /// <param name="messagePipe"></param> /// <param name="referencesSpec">Rules to validate a given reference entity.</param> public UserGroupService( FsUnitOfWork db, StakeholderService stakeholderService, IEntityIdProvider <UserGroup, Guid> idProvider, IMessagePipe messagePipe, IProvideSpecifications <UserGroup> referencesSpec = null, EntityHandler <UserGroup, Guid> entityHandler = null) : base(db, idProvider, messagePipe, referencesSpec, entityHandler) { Guard.ArgumentNotNull(db, nameof(db)); _stakeholderService = stakeholderService; _db = db; }
public ProjectService( ScenarioProvider scenarioProvider, BusinessUnitProvider businessUnitProvider, FsUnitOfWork db, IEntityIdProvider <Project, Guid> idProvider, IProvideSpecifications <Project> specProvider = null, EntityHandler <Project, Guid> entityHandler = null) : base(db, idProvider, scenarioProvider?.MessagePipe, specProvider, entityHandler) { _db = db; _scenarioProvider = scenarioProvider; _businessUnitProvider = businessUnitProvider; }
public PolicyService( FsUnitOfWork db, DesignDomainService designDomainService, ReferenceProvider referencesProvider, IEntityIdProvider <Policy, Guid> keyBinder, IMessagePipe messagePipe = null, IProvideSpecifications <Policy> specProvider = null, EntityHandler <Policy, Guid> entityHandler = null) : base(db, keyBinder, messagePipe, specProvider, entityHandler) { Guard.ArgumentNotNull(referencesProvider, nameof(referencesProvider)); _referenceService = referencesProvider; _fsDb = db; _designDomainService = designDomainService; }
/// <summary> /// Creates a new instance given a set of primitive services. /// </summary> public NetworkService( FSSecurityContext securityContext, ReferenceProvider referenceProvider, BusinessUnitProvider businessUnitProvider, StakeholderService stakeholdersService, ProtocolService protocolService, DeviceModelService deviceModelService, DeviceService deviceService, DeviceConnectionService deviceConnectionService, ApplicationAccessService appAccessService, ProjectService projectService, FsUnitOfWork db, IEntityIdProvider <Network, Guid> idProvider, IMessagePipe messagePipe = null, IProvideSpecifications <Network> specProvider = null, EntityHandler <Network, Guid> entityHandler = null) : base(securityContext, referenceProvider, db, idProvider, messagePipe, specProvider, entityHandler) { Guard.ArgumentNotNull(stakeholdersService, nameof(stakeholdersService)); Guard.ArgumentNotNull(protocolService, nameof(protocolService)); Guard.ArgumentNotNull(deviceService, nameof(deviceService)); Guard.ArgumentNotNull(deviceConnectionService, nameof(deviceConnectionService)); Guard.ArgumentNotNull(deviceModelService, nameof(deviceModelService)); Guard.ArgumentNotNull(projectService, nameof(projectService)); Guard.ArgumentNotNull(businessUnitProvider, nameof(businessUnitProvider)); Guard.ArgumentNotNull(appAccessService, nameof(appAccessService)); // compose device service // todo: dependency inject //setup and configure service _deviceService = deviceService; _appAccessService = appAccessService; _businessUnitService = businessUnitProvider; _projectService = projectService; _deviceModelService = deviceModelService; _protocolService = protocolService; _deviceConnectionService = deviceConnectionService; _stakeholderService = stakeholdersService; _db = db; }
//.ctor public StakeholderService( FSSecurityContext securityContext, ProjectService projectService, BusinessUnitProvider businessUnitProvider, StakeholderLoginProvider stakeholderLoginProvider, ReferenceProvider referencesProvider, FsUnitOfWork db, IMessagePipe messagePipe, IEntityIdProvider <Stakeholder, Guid> idProvider, IProvideSpecifications <Stakeholder> specProvider = null, EntityHandler <Stakeholder, Guid> entityHandler = null) : base(securityContext, referencesProvider, db, idProvider, messagePipe, specProvider, entityHandler) { Guard.ArgumentNotNull(projectService, nameof(projectService)); Guard.ArgumentNotNull(stakeholderLoginProvider, nameof(stakeholderLoginProvider)); _db = db; _projectService = projectService; _businessUnitProvider = businessUnitProvider; _stakeholderLoginProvider = stakeholderLoginProvider; }
public DeviceModelService( FsUnitOfWork db, FSSecurityContext securityContext, ReferenceProvider referenceService, CapabilityProvider capabilityService, ProjectService projectService, StakeholderService stakeholdersService, SoftwareModelService softwareModelService, DesignDomainService domainService, ScenarioProvider scenarioProvider, IEntityIdProvider <DeviceModel, Guid> idProvider) : base(securityContext, referenceService, db, idProvider, softwareModelService?.MessagePipe) { Guard.ArgumentNotNull(softwareModelService, nameof(softwareModelService)); _sfDb = db; // null reference checked by base class _softwareModelService = softwareModelService; _stakeholdersService = stakeholdersService; _projectService = projectService; _domainProvider = domainService; _scenarioProvider = scenarioProvider; _capabilityService = capabilityService; }