internal static PublishedCameraData Translate(PublishedCamera camera)
        {
            PublishedCameraData data = new PublishedCameraData()
            {
                CameraId     = camera.Id,
                Destinations = new List <PublishDestinationData>()
            };

            foreach (var item in camera.Destinations)
            {
                data.Destinations.Add(new PublishDestinationData()
                {
                    Address = item.Address,
                    Port    = item.Port
                });
            }
            return(data);
        }
        public GetPublishedCamerasResponse GetPublishedCameras(GetPublishedCamerasRequest request)
        {
            try
            {
                if (request == null)
                {
                    throw new ArgumentNullException("request");
                }

                GetPublishedCamerasResponse response = new GetPublishedCamerasResponse();

                IList <PublishedCamera> list = Locator.Get <IPublishedCameraManager>().GetPublishedCameras();
                foreach (var item in list)
                {
                    PublishedCameraData camera = new PublishedCameraData()
                    {
                        Profile = new PublishedCameraProfileData()
                        {
                            CameraId              = item.Profile.CameraId,
                            CameraName            = item.Profile.CameraName,
                            CameraThumbnail       = item.Profile.CameraThumbnail,
                            DeviceServiceHostName = item.Profile.DeviceServiceHostName,
                            DeviceServiceUri      = item.Profile.DeviceServiceUri,
                        },
                        Destination = new PublishedDestinationData()
                        {
                            Port = item.Destination.Port,
                        },
                    };
                    response.PublishedCameras.Add(camera);
                }

                return(response);
            }
            catch (Exception ex)
            {
                throw new FaultException <MediaPublisherServiceFault>(new MediaPublisherServiceFault(ex.Message, ex), ex.Message);
            }
        }