public async Task <Boolean> DownloadDocumentThumbnail(String documentId, String size, String thumbnailFileName)
        {
            Boolean result = false;

            if (String.IsNullOrEmpty(documentId) || String.IsNullOrEmpty(thumbnailFileName))
            {
                return(result);
            }
            OnshapeDocument d = await HttpGet <OnshapeDocument>(String.Format(Constants.DOCUMENT_API_URI, documentId));

            if (d == null || d.thumbnail == null || d.thumbnail.sizes == null || d.thumbnail.sizes.Count == 0)
            {
                return(result);
            }
            OnshapeThumbnail t = d.thumbnail.sizes[0];

            if (!String.IsNullOrEmpty(size))
            {
                for (int i = 0; i < d.thumbnail.sizes.Count; ++i)
                {
                    if (size.Equals(d.thumbnail.sizes[i].size, StringComparison.InvariantCultureIgnoreCase))
                    {
                        t = d.thumbnail.sizes[i];
                        break;
                    }
                }
            }
            if (t != null)
            {
                var response = await HttpGet(t.href, t.mediaType);

                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    using (Stream thumbnailStream = await response.Content.ReadAsStreamAsync())
                    {
                        using (Stream stream = new FileStream(thumbnailFileName, FileMode.Create, FileAccess.Write, FileShare.None, 1012 * 1024, true))
                        {
                            await thumbnailStream.CopyToAsync(stream);

                            result = true;
                        }
                    }
                }
            }
            return(result);
        }
Example #2
0
        internal static async Task GetDocuments(CommandExecutionContext context, Dictionary <string, List <string> > options, List <string> values)
        {
            if (options.ContainsKey(Constants.DOCUMENT_ID))
            {
                OnshapeDocument document = await context.Client.GetDocument(options[Constants.DOCUMENT_ID][0]);

                Console.WriteLine(JsonConvert.SerializeObject(document));
            }
            else if (values != null && values.Count > 0)
            {
                foreach (String v in values)
                {
                    OnshapeDocument document = await context.Client.GetDocument(v);

                    Console.WriteLine(JsonConvert.SerializeObject(document));
                }
            }
            else
            {
                List <OnshapeDocument> documents = await context.Client.GetDocuments();

                documents.Print();
            }
        }
Example #3
0
        internal static async Task CreateDocument(CommandExecutionContext context, Dictionary <string, List <string> > options, List <string> values)
        {
            OnshapeDocument document = await context.Client.CreateDocument(values[0]);

            Console.WriteLine(JsonConvert.SerializeObject(document));
        }