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); }
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); }
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); }
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); }
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); }