Ejemplo n.º 1
0
        public IHttpContext GetActors(IHttpContext ctx)
        {
            if (ctx.Request.QueryString["sessionid"] == null)
            {
                HttpResponseExtensions.SendResponse(ctx.Response, HttpStatusCode.Ok, "{\"status\": \"error\", \"reason\": \"missing parameter\"}");
                return(ctx);
            }

            XBimParser parse  = GetSession(ctx.Request.QueryString["sessionid"]);
            var        actors = parse.GetActors();

            HttpResponseExtensions.SendResponse(ctx.Response, HttpStatusCode.Ok, JsonConvert.SerializeObject(actors, Formatting.Indented));

            return(ctx);
        }
Ejemplo n.º 2
0
        public IHttpContext GetSILengthUnit(IHttpContext ctx)
        {
            if (ctx.Request.QueryString["sessionid"] == null)
            {
                HttpResponseExtensions.SendResponse(ctx.Response, HttpStatusCode.Ok, "{\"status\": \"error\", \"reason\": \"missing parameter\"}");
                return(ctx);
            }

            XBimParser             parse    = GetSession(ctx.Request.QueryString["sessionid"]);
            string                 si       = parse.GetSILengthUnit();
            JsonSerializerSettings settings = new JsonSerializerSettings();

            HttpResponseExtensions.SendResponse(ctx.Response, HttpStatusCode.Ok, "{\"status\": \"success\", \"unit\": \"" + si + "\"}");

            return(ctx);
        }
Ejemplo n.º 3
0
        public IHttpContext GetShapesOfProduct(IHttpContext ctx)
        {
            if (ctx.Request.QueryString["sessionid"] == null || ctx.Request.QueryString["guid"] == null)
            {
                HttpResponseExtensions.SendResponse(ctx.Response, HttpStatusCode.Ok, "{\"status\": \"error\", \"reason\": \"missing parameter\"}");
                return(ctx);
            }

            XBimParser             parse    = GetSession(ctx.Request.QueryString["sessionid"]);
            var                    objects  = parse.GetShapesOfProduct(ctx.Request.QueryString["guid"]);
            JsonSerializerSettings settings = new JsonSerializerSettings();

            HttpResponseExtensions.SendResponse(ctx.Response, HttpStatusCode.Ok, JsonConvert.SerializeObject(objects, Formatting.Indented, settings));

            return(ctx);
        }
Ejemplo n.º 4
0
        public IHttpContext LoadProject(IHttpContext ctx)
        {
            if (ctx.Request.QueryString["projectid"] == null)
            {
                HttpResponseExtensions.SendResponse(ctx.Response, HttpStatusCode.Ok, "{\"status\": \"error\", \"reason\": \"not found\"}");
                return(ctx);
            }

            MProject   p        = SqliteDb.GetProject(Int32.Parse(ctx.Request.QueryString["projectid"]));
            XBimParser parsival = new XBimParser(p.FileName);

            parsival.LoadGeometry();
            if (parsival.HasLoaded())
            {
                sessions.Add(sessionCounter, parsival);
                HttpResponseExtensions.SendResponse(ctx.Response, HttpStatusCode.Ok, "{\"status\": \"success\", \"session\": " + sessionCounter.ToString() + "}");
                sessionCounter++;
            }

            return(ctx);
        }
Ejemplo n.º 5
0
        public IHttpContext PostProject(IHttpContext ctx)
        {
            if (ctx.Request.HasEntityBody)
            {
                int chunksize = 1024;
                using (Stream input = ((HttpRequest)ctx.Request).Advanced.InputStream)
                {
                    var parser = MultipartFormDataParser.Parse(input);

                    foreach (FilePart file in parser.Files)
                    {
                        using (BinaryReader reader = new BinaryReader(file.Data, ctx.Request.ContentEncoding))
                        {
                            string filename    = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString() + ".ifc";
                            string storagefile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Storage", filename);
                            using (BinaryWriter output = new BinaryWriter(File.Open(storagefile, FileMode.Create)))
                            {
                                byte[] chunk = reader.ReadBytes(chunksize);
                                while (chunk.Length > 0)
                                {
                                    output.Write(chunk);
                                    chunk = reader.ReadBytes(chunksize);
                                }
                            }

                            //ifc file available here
                            XBimParser xbparse = new XBimParser(storagefile);
                            MProject   mp      = xbparse.GetProject();
                            SqliteDb.InsertProject(mp);
                            HttpResponseExtensions.SendResponse(ctx.Response, HttpStatusCode.Ok, "{\"status\": \"success\"}");
                        }
                    }
                }
            }
            return(ctx);
        }