RealCrowd.PublishControl.PublishControl.PublishAsync C# (CSharp) Method

PublishAsync() public method

public PublishAsync ( string channel, Item item ) : System.Threading.Tasks.Task
channel string
item Item
return System.Threading.Tasks.Task
        public async Task PublishAsync(string channel, Item item)
        {
            var uri = baseUri + "/publish/";

            string auth = null;
            if (authBasicUser != null)
            {
                auth = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes(authBasicUser + ":" + authBasicPass));
            }
            else if (authJwtClaim != null)
            {
                Dictionary<string, object> claim;
                if (!authJwtClaim.ContainsKey("exp"))
                {
                    claim = JsonConvert.DeserializeObject<Dictionary<string, object>>(JsonConvert.SerializeObject(authJwtClaim));
                    claim["exp"] = (DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
                }
                else
                {
                    claim = authJwtClaim;
                }

    			auth = "Bearer " + JWT.JsonWebToken.Encode(claim, authJwtKey, JWT.JwtHashAlgorithm.HS256);
            }

            var i = item.ToDictionary();
            i["channel"] = channel;
            var content = new Dictionary<string, object>();
            content["items"] = new List<Dictionary<string, object>>() { i };
            HttpContent hc = new ByteArrayContent(Encoding.Default.GetBytes(JsonConvert.SerializeObject(content)));
            hc.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            var httpClient = new HttpClient();
            if (auth != null)
            {
                httpClient.DefaultRequestHeaders.Authorization = AuthenticationHeaderValue.Parse(auth);
            }
            var response = await httpClient.PostAsync(uri, hc);
        }
    }