public static bool TryFindCompatibleProfile(EndPointSettings client, List <string> resolvedList, ref string DlnaProfile, ref string Mime) { foreach (MediaMimeMapping map in client.Profile.MediaMimeMap.Values) { if (resolvedList.Contains(map.MappedMediaFormat) == true) { DlnaProfile = map.MappedMediaFormat; Mime = map.MIME; return(true); } } foreach (MediaMimeMapping map in client.Profile.MediaMimeMap.Values) { if (string.IsNullOrEmpty(map.MIMEName) == false) { List <string> renamedMaps = new List <string>(); renamedMaps.AddRange(map.MIMEName.Split(',')); foreach (string submap in renamedMaps) { if (resolvedList.Contains(submap) == true) { DlnaProfile = map.MappedMediaFormat; Mime = map.MIME; return(true); } } } } if (resolvedList.Count > 0) { DlnaProfile = resolvedList[0]; return(true); } return(false); }
public MediaLibrarySubtitle(MediaItem item, EndPointSettings client) { MediaItemId = item.MediaItemId; Client = client; MimeType = null; SubtitleType = null; }
public MediaLibraryAudioBroadcastItem(string title, int channelNr, EndPointSettings client) : base(DlnaResourceAccessUtils.RADIO_CHANNEL_RESOURCE + channelNr, client) { Id = Key; Title = title; ChannelName = title; ChannelNr = channelNr; Date = DateTime.Now.ToString("yyyy-MM-dd"); AlbumArtUrls = new List <IDirectoryAlbumArt>(); var albumArt = new MediaLibraryAlbumArt(Guid.Empty, client); albumArt.Initialise(title, false); AlbumArtUrls.Add(albumArt); if (client.Profile.Settings.Thumbnails.Delivery == ThumbnailDelivery.All || client.Profile.Settings.Thumbnails.Delivery == ThumbnailDelivery.Icon) { Icon = albumArt.Uri; } if (client.Profile.Settings.Thumbnails.Delivery == ThumbnailDelivery.All || client.Profile.Settings.Thumbnails.Delivery == ThumbnailDelivery.Resource) { var albumResource = new MediaLibraryAlbumArtResource(albumArt); albumResource.Initialise(); Resources.Add(albumResource); } if (client.Profile.Settings.Thumbnails.Delivery != ThumbnailDelivery.All && client.Profile.Settings.Thumbnails.Delivery != ThumbnailDelivery.AlbumArt) { AlbumArtUrls.Clear(); } var resource = new MediaLibraryLiveResource(Key, channelNr, client); resource.Initialise(); Resources.Add(resource); }
public void TestAlbumItem() { EndPointSettings settings = new EndPointSettings { PreferredSubtitleLanguages = "EN", PreferredAudioLanguages = "EN", DefaultSubtitleEncodings = "" }; IList <IDirectoryObject> objects = new List <IDirectoryObject>(); Guid albumId = new Guid("11111111-aaaa-aaaa-aaaa-100000000001"); IDictionary <Guid, IList <MediaItemAspect> > aspects = new Dictionary <Guid, IList <MediaItemAspect> >(); SingleMediaItemAspect aspect = new SingleMediaItemAspect(MediaAspect.Metadata); aspect.SetAttribute(MediaAspect.ATTR_TITLE, "The Album"); MediaItemAspect.SetAspect(aspects, aspect); MediaItem album = new MediaItem(albumId, aspects); MediaLibraryAlbumItem item = new TestMediaLibraryAlbumItem(album, settings); item.Initialise(); objects.Add(item); GenericDidlMessageBuilder builder = new GenericDidlMessageBuilder(); builder.BuildAll("*", objects); string xml = builder.ToString(); Console.WriteLine("XML: {0}", xml); }
public MediaLibraryImageItem(MediaItem item, EndPointSettings client) : base(item, client) { Publisher = new List <string>(); Rights = new List <string>(); object oValue = MediaItemAspect.GetAspect(item.Aspects, MediaAspect.Metadata).GetAttributeValue(MediaAspect.ATTR_RECORDINGTIME); if (oValue != null) { Date = Convert.ToDateTime(oValue).Date.ToString("yyyy-MM-dd"); } //Support alternative ways to get thumbnail if (AlbumArtUrls.Count > 0) { if (client.Profile.Settings.Thumbnails.Delivery == ThumbnailDelivery.All || client.Profile.Settings.Thumbnails.Delivery == ThumbnailDelivery.Resource) { var albumResource = new MediaLibraryAlbumArtResource((MediaLibraryAlbumArt)AlbumArtUrls[0]); albumResource.Initialise(); Resources.Add(albumResource); } if (client.Profile.Settings.Thumbnails.Delivery != ThumbnailDelivery.All && client.Profile.Settings.Thumbnails.Delivery != ThumbnailDelivery.AlbumArt) { AlbumArtUrls.Clear(); } } var resource = new MediaLibraryResource(client); resource.Initialise(item); Resources.Add(resource); }
private static void CheckUserLogin(string objectId, EndPointSettings deviceClient) { if (IsUserContainer(objectId)) { //Login user deviceClient.UserId = Guid.TryParse(objectId.Substring(MediaLibraryHelper.CONTAINER_USERS_KEY.Length + 1), out Guid g) ? g : (Guid?)null; deviceClient.InitializeUserAsync().Wait(); } else if (!deviceClient.UserId.HasValue && deviceClient.RootContainer.Children.Any(c => IsUserContainer(c?.Key))) { //User login is required so find user container var o = deviceClient.RootContainer.FindObject(objectId); while (o != null) { o = o?.Parent; if (o != null && IsUserContainer(o.Key)) { //Login user deviceClient.UserId = Guid.TryParse(o.Key.Substring(MediaLibraryHelper.CONTAINER_USERS_KEY.Length + 1), out Guid g) ? g : (Guid?)null; deviceClient.InitializeUserAsync().Wait(); break; } } } }
/// <summary> /// Stops the streaming /// </summary> internal static async Task StopStreamingAsync(EndPointSettings client) { if (STREAM_ITEMS.TryRemove(client.ClientId, out var currentStreamItem)) { await currentStreamItem.BusyLock.WaitAsync(); try { currentStreamItem.TranscoderObject?.StopStreaming(); if (currentStreamItem.StreamContext is TranscodeContext context) { context.UpdateStreamUse(false); } else if (currentStreamItem.StreamContext != null) { currentStreamItem.StreamContext.Dispose(); currentStreamItem.StreamContext = null; } } finally { currentStreamItem.BusyLock.Release(); } } }
private static void GenerateDescriptionFunc(IOwinRequest request, XmlWriter writer, DvDevice device, GenerationPosition pos, EndpointConfiguration config, CultureInfo culture) { if (request == null) return; EndPointSettings client = ProfileManager.DetectProfileAsync(request).Result; if (client == null || client.Profile == null) { return; } if (pos == GenerationPosition.DeviceStart) { writer.WriteElementString("dlna", "X_DLNACAP", "urn:schemas-dlna-org:device-1-0", ""); writer.WriteElementString("dlna", "X_DLNADOC", "urn:schemas-dlna-org:device-1-0", "DMS-1.50"); writer.WriteElementString("dlna", "X_DLNADOC", "urn:schemas-dlna-org:device-1-0", "M-DMS-1.50"); if (string.IsNullOrEmpty(client.Profile.UpnpDevice.AdditionalElements) == false) { writer.WriteRaw(client.Profile.UpnpDevice.AdditionalElements); } } else if (pos == GenerationPosition.RootDeviceStart) { writer.WriteAttributeString("xmlns", "dlna", null, "urn:schemas-dlna-org:device-1-0"); writer.WriteAttributeString("xmlns", "sec", null, "http://www.sec.co.kr/dlna"); } }
public DlnaMediaItem(EndPointSettings client) { Client = client; LastUpdated = DateTime.Now; TranscodingParameter = null; IsSegmented = false; }
public QuotesServerApplication(EndPointSettings endPoint, IQuotesService quotesService) { _endPointSettings = endPoint ?? throw new ArgumentNullException(nameof(endPoint)); _quotesService = quotesService ?? throw new ArgumentNullException(nameof(quotesService)); }
public MediaLibraryShareContainer(string id, EndPointSettings client, params string[] categories) : base(id, client) { if (categories != null) { CategoryFilter = new List <string>(categories); } }
protected BasicObject(string key, EndPointSettings client, bool placeholder = false) { Resources = new List <IDirectoryResource>(); Key = key; Parent = null; Client = client; Placeholder = placeholder; }
public BasicContainer(string id, EndPointSettings client) : base(id, client) { Restricted = true; Searchable = false; SearchClass = new List <IDirectorySearchClass>(); CreateClass = new List <IDirectoryCreateClass>(); WriteStatus = "NOT_WRITABLE"; }
public static string GetChannelLogoBaseURL(string channelName, EndPointSettings client, bool isTV) { string mediaType = isTV ? FanArtMediaTypes.ChannelTv : FanArtMediaTypes.ChannelRadio; string url = string.Format("{0}/FanartService?mediatype={1}&fanarttype={2}l&name={3}&width={4}&height={5}", GetBaseResourceURL(), mediaType, FanArtTypes.Thumbnail, WebUtility.UrlEncode(channelName), client.Profile?.Settings.Thumbnails.MaxWidth ?? DEFAULT_IMAGE_SIZE, client.Profile?.Settings.Thumbnails.MaxHeight ?? DEFAULT_IMAGE_SIZE); return(url); }
/// <summary> /// Returns a stream item based on the given client /// </summary> /// <returns>Returns the requested stream item otherwise null</returns> internal static StreamItem GetExistingStreamItem(EndPointSettings client) { if (STREAM_ITEMS.TryGetValue(client.ClientId, out var currentStreamItem)) { return(currentStreamItem); } return(null); }
public static string GetThumbnailBaseURL(Guid mediaItemId, EndPointSettings client, string fanartType = null) { string mediaType = fanartType ?? FanArtMediaTypes.Undefined; // Using MP2's FanArtService provides access to all kind of resources, thumbnails from ML and also local fanart from filesystem string url = string.Format("{0}/FanartService?mediatype={1}&fanarttype={2}&name={3}&width={4}&height={5}", GetBaseResourceURL(), mediaType, FanArtTypes.Thumbnail, mediaItemId, client.Profile?.Settings.Thumbnails.MaxWidth ?? DEFAULT_IMAGE_SIZE, client.Profile?.Settings.Thumbnails.MaxHeight ?? DEFAULT_IMAGE_SIZE); return(url); }
public void TestCtor2() { var endPointSettings = new EndPointSettings { MaxConcurrentCalls = 42 }; using (var server = CreateServer(endPointSettings: endPointSettings)) { server.EndPointSettings.Should().NotBeNull(); server.EndPointSettings.MaxConcurrentCalls.Should().Be(42); } }
internal override IRemotingEndPoint CreateServer(string name = null, IAuthenticator clientAuthenticator = null, IAuthenticator serverAuthenticator = null, LatencySettings latencySettings = null, EndPointSettings endPointSettings = null, HeartbeatSettings heartbeatSettings = null, NetworkServiceDiscoverer networkServiceDiscoverer = null) { return(new NamedPipeRemotingEndPointServer(name, clientAuthenticator, serverAuthenticator, heartbeatSettings: heartbeatSettings, latencySettings: latencySettings)); }
/// <summary> /// Does the preparation to start a transcode stream /// </summary> internal static async Task <TranscodeContext> StartTranscodeStreamingAsync(EndPointSettings client, double startTime, double lengthTime, StreamItem newStreamItem) { if (STREAM_ITEMS.TryAdd(client.ClientId, newStreamItem)) { await newStreamItem.BusyLock.WaitAsync(); try { if (newStreamItem?.TranscoderObject?.TranscodingParameter == null) { STREAM_ITEMS.TryRemove(client.ClientId, out _); return(null); } if (!newStreamItem.TranscoderObject.StartTrancoding()) { Logger.Debug("StreamControl: Transcoding busy for mediaitem {0}", newStreamItem.RequestedMediaItem); return(null); } if (newStreamItem.IsLive) { newStreamItem.StreamContext = await MediaConverter.GetLiveStreamAsync(client.ClientId.ToString(), newStreamItem.TranscoderObject.TranscodingParameter, newStreamItem.LiveChannelId, true); } else { newStreamItem.StreamContext = await MediaConverter.GetMediaStreamAsync(client.ClientId.ToString(), newStreamItem.TranscoderObject.TranscodingParameter, startTime, lengthTime, true); } if (newStreamItem.StreamContext is TranscodeContext context) { context.UpdateStreamUse(true); return(context); } else if (newStreamItem.StreamContext != null) { //We want a transcoded stream newStreamItem.StreamContext.Dispose(); newStreamItem.StreamContext = null; } return(null); } finally { newStreamItem.BusyLock.Release(); } } return(null); }
public MediaLibraryAlbumItem(MediaItem item, EndPointSettings client) : base(item, NECESSARY_MUSIC_MIA_TYPE_IDS, OPTIONAL_MUSIC_MIA_TYPE_IDS, new RelationshipFilter(AudioAspect.ROLE_TRACK, AudioAlbumAspect.ROLE_ALBUM, item.MediaItemId), client) { Genre = new List <string>(); Artist = new List <string>(); Contributor = new List <string>(); if (MediaItemAspect.TryGetAspect(item.Aspects, AudioAlbumAspect.Metadata, out SingleMediaItemAspect albumAspect)) { //Title = albumAspect.GetAttributeValue<string>(AudioAlbumAspect.ATTR_ALBUM); if (Client.Profile.Settings.Metadata.Delivery == MetadataDelivery.All) { IList <MultipleMediaItemAspect> genreAspects; if (MediaItemAspect.TryGetAspects(item.Aspects, GenreAspect.Metadata, out genreAspects)) { CollectionUtils.AddAll(Genre, genreAspects.Select(g => g.GetAttributeValue <string>(GenreAspect.ATTR_GENRE))); } var artistObj = albumAspect.GetCollectionAttribute <object>(AudioAlbumAspect.ATTR_ARTISTS); if (artistObj != null) { CollectionUtils.AddAll(Artist, artistObj.Cast <string>()); } Description = albumAspect.GetAttributeValue <string>(AudioAlbumAspect.ATTR_DESCRIPTION); LongDescription = Description; } } //Support alternative ways to get album art var albumArt = new MediaLibraryAlbumArt(item, Client); if (albumArt != null) { albumArt.Initialise(); if (Client.Profile.Settings.Thumbnails.Delivery == ThumbnailDelivery.All || Client.Profile.Settings.Thumbnails.Delivery == ThumbnailDelivery.Resource) { var albumResource = new MediaLibraryAlbumArtResource(albumArt); albumResource.Initialise(); Resources.Add(albumResource); } if (Client.Profile.Settings.Thumbnails.Delivery == ThumbnailDelivery.All || Client.Profile.Settings.Thumbnails.Delivery == ThumbnailDelivery.AlbumArt) { AlbumArtUrl = albumArt.Uri; } } }
internal override IRemotingEndPoint CreateServer(string name = null, IAuthenticator clientAuthenticator = null, IAuthenticator serverAuthenticator = null, LatencySettings latencySettings = null, EndPointSettings endPointSettings = null, HeartbeatSettings heartbeatSettings = null, NetworkServiceDiscoverer networkServiceDiscoverer = null) { return(new SocketEndPoint(EndPointType.Server, name, clientAuthenticator, serverAuthenticator, networkServiceDiscoverer: null, latencySettings: latencySettings, endPointSettings: endPointSettings, heartbeatSettings: heartbeatSettings)); }
public MediaLibraryItem(string key, MediaItem item, EndPointSettings client) : base(key, client) { MediaItemId = item.MediaItemId; SingleMediaItemAspect aspect; if (MediaItemAspect.TryGetAspect(item.Aspects, MediaAspect.Metadata, out aspect)) { Title = aspect.GetAttributeValue <string>(MediaAspect.ATTR_TITLE); } AlbumArtUrls = new List <IDirectoryAlbumArt>(); var albumArt = new MediaLibraryAlbumArt(item, client); albumArt.Initialise(); AlbumArtUrls.Add(albumArt); }
public static string GetSubtitleBaseURL(Guid mediaItemId, EndPointSettings client, out string subMime, out string subExtension) { SubtitleCodec codec = SubtitleCodec.Unknown; subMime = null; subExtension = null; if (UseSoftCodedSubtitle(client, out codec, out subMime) == true) { subExtension = SubtitleHelper.GetSubtitleExtension(codec); string subType = codec.ToString(); return(string.Format(GetBaseResourceURL() + GetResourceUrl(mediaItemId.ToString(), client.ClientId) + "&aspect=SUBTITLE&type={0}&file=subtitle.{1}", subType, subExtension)); } return(null); }
/// <summary> /// Initializes a new silo server. /// </summary> /// <param name="args">The command line arguments given to the Main() method</param> /// <param name="customTypeResolver">The type resolver, if any, responsible for resolving Type objects by their assembly qualified name</param> /// <param name="codeGenerator">The code generator to create proxy and servant types</param> /// <param name="heartbeatSettings">The settings for heartbeat mechanism, if none are specified, then default settings are used</param> /// <param name="latencySettings">The settings for latency measurements, if none are specified, then default settings are used</param> /// <param name="endPointSettings">The settings for the endpoint itself (max. number of concurrent calls, etc...)</param> /// <param name="endPointName">The name of this silo, used for debugging (and logging)</param> public OutOfProcessSiloServer(string[] args, ITypeResolver customTypeResolver = null, ICodeGenerator codeGenerator = null, HeartbeatSettings heartbeatSettings = null, LatencySettings latencySettings = null, EndPointSettings endPointSettings = null, string endPointName = null) { Log.InfoFormat("Silo Server starting, args ({0}): \"{1}\", {2} custom type resolver", args.Length, string.Join(" ", args), customTypeResolver != null ? "with" : "without" ); int pid; if (args.Length >= 1 && int.TryParse(args[0], out pid)) { _parentProcessId = pid; _parentProcess = Process.GetProcessById(pid); _parentProcess.EnableRaisingEvents = true; _parentProcess.Exited += ParentProcessOnExited; } if (Log.IsDebugEnabled) { Log.DebugFormat("Args.Length: {0}", args.Length); } _registry = new DefaultImplementationRegistry(); _waitHandle = new ManualResetEvent(false); _customTypeResolver = customTypeResolver; _endPoint = new SocketEndPoint(EndPointType.Server, endPointName, codeGenerator: codeGenerator, heartbeatSettings: heartbeatSettings, latencySettings: latencySettings, endPointSettings: endPointSettings ); _endPoint.OnConnected += EndPointOnOnConnected; _endPoint.OnDisconnected += EndPointOnOnDisconnected; _endPoint.OnFailure += EndPointOnOnFailure; }
public static bool UseSoftCodedSubtitle(EndPointSettings client, out SubtitleCodec targetCodec, out string targetMime) { targetCodec = SubtitleCodec.Unknown; targetMime = "text/plain"; if (client.Profile.MediaTranscoding.SubtitleSettings.SubtitleMode == SubtitleSupport.SoftCoded) { targetCodec = client.Profile.MediaTranscoding.SubtitleSettings.SubtitlesSupported[0].Format; if (string.IsNullOrEmpty(client.Profile.MediaTranscoding.SubtitleSettings.SubtitlesSupported[0].Mime) == false) { targetMime = client.Profile.MediaTranscoding.SubtitleSettings.SubtitlesSupported[0].Mime; } else { targetMime = SubtitleHelper.GetSubtitleMime(targetCodec); } return(true); } return(false); }
public MediaLibraryMusicTrack(MediaItem item, EndPointSettings client) : base(item, client) { Artist = new List <string>(); Album = new List <string>(); Playlist = new List <string>(); Contributor = new List <string>(); if (MediaItemAspect.TryGetAspect(item.Aspects, AudioAspect.Metadata, out SingleMediaItemAspect audioAspect)) { var album = audioAspect.GetAttributeValue(AudioAspect.ATTR_ALBUM); if (album != null) { Album.Add(album.ToString()); } var artists = audioAspect.GetCollectionAttribute(AudioAspect.ATTR_ARTISTS); if (artists != null) { Artist = new List <string>(artists.Cast <string>()); } var composers = audioAspect.GetCollectionAttribute(AudioAspect.ATTR_COMPOSERS); if (composers != null) { Contributor = new List <string>(composers.Cast <string>()); } var originalTrack = audioAspect.GetAttributeValue(AudioAspect.ATTR_TRACK); if (originalTrack != null) { OriginalTrackNumber = Convert.ToInt32(originalTrack.ToString()); } } object oValue = item[MediaAspect.ASPECT_ID][0].GetAttributeValue(MediaAspect.ATTR_RECORDINGTIME); if (oValue != null) { Date = Convert.ToDateTime(oValue).Date.ToString("yyyy-MM-dd"); } }
public MediaLibraryAudioItem(MediaItem item, EndPointSettings client) : base(item, client) { Genre = new List <string>(); Publisher = new List <string>(); Rights = new List <string>(); if (MediaItemAspect.TryGetAspect(item.Aspects, AudioAspect.Metadata, out SingleMediaItemAspect audioAspect)) { Title = audioAspect.GetAttributeValue <string>(AudioAspect.ATTR_TRACKNAME); } if (client.Profile.Settings.Metadata.Delivery == MetadataDelivery.All) { if (MediaItemAspect.TryGetAspects(item.Aspects, GenreAspect.Metadata, out IList <MultipleMediaItemAspect> genreAspects)) { CollectionUtils.AddAll(Genre, genreAspects.Select(g => g.GetAttributeValue <string>(GenreAspect.ATTR_GENRE))); } } //Support alternative ways to get album art if (AlbumArtUrls.Count > 0) { if (client.Profile.Settings.Thumbnails.Delivery == ThumbnailDelivery.All || client.Profile.Settings.Thumbnails.Delivery == ThumbnailDelivery.Resource) { var albumResource = new MediaLibraryAlbumArtResource((MediaLibraryAlbumArt)AlbumArtUrls[0]); albumResource.Initialise(); Resources.Add(albumResource); } if (client.Profile.Settings.Thumbnails.Delivery != ThumbnailDelivery.All && client.Profile.Settings.Thumbnails.Delivery != ThumbnailDelivery.AlbumArt) { AlbumArtUrls.Clear(); } } var resource = new MediaLibraryResource(client); resource.Initialise(item); Resources.Add(resource); }
public MediaLibrarySeasonItem(MediaItem item, EndPointSettings client) : base(item, NECESSARY_EPISODE_MIA_TYPE_IDS, OPTIONAL_EPISODE_MIA_TYPE_IDS, new RelationshipFilter(EpisodeAspect.ROLE_EPISODE, SeasonAspect.ROLE_SEASON, item.MediaItemId), client) { Genre = new List <string>(); Artist = new List <string>(); Contributor = new List <string>(); if (Client.Profile.Settings.Metadata.Delivery == MetadataDelivery.All) { SingleMediaItemAspect seriesAspect; if (MediaItemAspect.TryGetAspect(item.Aspects, SeasonAspect.Metadata, out seriesAspect)) { var descriptionObj = seriesAspect.GetAttributeValue(SeasonAspect.ATTR_DESCRIPTION); if (descriptionObj != null) { Description = descriptionObj.ToString(); } } } //Support alternative ways to get album art var albumArt = new MediaLibraryAlbumArt(item, Client); if (albumArt != null) { albumArt.Initialise(); if (Client.Profile.Settings.Thumbnails.Delivery == ThumbnailDelivery.All || Client.Profile.Settings.Thumbnails.Delivery == ThumbnailDelivery.Resource) { var albumResource = new MediaLibraryAlbumArtResource(albumArt); albumResource.Initialise(); Resources.Add(albumResource); } if (Client.Profile.Settings.Thumbnails.Delivery == ThumbnailDelivery.All || Client.Profile.Settings.Thumbnails.Delivery == ThumbnailDelivery.AlbumArt) { AlbumArtUrl = albumArt.Uri; } } }
public static bool IsSoftCodedSubtitleAvailable(DlnaMediaItem dlnaItem, EndPointSettings client) { if (client.Profile.MediaTranscoding.SubtitleSettings.SubtitleMode != SubtitleSupport.SoftCoded) { return(false); } if (dlnaItem.IsTranscoded && dlnaItem.IsVideo) { VideoTranscoding video = (VideoTranscoding)dlnaItem.TranscodingParameter; return(video?.SourceSubtitles.Count > 0); } else if (dlnaItem.IsVideo) { VideoTranscoding subtitleVideo = (VideoTranscoding)dlnaItem.SubtitleTranscodingParameter; if (subtitleVideo?.SourceSubtitles.Count > 0) { return(true); } return(dlnaItem.Subtitles.Count > 0); } return(false); }
public T GetServiceResponse <T>(string serviceName, string jsonRequest) where T : class { EndPointSettings endPointSettings = GetEndPointSetting(serviceName, _settings); HttpClientHandler clientHandler = new HttpClientHandler() { UseProxy = false }; HttpClient client = new HttpClient(clientHandler); client.BaseAddress = new Uri(endPointSettings.EndPoint); string result = string.Empty; try { WebRequest request = WebRequest.Create(endPointSettings.EndPoint); request.Method = "POST"; request.ContentType = "application/json"; using (var streamWriter = new StreamWriter(request.GetRequestStream())) { streamWriter.Write(jsonRequest); streamWriter.Flush(); streamWriter.Close(); var response1 = (HttpWebResponse)request.GetResponse(); using (var streamReader = new StreamReader(response1.GetResponseStream())) { result = streamReader.ReadToEnd(); } } var response = JsonConvert.DeserializeObject <T>(result); return(response); } catch (Exception ex) { return(null); } }