Example #1
0
        public static Rack ToDomain(this RackDto dto)
        {
            var rack = new Rack
            {
                Id      = dto.Id,
                Shelves = new List <Shelf>()
            };

            if (dto.ShelfDtos == null)
            {
                return(rack);
            }

            foreach (var shelfDto in dto.ShelfDtos)
            {
                rack.Shelves.Add(shelfDto.ToDomain());
            }

            return(rack);
        }
        private static AssetDto AssetDto()
        {
            var datacenter = new DatacenterDto()
            {
                Id                     = Guid.NewGuid(),
                Name                   = "RTP1",
                Description            = "Research Triangle Park lab 1",
                HasNetworkManagedPower = true
            };
            var rack = new RackDto()
            {
                Id           = Guid.NewGuid(),
                RowLetter    = "A",
                RackNumber   = 1,
                Datacenter   = datacenter,
                DatacenterId = datacenter.Id
            };

            rack.Pdus = new List <PduDto>
            {
                new PduDto()
                {
                    Id       = Guid.NewGuid(),
                    Location = PduLocation.L,
                    Rack     = rack,
                    RackId   = rack.Id
                },
                new PduDto()
                {
                    Id       = Guid.NewGuid(),
                    Location = PduLocation.R,
                    Rack     = rack,
                    RackId   = rack.Id
                }
            };
            var pduPortL24 = new PduPortDto()
            {
                Id     = Guid.NewGuid(),
                Number = 24,
                Pdu    = rack.Pdus.First()
            };
            var pduPortR24 = new PduPortDto()
            {
                Id     = Guid.NewGuid(),
                Number = 24,
                Pdu    = rack.Pdus.Last()
            };

            var model = new ModelDto()
            {
                Id           = Guid.NewGuid(),
                Vendor       = "foo vendor",
                ModelNumber  = "foo number",
                Height       = 4,
                DisplayColor = "#0f0f0f"
            };
            var owner = new UserDto()
            {
                Id       = Guid.NewGuid(),
                Username = "******"
            };

            var modelNetworkPort1 = new ModelNetworkPortDto()
            {
                Id      = Guid.NewGuid(),
                Name    = "e1",
                Model   = model,
                ModelId = model.Id
            };
            var modelNetworkPort2 = new ModelNetworkPortDto()
            {
                Id      = Guid.NewGuid(),
                Name    = "e2",
                Model   = model,
                ModelId = model.Id
            };

            var assetNetworkPort1 = new AssetNetworkPortDto()
            {
                Id                 = Guid.NewGuid(),
                MacAddress         = "00:11:22:33:44:55",
                ModelNetworkPort   = modelNetworkPort1,
                ModelNetworkPortId = modelNetworkPort1.Id
            };
            var assetNetworkPort2 = new AssetNetworkPortDto()
            {
                Id                 = Guid.NewGuid(),
                MacAddress         = "aa:bb:cc:dd:ee:ff",
                ModelNetworkPort   = modelNetworkPort2,
                ModelNetworkPortId = modelNetworkPort2.Id
            };

            assetNetworkPort1.ConnectedPort   = assetNetworkPort2;
            assetNetworkPort2.ConnectedPort   = assetNetworkPort1;
            assetNetworkPort1.ConnectedPortId = assetNetworkPort2.Id;
            assetNetworkPort2.ConnectedPortId = assetNetworkPort1.Id;

            var networkPorts = new List <AssetNetworkPortDto>()
            {
                assetNetworkPort1,
                assetNetworkPort2
            };

            var powerPorts = new List <AssetPowerPortDto>()
            {
                new AssetPowerPortDto()
                {
                    Id        = Guid.NewGuid(),
                    Number    = 1,
                    PduPort   = pduPortL24,
                    PduPortId = pduPortL24.Id
                },
                new AssetPowerPortDto()
                {
                    Id        = Guid.NewGuid(),
                    Number    = 2,
                    PduPort   = pduPortR24,
                    PduPortId = pduPortR24.Id
                }
            };

            var asset = new AssetDto()
            {
                Id           = Guid.NewGuid(),
                Hostname     = "server1",
                RackPosition = 39,
                Comment      = "important commentary",
                RackId       = rack.Id,
                Rack         = rack,
                ModelId      = model.Id,
                Model        = model,
                OwnerId      = owner.Id,
                Owner        = owner,
                NetworkPorts = networkPorts,
                PowerPorts   = powerPorts,
                AssetNumber  = 100000
            };

            asset.NetworkPorts.ForEach(o =>
            {
                o.Asset   = asset;
                o.AssetId = asset.Id;
            });

            return(asset);
        }