public static string GetCustomerPremiseMaxDataSpeed(FacilityDataRetrievalArgument args)
 {
     switch (args.GetFacilityType())
     {
         case FacilityType.CopperFacility: return args.GetCopperPlantData().MaxAttainableSpeed;
         case FacilityType.FiberFacility: return args.GetFiberPlantData().MaxAttainableSpeed;
         default: return string.Empty;
     }
 }
 public static string GetDropType(FacilityDataRetrievalArgument args)
 {
     switch (args.GetFacilityType())
     {
         case FacilityType.CopperFacility: return args.GetPairAssignment().DropType;
         case FacilityType.FiberFacility: return args.GetFiberPlantData().DropType;
         default: return string.Empty;
     }
 }
        public static string GetVpiVci(FacilityDataRetrievalArgument args)
        {
            var assignment = args.GetPairAssignment();

            switch (args.GetFacilityType())
            {
                case FacilityType.CopperFacility: return string.Format("{0}/{1}", assignment.VPI, assignment.VCI);
                case FacilityType.FiberFacility:
                {
                    var portAssignment = new OntPortAssignmentsDto().Assignment;
                    if (args.GetFiberPlantData().OntPortAssignments != null)
                    {
                        portAssignment = (args.GetFiberPlantData().OntPortAssignments.FirstOrDefault()
                                           ?? new OntPortAssignmentsDto()).Assignment;
                    }
                    return GetUnderscoreSeparatedValueByIndex(portAssignment, 1);
                }
                default: return string.Empty;
            }
        }
 public static string GetSwitchOfficeCode(FacilityDataRetrievalArgument args)
 {
     switch (args.GetFacilityType())
     {
         case FacilityType.CopperFacility: return args.GetCopperPlantData().SwitchOfficeCode;
         case FacilityType.FiberFacility: return GetUnderscoreSeparatedValueByIndex(args.GetFiberPlantData().CentralOfficeCode, 0);
         default: return string.Empty;
     }
 }
 public static string GetSwitchLrn(FacilityDataRetrievalArgument args)
 {
     switch (args.GetFacilityType())
     {
         case FacilityType.CopperFacility: return args.GetCopperPlantData().SwitchLrn;
         case FacilityType.FiberFacility: return args.GetFiberPlantData().SwitchLrn;
         default: return string.Empty;
     }
 }
 public static string GetOntVoiceSourceId(FacilityDataRetrievalArgument args)
 {
     return args.GetFiberPlantData().VoiceSourceId;
 }
 public static string GetHubF2Port(FacilityDataRetrievalArgument args)
 {
     return args.GetFiberPlantData().DistributionPort;
 }
 public static string GetFiberTerminalPortNumber(FacilityDataRetrievalArgument args)
 {
     return args.GetFiberPlantData().TerminalPort;
 }
 public static string GetFiberTerminalAddress(FacilityDataRetrievalArgument args)
 {
     return GetTerminalAddress(args.GetFiberPlantData().TerminalAddress);
 }
 public static string GetOntDataProvisioning(FacilityDataRetrievalArgument args)
 {
     if (args.GetFiberPlantData().OntPortAssignments == null)
     {
         return new OntPortAssignmentsDto().PortType;
     }
     else
     {
         return (args.GetFiberPlantData().OntPortAssignments.FirstOrDefault() ?? new OntPortAssignmentsDto()).PortType;
     }
 }
 public static string GetOltOfficeCode(FacilityDataRetrievalArgument args)
 {
     return GetUnderscoreSeparatedValueByIndex(args.GetFiberPlantData().CentralOfficeCode, 0);
 }
 public static string GetOltDestinationId(FacilityDataRetrievalArgument args)
 {
     return args.GetFiberPlantData().DestinationId;
 }
 public static string GetOltClli(FacilityDataRetrievalArgument args)
 {
     return args.GetFiberPlantData().OltClli;
 }
 public static string GetHubSplitter(FacilityDataRetrievalArgument args)
 {
     return args.GetFiberPlantData().Splitter;
 }
 public static string GetHubNumber(FacilityDataRetrievalArgument args)
 {
     return args.GetFiberPlantData().HubName;
 }
 public static string GetOntModel(FacilityDataRetrievalArgument args)
 {
     return args.GetFiberPlantData().ONTModel;
 }
 public static string GetOntSerialNumber(FacilityDataRetrievalArgument args)
 {
     return args.GetFiberPlantData().ONTSerialNumber;
 }
 public static string GetFiberTerminalDropType(FacilityDataRetrievalArgument args)
 {
     return args.GetFiberPlantData().DropType;
 }
        public static string GetOntUnitAddress(FacilityDataRetrievalArgument args)
        {
            var assignment = new OntPortAssignmentsDto().Assignment;
            if (args.GetFiberPlantData().OntPortAssignments != null)
            {
                assignment = (args.GetFiberPlantData().OntPortAssignments.FirstOrDefault() ?? new OntPortAssignmentsDto()).Assignment;
            }

            return GetUnderscoreSeparatedValueByIndex(assignment, 0);
        }
 public static string GetGwrClli(FacilityDataRetrievalArgument args)
 {
     switch (args.GetFacilityType())
     {
         case FacilityType.CopperFacility: return GetUnderscoreSeparatedValueByIndex(args.GetCopperPlantData().ServiceRouterClli, 0);
         case FacilityType.FiberFacility: return GetUnderscoreSeparatedValueByIndex(args.GetFiberPlantData().ServiceRouterClli, 0);
         default: return string.Empty;
     }
 }
 public static string GetGwrIpAddress(FacilityDataRetrievalArgument args)
 {
     switch (args.GetFacilityType())
     {
         case FacilityType.CopperFacility: return args.GetCopperPlantData().ServiceRouterIpAddress;
         case FacilityType.FiberFacility: return args.GetFiberPlantData().ServiceRouterIpAddress;
         default: return string.Empty;
     }
 }