Exemplo n.º 1
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);
                });
            }
        }
Exemplo n.º 2
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);
                });
            }
        }
Exemplo n.º 3
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);
        }
Exemplo n.º 4
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);
            });
        }
Exemplo n.º 5
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);
        }
Exemplo n.º 6
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);
        }
Exemplo n.º 7
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);
        }
Exemplo n.º 8
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
            });
        }
Exemplo n.º 9
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);
            });
        }
Exemplo n.º 10
0
        private void Seed()
        {
            Networks.Create(new Network()
            {
                Tag      = "3G",
                ISO_Code = "ISO-1234"
            });
            Networks.Create(new Network()
            {
                Tag      = "4G",
                ISO_Code = "ISO-2345"
            });
            Networks.Create(new Network()
            {
                Tag      = "5G",
                ISO_Code = "ISO-3456"
            });

            Telefontarife.Create(new Telefontarif()
            {
                Name            = "Phone_Basic",
                AllowedNetworks = new List <Network>()
                {
                    Networks.Get("3G"),
                    Networks.Get("4G")
                }
            });
            Telefontarife.Create(new Telefontarif()
            {
                Name            = "Phone_Deluxe",
                AllowedNetworks = new List <Network>()
                {
                    Networks.Get("3G"),
                    Networks.Get("4G"),
                    Networks.Get("5G")
                }
            });
            Datentarife.Create(new Datentarif()
            {
                Name = "Data_Basic",
                MaxAllowedBandwith = 512000,
                AllowedNetworks    = new List <Network>()
                {
                    Networks.Get("3G"),
                    Networks.Get("4G"),
                }
            });
            Datentarife.Create(new Datentarif()
            {
                Name = "Data_Deluxe",
                MaxAllowedBandwith = 1024000,
                AllowedNetworks    = new List <Network>()
                {
                    Networks.Get("3G"),
                    Networks.Get("4G"),
                    Networks.Get("5G")
                }
            });

            var kunde = new Kunde()
            {
                Vorname = "Hans",
                Name    = "Hermann"
            };

            kunde.Rechnungsadresse = new Rechnungsadresse(kunde)
            {
                Straße     = "Hanshermannstraße",
                Hausnummer = "22",
                ZipCode    = 12345
            };
            kunde.Mobilfunkvertraege = new List <Mobilfunkvertrag>();
            kunde.Mobilfunkvertraege.Add(new Mobilfunkvertrag(kunde)
            {
                MonatlicherPreis = 25d,
                Rufnummer        = "12345678",
                Telefontarif     = Telefontarife.Get("Phone_Basic"),
                Datentarif       = Datentarife.Get("Data_Basic"),
            });
            kunde.Mobilfunkvertraege.Add(new Mobilfunkvertrag(kunde)
            {
                MonatlicherPreis = 45d,
                Rufnummer        = "12345679",
                Telefontarif     = Telefontarife.Get("Phone_Basic"),
                Datentarif       = Datentarife.Get("Data_Deluxe"),
            });
            Kunden.Create(kunde);

            kunde = new Kunde()
            {
                Vorname = "Manuela",
                Name    = "Mustermann",
            };
            kunde.Rechnungsadresse = new Rechnungsadresse(kunde)
            {
                Straße     = "Musterstraße",
                Hausnummer = "25",
                ZipCode    = 34567
            };
            kunde.Lieferadresse = new Lieferadresse(kunde)
            {
                Straße     = "Lieferstraße",
                Hausnummer = "33",
                ZipCode    = 12999
            };
            kunde.Mobilfunkvertraege = new List <Mobilfunkvertrag>();
            kunde.Mobilfunkvertraege.Add(new Mobilfunkvertrag(kunde)
            {
                MonatlicherPreis = 25d,
                Rufnummer        = "5554443",
                Telefontarif     = Telefontarife.Get("Phone_Deluxe"),
                Datentarif       = Datentarife.Get("Data_Deluxe"),
            });
            Kunden.Create(kunde);
        }