Example #1
0
        public void Delete(string id)
        {
            var deviceKey = PartionKeyRowKeyPair.CreateFromIdentity(id);

            var deviceRepository  = new DeviceRepository(_tableEntityOperation);
            var networkRepository = new NetworkRepository(_tableEntityOperation);

            var deviceTableEntity = deviceRepository.Get(deviceKey);

            if (deviceTableEntity == null)
            {
                throw new NotFoundException();
            }

            var parentNetworkKey = PartionKeyRowKeyPair.CreateFromIdentity(deviceTableEntity.NetworkId);

            deviceRepository.Delete(deviceTableEntity);

            TransientErrorHandling.Run(() =>
            {
                var parentNetwork = networkRepository.Get(parentNetworkKey);
                for (var idx = 0; idx < parentNetwork.Devices.Count; idx++)
                {
                    if (parentNetwork.Devices[idx].Id == id)
                    {
                        parentNetwork.Devices.RemoveAt(idx);
                        break;
                    }
                }
                networkRepository.Update(parentNetwork);
            });
        }
Example #2
0
        public string Create(Device device)
        {
            var deviceIdentity = Identity.Next();

            var deviceKey = PartionKeyRowKeyPair.CreateFromIdentity(deviceIdentity);

            var deviceRepository  = new DeviceRepository(_tableEntityOperation);
            var networkRepository = new NetworkRepository(_tableEntityOperation);

            var deviceTableEntity = new DeviceTableEntity(deviceKey, device.Name, device.Network.Id, device.Service.Id,
                                                          device.Company.Id, device.DeviceKey, device.NumericId);

            deviceRepository.Create(deviceTableEntity);

            TransientErrorHandling.Run(() =>
            {
                var parentNetworkKey = PartionKeyRowKeyPair.CreateFromIdentity(device.Network.Id);

                var parentNetwork = networkRepository.Get(parentNetworkKey);
                parentNetwork.Devices.Add(new Small()
                {
                    Id = deviceIdentity, Name = device.Name
                });
                networkRepository.Update(parentNetwork);
            });

            return(deviceIdentity);
        }
Example #3
0
        public void Update(Network network)
        {
            var networkKey = PartionKeyRowKeyPair.CreateFromIdentity(network.Id);

            var networkRepository = new NetworkRepository(_tableEntityOperation);

            var networkTableEntity = networkRepository.Get(networkKey);

            if (networkTableEntity == null)
            {
                throw new NotFoundException();
            }

            networkTableEntity.Name = network.Name;
            networkTableEntity.TelemetryDataSinkSettings = network.TelemetryDataSinkSettings;

            networkRepository.Update(networkTableEntity);

            if (networkTableEntity.ParentNetworkId == null)
            {
                var serviceKey = PartionKeyRowKeyPair.CreateFromIdentity(networkTableEntity.ServiceId);

                TransientErrorHandling.Run(() =>
                {
                    var serviceRepository = new ServiceRepository(_tableEntityOperation);

                    var service = serviceRepository.Get(serviceKey);
                    for (var idx = 0; idx < service.Networks.Count; idx++)
                    {
                        if (service.Networks[idx].Id == network.Id)
                        {
                            service.Networks[idx].Name = network.Name;
                            break;
                        }
                    }
                    serviceRepository.Update(service);
                });
            }
            else
            {
                var parentNetworkKey = PartionKeyRowKeyPair.CreateFromIdentity(networkTableEntity.ParentNetworkId);

                TransientErrorHandling.Run(() =>
                {
                    var parentNetwork = networkRepository.Get(parentNetworkKey);
                    for (var idx = 0; idx < parentNetwork.Networks.Count; idx++)
                    {
                        if (parentNetwork.Networks[idx].Id == network.Id)
                        {
                            parentNetwork.Networks[idx].Name = network.Name;
                            break;
                        }
                    }
                    networkRepository.Update(parentNetwork);
                });
            }
        }
