Exemple #1
0
        /// <summary>Convert brep to specified format.</summary>
        /// <param name="content">Brep to convert (base64 encoded string).</param>
        /// <param name="sourceFormat">Source format of brep.</param>
        /// <param name="targetFormat">Target format of brep</param>
        /// <returns>Converted brep (base64 encoded string).</returns>
        /// <exception cref="Exceptions.ConnectionFailureException">Throws if network connection is down.</exception>
        /// <exception cref="Exceptions.UnathorizedException">Throws if provided cookies were obsolete.</exception>
        /// <exception cref="Exceptions.ServerUnavailableException">Throws if Flux server is down.</exception>
        /// <exception cref="Exceptions.InternalSDKException">Throws for unhandled SDK exceptions.</exception>
        public string ConvertBrep(string content, string sourceFormat, string targetFormat)
        {
            if (string.IsNullOrEmpty(content))
            {
                return(null);
            }

            #region Create object wrapper for brep

            var brep = new BrepToConvert.SceneObject.BrepPrimitive();
            brep.Primitive = "brep";
            brep.Format    = sourceFormat;
            brep.Content   = content;

            var entities = new BrepToConvert.SceneObject.EntitiesObject();
            entities.Brep = brep;

            BrepToConvert.SceneObject scene = new BrepToConvert.SceneObject();
            scene.Entities = entities;
            var initObj = new BrepToConvert.SceneObject.OperationObj();
            initObj.Name = "result";
            initObj.Op   = new string[] { "repr", targetFormat, "brep@1" };

            scene.Operations = new object[] { initObj };

            var brepToConvert = new BrepToConvert();
            brepToConvert.Scene = scene;

            #endregion

            var request = WriteBrepToRequest(brepToConvert);

            try
            {
                using (var response = HttpWebClientHelper.GetResponse(request))
                {
                    dynamic responseJson     = DataSerializer.DynamicDeserialize(StreamUtils.GetDecompressedResponseStream(response));
                    dynamic convertedContent = responseJson.Output.Results.value.result.content;
                    if (convertedContent != null)
                    {
                        object contentStr = convertedContent;
                        return(contentStr.ToString());
                    }
                }
            }
            catch (Exceptions.FluxException ex)
            {
                log.Error(ex);
                throw;
            }
            catch (Exception ex)
            {
                log.Error(ex);
                throw new Exceptions.InternalSDKException(ex.Message);
            }

            return(null);
        }
Exemple #2
0
        private HttpWebRequest WriteBrepToRequest(BrepToConvert brep)
        {
            var request = HttpWebClientHelper.CreateRequest(SdkMetadata, string.Format(FluxApiData.ConvertUrl, Id), Cookies);

            request.Method = "POST";

            var jsonStr = DataSerializer.Serialize(brep);

            byte[] bytes = Encoding.UTF8.GetBytes(jsonStr);
            request.ContentLength = bytes.Length;
            using (Stream stream = request.GetRequestStream())
            {
                stream.Write(bytes, 0, bytes.Length);
            }

            return(request);
        }