Ejemplo n.º 1
0
        /// <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());
        }
Ejemplo n.º 4
0
        /// <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());
        }
Ejemplo n.º 5
0
 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;
 }
Ejemplo n.º 6
0
 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;
 }
Ejemplo n.º 8
0
        /// <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;
        }
Ejemplo n.º 9
0
        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;
        }
Ejemplo n.º 10
0
        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;
        }
Ejemplo n.º 11
0
        /// <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;
        }
Ejemplo n.º 12
0
        //.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;
        }
Ejemplo n.º 13
0
        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;
        }