Example #4
0
        public void Delete(string id)
        {
            var networkKey = PartionKeyRowKeyPair.CreateFromIdentity(id);

            var networkRepository = new NetworkRepository(_tableEntityOperation);

            var networkTableEntity = networkRepository.Get(networkKey);

            if (networkTableEntity == null)
            {
                throw new NotFoundException();
            }

            var serviceKey       = PartionKeyRowKeyPair.CreateFromIdentity(networkTableEntity.ServiceId);
            var parentNetworkKey = networkTableEntity.ParentNetworkId != null
                ? PartionKeyRowKeyPair.CreateFromIdentity(networkTableEntity.ParentNetworkId)
                : null;

            networkRepository.Delete(networkTableEntity);

            if (parentNetworkKey == null)
            {
                TransientErrorHandling.Run(() =>
                {
                    var serviceRepository = new ServiceRepository(_tableEntityOperation);

                    var service = serviceRepository.Get(serviceKey);
                    for (var idx = 0; idx < service.Networks.Count; idx++)
                    {
                        if (service.Networks[idx].Id == id)
                        {
                            service.Networks.RemoveAt(idx);
                            break;
                        }
                    }
                    serviceRepository.Update(service);
                });
            }
            else
            {
                TransientErrorHandling.Run(() =>
                {
                    var parentNetwork = networkRepository.Get(parentNetworkKey);
                    for (var idx = 0; idx < parentNetwork.Networks.Count; idx++)
                    {
                        if (parentNetwork.Networks[idx].Id == id)
                        {
                            parentNetwork.Networks.RemoveAt(idx);
                            break;
                        }
                    }
                    networkRepository.Update(parentNetwork);
                });
            }
        }
Example #5
0
        public void DeviceCommandTest()
        {
            var network = new Network("N1");

            NetworkRepository.Save(network);

            var deviceClass = new DeviceClass("D1", "V1");

            DeviceClassRepository.Save(deviceClass);

            var device = new Device(Guid.NewGuid(), "key", "Test", network, deviceClass);

            DeviceRepository.Save(device);

            var command = new DeviceCommand("Test", device);

            DeviceCommandRepository.Save(command);

            // test GetByDevice
            var commands = DeviceCommandRepository.GetByDevice(device.ID, null, null);

            Assert.Greater(commands.Count, 0);

            // test Get(id)
            var command1 = DeviceCommandRepository.Get(command.ID);

            Assert.IsNotNull(command1);
            Assert.AreEqual("Test", command1.Command);
            Assert.AreEqual(device.ID, command1.DeviceID);

            // test Save
            command.Command    = "Test2";
            command.Parameters = "{}";
            command.Status     = "OK";
            command.Result     = "\"Success\"";
            command.UserID     = 1;
            DeviceCommandRepository.Save(command);
            var command2 = DeviceCommandRepository.Get(command.ID);

            Assert.AreEqual("Test2", command2.Command);
            Assert.AreEqual("{}", command2.Parameters);
            Assert.AreEqual("OK", command2.Status);
            Assert.AreEqual("\"Success\"", command2.Result);
            Assert.AreEqual(1, command2.UserID);

            // test Delete
            DeviceCommandRepository.Delete(command.ID);
            var command3 = DeviceCommandRepository.Get(command.ID);

            Assert.IsNull(command3);
        }
Example #6
0
        public void DeviceEquipmentTest()
        {
            var network = new Network("N1");

            NetworkRepository.Save(network);

            var deviceClass = new DeviceClass("D1", "V1");

            DeviceClassRepository.Save(deviceClass);

            var device = new Device(Guid.NewGuid(), "key", "Test", network, deviceClass);

            DeviceRepository.Save(device);

            var equipment = new DeviceEquipment("Test", DateTime.UtcNow, device);

            DeviceEquipmentRepository.Save(equipment);

            // test GetByDevice
            var equipments = DeviceEquipmentRepository.GetByDevice(device.ID);

            Assert.Greater(equipments.Count, 0);

            // test GetByDeviceAndCode
            var equipment0 = DeviceEquipmentRepository.GetByDeviceAndCode(device.ID, "Test");

            Assert.IsNotNull(equipment0);

            // test Get(id)
            var equipment1 = DeviceEquipmentRepository.Get(equipment.ID);

            Assert.IsNotNull(equipment1);
            Assert.AreEqual("Test", equipment1.Code);
            Assert.AreEqual(device.ID, equipment1.DeviceID);

            // test Save
            equipment.Code       = "Test2";
            equipment.Parameters = "{}";
            DeviceEquipmentRepository.Save(equipment);
            var equipment2 = DeviceEquipmentRepository.Get(equipment.ID);

            Assert.AreEqual("Test2", equipment2.Code);
            Assert.AreEqual("{}", equipment2.Parameters);

            // test Delete
            DeviceEquipmentRepository.Delete(equipment.ID);
            var equipment3 = DeviceEquipmentRepository.Get(equipment.ID);

            Assert.IsNull(equipment3);
        }
