Exemple #1
0
        /// <summary>
        /// This method fetchs information of a specific content type.
        /// </summary>
        /// <example>
        /// <code>
        /// ContentstackClient stack = new ContentstackClinet(&quot;blt5d4sample2633b&quot;, &quot;blt6d0240b5sample254090d&quot;, &quot;stag&quot;);
        /// ContentType contenttype = stack.ContentType("contentType_name");
        /// var result = await contenttype.Fetch();
        /// </code>
        /// </example>
        /// <returns>The Content-Type Schema Object.</returns>
        public async Task <JObject> Fetch()
        {
            Dictionary <String, Object> headers   = GetHeader(_Headers);
            Dictionary <String, object> headerAll = new Dictionary <string, object>();
            Dictionary <string, object> mainJson  = new Dictionary <string, object>();

            //Dictionary<string, object> urlQueries = new Dictionary<string, object>();

            if (headers != null && headers.Count() > 0)
            {
                foreach (var header in headers)
                {
                    headerAll.Add(header.Key, (String)header.Value);
                }

                if (headers.ContainsKey("environment"))
                {
                    UrlQueries.Add("environment", headers["environment"]);
                    //Url = Url + "?environment=" + headers["environment"];
                }
                else if (headers.ContainsKey("environment_uid"))
                {
                    UrlQueries.Add("environment_uid", headers["environment_uid"]);
                    //Url = Url + "?environment_uid=" + headers["environment_uid"];
                }
                else
                {
                    mainJson.Add("environment", this.StackInstance.config.Environment);
                }
            }

            foreach (var kvp in UrlQueries)
            {
                mainJson.Add(kvp.Key, kvp.Value);
            }
            try
            {
                HTTPRequestHandler RequestHandler = new HTTPRequestHandler();
                var outputResult = await RequestHandler.ProcessRequest(_Url, headers, mainJson);

                JObject data         = JsonConvert.DeserializeObject <JObject>(outputResult.Replace("\r\n", ""), ContentstackConvert.JsonSerializerSettings);
                JObject contentTypes = (Newtonsoft.Json.Linq.JObject)data["content_type"];
                return(contentTypes);
            }
            catch (Exception ex)
            {
                throw GetContentstackError(ex);
            }
        }
        private async Task <SyncStack> GetResultAsync(string Init = "false", string ContentTypeUid = null, DateTime?StartFrom = null, string SyncToken = null, string PaginationToken = null, string Lang = null)
        {
            //mainJson = null;
            Dictionary <string, object> mainJson = new Dictionary <string, object>();

            if (Init != "false")
            {
                mainJson.Add("init", "true");
                mainJson.Add("environment", config.Environment);
            }
            if (StartFrom != null)
            {
                DateTime startFrom = StartFrom ?? DateTime.MinValue;
                mainJson.Add("start_from", startFrom.ToString("yyyy-MM-dd"));
            }
            if (SyncToken != null)
            {
                mainJson.Add("sync_token", SyncToken);
            }
            if (PaginationToken != null)
            {
                mainJson.Add("pagination_token", PaginationToken);
            }
            if (ContentTypeUid != null)
            {
                mainJson.Add("content_type_uid", ContentTypeUid);
            }
            if (Lang != null)
            {
                mainJson.Add("locale", Lang);
            }
            try
            {
                HTTPRequestHandler requestHandler = new HTTPRequestHandler();
                string             js             = await requestHandler.ProcessRequest(_SyncUrl, _LocalHeaders, mainJson);

                SyncStack stackSyncOutput = JsonConvert.DeserializeObject <SyncStack>(js);
                return(stackSyncOutput);
            }
            catch (Exception ex)
            {
                throw GetContentstackError(ex);
            }
        }