Example #7
0
        public string Create(Network network)
        {
            var networkIdentity = Identity.Next();

            var networkKey = PartionKeyRowKeyPair.CreateFromIdentity(networkIdentity);

            var networkRepository  = new NetworkRepository(_tableEntityOperation);
            var networkTableEntity = new NetworkTableEntity(
                networkKey,
                network.Name,
                network.ParentNetwork != null ? network.ParentNetwork.Id : null,
                network.Service.Id,
                network.Company.Id, network.NetworkKey);

            networkRepository.Create(networkTableEntity);

            if (network.ParentNetwork == null)
            {
                var serviceKey = PartionKeyRowKeyPair.CreateFromIdentity(network.Service.Id);

                TransientErrorHandling.Run(() =>
                {
                    var serviceRepository = new ServiceRepository(_tableEntityOperation);

                    var service = serviceRepository.Get(serviceKey);
                    service.Networks.Add(new Small()
                    {
                        Id = networkIdentity, Name = network.Name
                    });
                    serviceRepository.Update(service);
                });
            }
            else
            {
                TransientErrorHandling.Run(() =>
                {
                    var parentNetworkKey = PartionKeyRowKeyPair.CreateFromIdentity(network.ParentNetwork.Id);

                    var parentNetwork = networkRepository.Get(parentNetworkKey);
                    parentNetwork.Networks.Add(new Small()
                    {
                        Id = networkIdentity, Name = network.Name
                    });
                    networkRepository.Update(parentNetwork);
                });
            }

            return(networkIdentity);
        }
        // ReSharper disable once InconsistentNaming
        public async Task GetNetworkByNameAsync_should_return_null_if_no_network_found()
        {
            using (var context = CreateContext())
            {
                await SeedGenresAsync(context);

                var repo = new NetworkRepository(context);

                const string Name = "bbc1";

                var network = await repo.GetNetworkByNameAsync(Name);

                Assert.Null(network);
            }
        }
        // ReSharper disable once InconsistentNaming
        public async Task GetNetworkByNameAsync_should_return_network_by_name()
        {
            using (var context = CreateContext())
            {
                await SeedGenresAsync(context);

                var repo = new NetworkRepository(context);

                const string Name = "bbc";

                var network = await repo.GetNetworkByNameAsync(Name);

                Assert.Equal(Name, network.Name);
            }
        }
Example #10
0
        public IList <Small> ListDevices(string networkId)
        {
            var networkKey = PartionKeyRowKeyPair.CreateFromIdentity(networkId);

            var networkRepository = new NetworkRepository(_tableEntityOperation);

            var network = networkRepository.Get(networkKey);

            if (network == null)
            {
                throw new NotFoundException();
            }

            return(network.Devices);
        }
Example #11
0
        protected override IProNet LoadProNet(string filename)
        {
            // load your implementation here
            var fileService           = new FileService();
            var networkValidator      = new NetworkValidator();
            var networkService        = new NetworkRepository(fileService, filename, networkValidator);
            var rankService           = new RankService(networkService);
            var skillsService         = new SkillsService(networkService);
            var separationService     = new SeparationService(networkService);
            var recommendationService = new RecommendationService(networkService);
            var teamStrengthService   = new TeamStrengthService(separationService, skillsService, rankService);
            var permutationService    = new PermutationService();
            var strongestTeamService  = new StrongestTeamService(networkService, teamStrengthService, permutationService);

            return(new ProNet(rankService, skillsService, separationService, recommendationService, teamStrengthService, strongestTeamService));
        }
Example #12
0
        public void DeviceNotificationTest()
        {
            var network = new Network("N1");

            NetworkRepository.Save(network);

            var deviceClass = new DeviceClass("D1", "V1");

            DeviceClassRepository.Save(deviceClass);

            var device = new Device(Guid.NewGuid(), "key", "Test", network, deviceClass);

            DeviceRepository.Save(device);

            var notification = new DeviceNotification("Test", device);

            DeviceNotificationRepository.Save(notification);

            // test GetByDevice
            var notifications = DeviceNotificationRepository.GetByDevice(device.ID, null, null);

            Assert.Greater(notifications.Count, 0);

            // test Get(id)
            var notification1 = DeviceNotificationRepository.Get(notification.ID);

            Assert.IsNotNull(notification1);
            Assert.AreEqual("Test", notification1.Notification);
            Assert.AreEqual(device.ID, notification1.DeviceID);

            // test Save
            notification.Notification = "Test2";
            notification.Parameters   = "{}";
            DeviceNotificationRepository.Save(notification);
            var notification2 = DeviceNotificationRepository.Get(notification.ID);

            Assert.AreEqual("Test2", notification2.Notification);
            Assert.AreEqual("{}", notification2.Parameters);

            // test Delete
            DeviceNotificationRepository.Delete(notification.ID);
            var notification3 = DeviceNotificationRepository.Get(notification.ID);

            Assert.IsNull(notification3);
        }
Example #13
0
        public void UserNetworkTest()
        {
            var user = new User("Test", "TestPass", (int)UserRole.Administrator, (int)UserStatus.Active);

            UserRepository.Save(user);

            var network = new Network("Test");

            NetworkRepository.Save(network);

            var userNetwork = new UserNetwork(user, network);

            UserNetworkRepository.Save(userNetwork);

            // test GetByUser
            var userNetworks1 = UserNetworkRepository.GetByUser(user.ID);

            Assert.Greater(userNetworks1.Count, 0);

            // test GetByNetwork
            var userNetworks2 = UserNetworkRepository.GetByNetwork(network.ID);

            Assert.Greater(userNetworks2.Count, 0);

            // test Get(id)
            var userNetwork1 = UserNetworkRepository.Get(userNetwork.ID);

            Assert.IsNotNull(userNetwork1);
            Assert.AreEqual(user.ID, userNetwork1.UserID);
            Assert.AreEqual(network.ID, userNetwork1.NetworkID);
            Assert.IsNotNull(userNetwork1.User);
            Assert.IsNotNull(userNetwork1.Network);

            // test Get(userId, networkId)
            var userNetwork2 = UserNetworkRepository.Get(user.ID, network.ID);

            Assert.IsNotNull(userNetwork2);

            // test Delete
            UserNetworkRepository.Delete(userNetwork.ID);
            var userNetwork3 = UserNetworkRepository.Get(userNetwork.ID);

            Assert.IsNull(userNetwork3);
        }
Example #14
0
        public DataManager()
        {
            //init db
            bool needSeeding = false;
            var  dbcontext   = new EntityFrameworkContext();

            needSeeding = dbcontext.Database.CreateIfNotExists();

            //init repositories
            Kunden        = new KundenRepository(dbcontext);
            Networks      = new NetworkRepository(dbcontext);
            Telefontarife = new TelefontarifeRepository(dbcontext);
            Datentarife   = new DatentarifRepository(dbcontext);

            //seed if necessary
            if (needSeeding)
            {
                this.Seed();
                Console.WriteLine("database seeded");
            }
        }
Example #15
0
        public void NetworkTest()
        {
            var network = new Network("Test")
            {
                Key = "Key"
            };

            NetworkRepository.Save(network);

            // test GetAll
            var networks = NetworkRepository.GetAll();

            Assert.Greater(networks.Count, 0);

            // test Get(id)
            var network1 = NetworkRepository.Get(network.ID);

            Assert.IsNotNull(network1);
            Assert.AreEqual("Test", network1.Name);

            // test Get(name)
            var network2 = NetworkRepository.Get("Test");

            Assert.IsNotNull(network2);

            // test Save
            network.Name        = "Test2";
            network.Description = "Desc";
            NetworkRepository.Save(network);
            var network4 = NetworkRepository.Get(network.ID);

            Assert.AreEqual("Test2", network4.Name);
            Assert.AreEqual("Desc", network4.Description);

            // test Delete
            NetworkRepository.Delete(network.ID);
            var network5 = NetworkRepository.Get(network.ID);

            Assert.IsNull(network5);
        }
Example #16
0
        public Network Get(string id)
        {
            var networkKey = PartionKeyRowKeyPair.CreateFromIdentity(id);

            var networkRepository = new NetworkRepository(_tableEntityOperation);

            var networkTableEntity = networkRepository.Get(networkKey);

            if (networkTableEntity == null)
            {
                throw new NotFoundException();
            }

            return(new Network
            {
                Id = id,
                Name = networkTableEntity.Name,
                ParentNetwork =
                    networkTableEntity.ParentNetworkId != null
                        ? new Network()
                {
                    Id = networkTableEntity.ParentNetworkId
                }
                        : null,
                ParentNetworkId = networkTableEntity.ParentNetworkId,
                Service = new Service()
                {
                    Id = networkTableEntity.ServiceId
                },
                ServiceId = networkTableEntity.ServiceId,
                Company = new Company()
                {
                    Id = networkTableEntity.CompanyId
                },
                TelemetryDataSinkSettings = networkTableEntity.TelemetryDataSinkSettings,
                NetworkKey = networkTableEntity.NetworkKey
            });
        }
Example #17
0
        public void Update(Device device)
        {
            var deviceKey = PartionKeyRowKeyPair.CreateFromIdentity(device.Id);

            var deviceRepository  = new DeviceRepository(_tableEntityOperation);
            var networkRepository = new NetworkRepository(_tableEntityOperation);

            var deviceTableEntity = deviceRepository.Get(deviceKey);

            if (deviceTableEntity == null)
            {
                throw new NotFoundException();
            }

            deviceTableEntity.Name      = device.Name;
            deviceTableEntity.DeviceKey = device.DeviceKey;
            deviceTableEntity.NumericId = device.NumericId;

            deviceRepository.Update(deviceTableEntity);

            TransientErrorHandling.Run(() =>
            {
                var parentNetworkKey = PartionKeyRowKeyPair.CreateFromIdentity(deviceTableEntity.NetworkId);

                var parentNetwork = networkRepository.Get(parentNetworkKey);
                for (var idx = 0; idx < parentNetwork.Devices.Count; idx++)
                {
                    if (parentNetwork.Devices[idx].Id == device.Id)
                    {
                        parentNetwork.Devices[idx].Name = device.Name;
                        break;
                    }
                }
                networkRepository.Update(parentNetwork);
            });
        }
Example #18
0
        public UnitOfWork(string connection, IContextService instance)
        {
            _logger = LoggerFactory.Create(opt =>
            {
                opt.AddFilter("Microsoft", LogLevel.Warning)
                .AddFilter("Microsoft.EntityFrameworkCore", LogLevel.Information)
                .AddFilter("System", LogLevel.Warning)
                .AddConsole();
            });

            switch (instance.InstanceType)
            {
            case InstanceContext.DeployedOrLocal:
            {
#if !RELEASE
                var builder = new DbContextOptionsBuilder <AuroraEntities>()
                              .UseSqlServer(connection);
                //.UseLoggerFactory(_logger)
                //.EnableSensitiveDataLogging();
#elif RELEASE
                var builder = new DbContextOptionsBuilder <AuroraEntities>()
                              .UseSqlServer(connection);
#endif
                _context = new AuroraEntities(builder.Options);
            }
            break;

            case InstanceContext.End2EndTest:
            case InstanceContext.IntegrationTest:
            case InstanceContext.UnitTest:
            {
#if !RELEASE
                var builder = new DbContextOptionsBuilder <AuroraEntities>()
                              .UseInMemoryDatabase(":InMemory:")
                              .UseLoggerFactory(_logger)
                              .EnableSensitiveDataLogging();
#elif RELEASE
                var builder = new DbContextOptionsBuilder <AuroraEntities>()
                              .UseInMemoryDatabase(":InMemory:");
#endif
                _context = new AuroraEntities(builder.Options);
            }
            break;

            default:
                throw new NotImplementedException();
            }

            _context.ChangeTracker.LazyLoadingEnabled  = false;
            _context.ChangeTracker.CascadeDeleteTiming = CascadeTiming.Immediate;

            InstanceType = instance.InstanceType;

            Credentials = new CredentialRepository(_context);
            Networks    = new NetworkRepository(_context);
            PrivateKeys = new PrivateKeyRepository(_context);
            PublicKeys  = new PublicKeyRepository(_context);
            Settings    = new SettingRepository(_context);
            UserFiles   = new UserFileRepository(_context);
            UserFolders = new UserFolderRepository(_context);
            UserMounts  = new UserMountRepository(_context);
            Users       = new UserRepository(_context);
        }
Example #19
0
 public NetworkController(NetworkRepository repo)
 {
     _repo = repo;
 }
Example #20
0
        public void DeviceTest()
        {
            var network = new Network("N1");

            NetworkRepository.Save(network);

            var deviceClass = new DeviceClass("D1", "V1");

            DeviceClassRepository.Save(deviceClass);

            var device = new Device(Guid.NewGuid(), "key", "Test", network, deviceClass);

            DeviceRepository.Save(device);

            // test GetByNetwork
            var devices = DeviceRepository.GetByNetwork(network.ID);

            Assert.Greater(devices.Count, 0);

            // test Get(id)
            var device1 = DeviceRepository.Get(device.ID);

            Assert.IsNotNull(device1);
            Assert.AreEqual(device.GUID, device1.GUID);
            Assert.AreEqual("Test", device1.Name);
            Assert.AreEqual(network.ID, device1.NetworkID);
            Assert.AreEqual(deviceClass.ID, device1.DeviceClassID);
            Assert.IsNotNull(device1.Network);
            Assert.IsNotNull(device1.DeviceClass);

            // test Get(guid)
            var device2 = DeviceRepository.Get(device.GUID);

            Assert.IsNotNull(device2);
            Assert.AreEqual(device.GUID, device2.GUID);
            Assert.AreEqual("Test", device2.Name);
            Assert.AreEqual(network.ID, device2.NetworkID);
            Assert.AreEqual(deviceClass.ID, device2.DeviceClassID);
            Assert.IsNotNull(device2.Network);
            Assert.IsNotNull(device2.DeviceClass);

            // test Save
            device.Name      = "Test2";
            device.Status    = "Status";
            device.Data      = "{}";
            device.Network   = null;
            device.NetworkID = null;
            DeviceRepository.Save(device);
            var device3 = DeviceRepository.Get(device.ID);

            Assert.AreEqual("Test2", device3.Name);
            Assert.AreEqual("Status", device3.Status);
            Assert.AreEqual("{}", device3.Data);
            Assert.IsNull(device3.Network);
            Assert.IsNull(device3.NetworkID);

            // test update relationship
            var deviceClass2 = new DeviceClass("D2", "V2");

            DeviceClassRepository.Save(deviceClass2);
            device.DeviceClass = deviceClass2;
            DeviceRepository.Save(device);
            var device4 = DeviceRepository.Get(device.ID);

            Assert.AreEqual(deviceClass2.ID, device4.DeviceClassID);
            Assert.IsNotNull(device4.DeviceClass);

            // test Delete
            DeviceRepository.Delete(device.ID);
            var device5 = DeviceRepository.Get(device.ID);

            Assert.IsNull(device5);
        }