public async Task Invoke(HttpContext httpContext) { if (httpContext.Request.Path.Value.ToLower() == "/co2") { if (!_cache.TryGetValue(CacheKeys.JsonOutput, out JsonOutput jsonOutput)) { #region defaultValues jsonOutput = new JsonOutput(1000, 25.5, DateTime.Now.ToString("g")); #endregion //var hidConnection = new HidConnection(); //hidConnection.ConnectDevice(_co2DeviceHandler, _dataProcessor, VendorId, ProductId, ref jsonOutput); MemoryCacheEntryOptions cacheEntryOptions = new MemoryCacheEntryOptions() .SetSlidingExpiration(TimeSpan.FromSeconds(1)); _cache.Set(CacheKeys.JsonOutput, jsonOutput, cacheEntryOptions); } httpContext.Response.ContentType = "application/json"; string jsonString = JsonConvert.SerializeObject(jsonOutput); var lightConnection = new Connection(); lightConnection.sendSignalToLightConroller(jsonOutput.co2, jsonOutput.temperature); await httpContext.Response.WriteAsync(jsonString); } else { await _next.Invoke(httpContext); } }
bool LoadLastData() { var jsonFileName = RenderFileHelper.BuildOutputFileName(Configuration, RenderJson.FileName); LastData = JsonOutput.Load(jsonFileName); return(LastData != null); }
public void JsonOutputTest() { // Arrange GenerateData generateData = new GenerateData(); RunningNumberGenerator runningNumberGenerator = new RunningNumberGenerator(); generateData.AddGeneratorToChain(runningNumberGenerator); NameGenerator nameGenerator = new NameGenerator(); nameGenerator.Init(null, seed: 1337); generateData.AddGeneratorToChain(nameGenerator); generateData.AddWantedElement(("Id", runningNumberGenerator, null, typeof(int), null)); generateData.AddWantedElement(("Firstname", nameGenerator, "firstname", typeof(string), null)); generateData.AddWantedElement(("Lastname", nameGenerator, "lastname", typeof(string), null)); JsonOutput outJson = new JsonOutput(); generateData.output = outJson; MemoryStream ms = new MemoryStream(); // Act generateData.Generate(ms); string result = Encoding.UTF8.GetString(ms.ToArray()); List <IdFirstnameLastname> idFirstnameLastnameList = JsonConvert.DeserializeObject <List <IdFirstnameLastname> >(result); // Assert Assert.AreEqual(generateData.howManyStepToRun, idFirstnameLastnameList.Count, "There should be certain amount of wanted items"); Assert.AreEqual("Jacob", idFirstnameLastnameList[0].Firstname); Assert.AreEqual("Smith", idFirstnameLastnameList[0].Lastname); Assert.AreEqual(0, idFirstnameLastnameList[0].Id); }
private void button1_Click(object sender, EventArgs e) { progressBar1.Show(); JsonOutput.Clear(); textBox6.Clear(); ThreadPool.QueueUserWorkItem(CallBack); }
public void Execute(Configuration configuration, List <Duplicate> duplicates) { var data = new JsonOutput { Configuration = configuration, Duplicates = duplicates }; RenderFileHelper.SaveRenderOutput(configuration, FileName, data.ToJsonString()); }
public string GenerateScreen(object _query) { string IP = System.Web.HttpContext.Current.Request.UserHostAddress.ToString(); if (IP == "::1") { IP = "127.0.0.1"; } JsonOutput json = new JsonOutput(); bool isAuthorized = plus.Security.Authorization.Authorize(plus.Security.Util.GetClientIP(), false); if (!isAuthorized) { return(json.Write(plus._System.Configuration.Manager.Get(plus._System.Configuration.ConfigurationElement.SECURITY_PATH) + "unauthorized/").Serialize()); } json.WriteStartArray(); try { Dictionary <string, object> query = (Dictionary <string, object>)_query; IDictionary dict = new Dictionary <string, object>(); dict.Add("dbName", plus.Util.Helper.EmptyToNull(query["dbName"])); dict.Add("ObjectName", plus.Util.Helper.EmptyToNull(query["ObjectName"])); dict.Add("Prefix", plus.Util.Helper.EmptyToNull(query["Prefix"])); dict.Add("IsSubForm", plus.Util.Helper.EmptyToNull(query["IsSubForm"])); dict.Add("ParentObject", plus.Util.Helper.EmptyToNull(query["ParentObject"])); dict.Add("ElPerRow", plus.Util.Helper.EmptyToNull(query["ElPerRow"])); dict.Add("Lang", plus.Util.Helper.EmptyToNull(query["Lang"])); System.Data.IDataReader reader = plus.Data.DAL.Read("Default", @"exec [reg].[spGenerateScreen] @dbName, @ObjectName, @Prefix, @IsSubForm, @ParentObject, @ElPerRow, @Lang ", dict); bool fetchColumns = (bool)plus.Util.Helper.IfNothing(query.ContainsKey("fetchColumns") ? query["fetchColumns"] : false, false); //json.WriteTableResult(table, reader, fetchColumns); //json.WriteQueryResult(String.Concat(pathArray[1], ".", pathArray[2]), reader, fetchColumns, true); json.WriteQuickResult(String.Concat("Tconfsys.reg", ".", "Screen"), reader, fetchColumns, true); if (!reader.IsClosed) { reader.Close(); } } catch (Exception ex) { json.WriteError(ex.Message /*+ ex.StackTrace*/); json.WriteEndArray(); return(json.Serialize()); } json.WriteEndArray(); return(json.Serialize()); }
protected override void OnEnable() { ArMarkerTracker.Instance = this; Instance = this; _artkProcessor = new ArToolkitProcessor(); ArToolkitPipeline.AddProcessor(_artkProcessor); _artkOutput = new JsonOutput(OnPoseChanged); ArToolkitPipeline.AddOutput(_artkOutput); }
public IHttpActionResult GetStores(string mall) { try { this.GetPagingInfo(ref this.pageNo, ref this.pageSize); var output = new StoreInfoListOutput(Constants.ApiStatus.Success, this.StoreService.GetStores(mall, pageNo, pageSize)); return(this.JsonResult <StoreInfoListOutput>(output)); } catch (Exception ex) { Log.Error($":GetStores({mall}). Error message: {ex.Message}", ex, this); var error = new JsonOutput(Constants.ApiStatus.Fail, ex.Message); return(this.JsonResult <JsonOutput>(error)); } }
public IHttpActionResult GetArticles(string category) { try { this.GetPagingInfo(ref this.pageNo, ref this.pageSize); var output = new ArticleInfoListOutput(Constants.ApiStatus.Success, this.ArticleService.GetArticles(string.Empty, category, this.pageNo, this.pageSize)); return(this.JsonResult <ArticleInfoListOutput>(output)); } catch (Exception ex) { Log.Error($":GetArticles({category}). Error message: {ex.Message}", ex, this); var error = new JsonOutput(Constants.ApiStatus.Fail, ex.Message); return(this.JsonResult <JsonOutput>(error)); } }
static void DisplayDependent(TransmittalFile tf, JsonOutput output) { int numberOfDependents = tf.numberOfDependents; for (int i = 0; i < numberOfDependents; ++i) { TransmittalFile childTF = tf.getDependent(i); FileType ft = childTF.FileType; var jsondependent = new Dependent(); jsondependent.Name = ft.ToString(); jsondependent.Path = childTF.sourcePath; output.Dependents.Add(jsondependent); DisplayDependent(childTF, output); } }
public IHttpActionResult GetBanners(string mall) { try { this.GetPagingInfo(ref this.pageNo, ref this.pageSize); var listBanner = this.bannerService.GetBannersBySitecode(mall, this.pageNo, this.pageSize); var output = new BannerListOutput(Constants.ApiStatus.Success, listBanner); return(this.JsonResult(output)); } catch (Exception ex) { Log.Error($": GetBanners({mall}). Error message: {ex.Message}", ex, this); var error = new JsonOutput(Constants.ApiStatus.Fail, ex.Message); return(this.JsonResult(error)); } }
void OnEnable() { Instance = this; _arProcessor = new ArucoMapProcessor(MarkerSizeInMeter) { TrackerErrorRatio = TrackerErrorRatio }; ArucoPipeline.AddProcessor(_arProcessor); _arOutput = new JsonOutput(OnPoseChanged); ArucoPipeline.AddOutput(_arOutput); _prevMarkerSize = MarkerSizeInMeter; _prevTrackerErrorRatio = TrackerErrorRatio; }
protected override void OnEnable() { base.OnEnable(); _arProcessor = new ArucoProcessor(MarkerSizeInMeter) { UseTracker = UseTracker, TrackerErrorRatio = TrackerErrorRatio }; ArucoPipeline.AddProcessor(_arProcessor); _arOutput = new JsonOutput(OnPoseChanged); ArucoPipeline.AddOutput(_arOutput); _prevUseTracker = UseTracker; _prevTrackerErrorRatio = TrackerErrorRatio; }
public void SmokeTest() { // Arrange var simpleTuple = (myInt : 1, myString : "text is nice"); JsonOutput jsonOutput = new JsonOutput(); object parameter = null; MemoryStream ms = new MemoryStream(); List <object> headerEntries = new List <object>() { nameof(simpleTuple.myInt), nameof(simpleTuple.myString) }; List <object> singleLineEntries = new List <object>() { simpleTuple.myInt, simpleTuple.myString }; // Act var initResult = jsonOutput.Init(parameter, ms); var writeHeaderResult = jsonOutput.WriteHeader(headerEntries); var writeSingleEntryResult = jsonOutput.WriteSingleEntry(singleLineEntries); var writeFooterResult = jsonOutput.WriteFooter(null); string result = Encoding.UTF8.GetString(ms.ToArray()); var deserialized = JsonDocument.Parse(result); // Assert Assert.IsTrue(initResult.success, "Init should be successful"); Assert.IsTrue(writeHeaderResult.success, "Header write should be successful"); Assert.IsTrue(writeSingleEntryResult.success, "Writing single entry should be successful"); Assert.IsTrue(writeFooterResult.success, "Writing footer should be successful"); Assert.IsFalse(ms.CanWrite, "Footer write should have closed the stream"); Assert.IsTrue(result.Contains((string)headerEntries[0]), "Final output should contain myInt"); Assert.IsTrue(result.Contains((string)headerEntries[1]), "Final output should contain myString"); Assert.IsTrue(result.Contains(singleLineEntries[0].ToString()), "Final output should contain 1"); Assert.IsTrue(result.Contains((string)singleLineEntries[1]), "Final output should contain 'text is nice'"); Assert.AreEqual(deserialized.RootElement[0].GetProperty("myInt").GetInt32(), simpleTuple.myInt); Assert.AreEqual(deserialized.RootElement[0].GetProperty("myString").GetString(), simpleTuple.myString); }
public IHttpActionResult GetStore(string id) { try { var item = Context.Database.GetItem(ID.Parse(id)); if (!item.IsOnCurrentSite()) { throw new ArgumentException($"Store {id} is not found"); } var output = new StoreOutput(Constants.ApiStatus.Success, new Store(item)); return(this.JsonResult <StoreOutput>(output)); } catch (Exception ex) { Log.Error($":GetStore({id}). Error message: {ex.Message}", ex, this); var error = new JsonOutput(Constants.ApiStatus.Fail, ex.Message); return(this.JsonResult <JsonOutput>(error)); } }
IEnumerator GetText() { UnityWebRequest www = UnityWebRequest.Get("https://reqres.in/api/users?page=2"); yield return(www.SendWebRequest()); if (www.isNetworkError || www.isHttpError) { Debug.Log(www.error); } else { // Show results as text string json1 = www.downloadHandler.text; JsonOutput op1 = JsonUtility.FromJson <JsonOutput> (json1); Debug.Log(op1.data[0].first_name); // Or retrieve results as binary data //byte[] results = www.downloadHandler.data; //Debug.Log(results [0]); } }
public RestApiClient(Config config, int port = 8080, string serverDirectory = null) { _config = config; _server = new RestServer(port, serverDirectory); _logins = new TimeoutList <AgilefantClient>(TimeSpan.FromMinutes(120)); _server += new RestfulUrlHandler("/rest/([0-9]+/)?sprint/summary(/([0-9]+/?)?)?", (p, s) => { var session = GetClientSession(p); if (session == null) { return; } int teamNumber, sprintNumber; if (!int.TryParse(s[1], out teamNumber)) { teamNumber = _config.TeamNumber; } if (!(s.Length >= 5 && int.TryParse(s[4], out sprintNumber)) && !(s.Length >= 4 && int.TryParse(s[3], out sprintNumber))) { sprintNumber = _config.SprintNumber; } var teamsTask = session.GetTeams(); var usersTask = session.GetUsers(); var backlogsTask = session.GetBacklogs(teamNumber); var teams = teamsTask.Result; var users = teams[teamNumber].Members; Array.Sort(users, (a, b) => { if (string.IsNullOrWhiteSpace(a.Name) || string.IsNullOrWhiteSpace(b.Name)) { return(string.Compare(a.Initials, b.Initials, StringComparison.Ordinal)); } return(string.Compare(a.Name, b.Name, StringComparison.Ordinal)); }); var u = usersTask.Result; foreach (var user in users) { var result = u.FirstOrDefault(t => t.UserCode == user.Initials); user.Name = result == null ? "" : result.Name; } var backlogs = backlogsTask.Result; var sprintSummaries = session.GetSprintSummaries(backlogs[0].Id).Result; var sprintSummary = AgilefantClient.SelectSprint(sprintNumber, sprintSummaries); var sprint = int.Parse(Regex.Match(sprintSummary.Name, "[0-9]+").Value); var hours = (from user in users let tasks = session.GetTime(teamNumber, backlogs[0].Id, sprintSummary.Id, user.Id).Result select new JsonOutputTime((_config.DisplayUsercode ? user.Initials : user.Name), tasks)).ToList(); var jsonOutput = new JsonOutput(teams[teamNumber].Name, sprintSummary.Name, hours, sprint); var json = JsonConvert.SerializeObject(jsonOutput, Formatting.Indented); p.WriteSuccess(json); }); _server += new RestfulUrlHandler("/rest/([0-9]+/)?sprint(/([0-9]+/?)?)?", (p, s) => { var session = GetClientSession(p); if (session == null) { return; } int teamNumber, sprintNumber; if (!int.TryParse(s[1], out teamNumber)) { teamNumber = _config.TeamNumber; } if (!(s.Length >= 4 && int.TryParse(s[3], out sprintNumber)) && !(s.Length >= 3 && int.TryParse(s[2], out sprintNumber))) { sprintNumber = _config.SprintNumber; } var backlogs = session.GetBacklogs(teamNumber).Result; var sprintSummaries = session.GetSprintSummaries(backlogs[0].Id).Result; var sprintSummary = AgilefantClient.SelectSprint(sprintNumber, sprintSummaries); var sprint = session.GetSprint(sprintSummary.Id).Result; var json = JsonConvert.SerializeObject(sprint, Formatting.Indented); p.WriteSuccess(json); }); _server += new RestfulUrlHandler("/rest/(([^0-9/]+)|([a-z]{3}[0-9]{2,3}))/sprint/[0-9]+/?", (p, s) => { var session = GetClientSession(p); if (session == null) { return; } var userCode = s[1]; var sprintNumber = int.Parse(s[3]); var backlogs = session.GetBacklogs(_config.TeamNumber); var users = session.GetUsers().Result; var userId = -1; var name = ""; AgilefantTeam userTeam = null; foreach (var user in users.Where(user => user.UserCode == userCode)) { userId = user.Id; name = user.Name; break; } if (userId < 0) { foreach (var team in session.GetTeams().Result) { foreach (var member in team.Value.Members.Where(member => member.Initials.ToLower(CultureInfo.InvariantCulture) == userCode.ToLower(CultureInfo.InvariantCulture))) { userTeam = team.Value; userId = member.Id; break; } } if (userTeam == null) { p.WriteResponse("404 Not Found", "{\"success\":false,\"reason\":\"No Such User\"}", "application/json"); return; } backlogs = session.GetBacklogs(userTeam.Id); name = userCode; } var sprintSummaries = session.GetSprintSummaries(backlogs.Result[0].Id).Result; var sprintSummary = AgilefantClient.SelectSprint(sprintNumber, sprintSummaries); var times = session.GetLoggedTaskTime(userId, sprintSummary.StartDate, sprintSummary.EndDate); var days = (sprintSummary.EndDate.DayOfYear <= DateTime.Now.DayOfYear ? sprintSummary.EndDate.DayOfYear : DateTime.Now.DayOfYear) - sprintSummary.StartDate.DayOfYear; if (days < 0) { days = 0; } Debug.Assert(userTeam != null, "userTeam != null"); var stats = new UserPerformed(userId, userCode, name, times.Result, days, userTeam.Id); p.WriteSuccess(JsonConvert.SerializeObject(stats, Formatting.Indented)); }); _server += new RestfulUrlHandler("/rest/teams/?", (p, s) => { var session = GetClientSession(p); if (session == null) { return; } var teams = session.GetTeams().Result; var u = session.GetUsers().Result.ToDictionary(user => user.Initials, user => user.Name); foreach (var member in teams.Values.SelectMany(team => team.Members)) { string name; if (u.TryGetValue(member.Initials, out name)) { member.Name = name; } } var json = JsonConvert.SerializeObject(teams.Values.ToArray(), Formatting.Indented); p.WriteSuccess(json); }); _server += new RestfulUrlHandler("/rest/team/[0-9]/?", (p, s) => { var session = GetClientSession(p); if (session == null) { return; } var usersTask = session.GetUsers(); var teams = session.GetTeams().Result; int teamNumber; if (!int.TryParse(s[2], out teamNumber) || teamNumber < 0 || teamNumber >= teams.Count) { return; } var u = usersTask.Result.ToDictionary(user => user.Initials, user => user.Name); foreach (var member in teams[teamNumber + 1].Members) { string name; if (u.TryGetValue(member.Initials, out name)) { member.Name = name; } } var json = JsonConvert.SerializeObject(teams[teamNumber + 1], Formatting.Indented); p.WriteSuccess(json); }); _server += new RestfulUrlHandler("/rest/login/?", (p, s) => { string redirectUrl; p.ParseGetParameters().TryGetValue("returnUrl", out redirectUrl); if (p.HttpHeaders.ContainsKey("Authorization") || p.HttpPostData.Length != 0) { string username, password; if (p.HttpHeaders.ContainsKey("Authorization")) { var result = p.DecodeAuthenticationHeader(); var ind = result.IndexOf(':'); username = result.Substring(0, ind); password = result.Substring(ind + 1); } else { var keys = p.HttpPostData.Split('&').Select(key => key.Split('=')).ToDictionary(values => values[0], values => values[1]); username = keys["username"]; password = keys["password"]; } try { var session = AgilefantSession.LoginTemporary(username, password).Result; if (session == null) { throw new SecurityException("Not logged in."); } var client = new AgilefantClient(session); var data = _logins.AddAndGetId(client); p.HttpResponseSetCookies.Add("aft-session", data); if (redirectUrl != null) { p.WriteRedirect(redirectUrl); } else { p.WriteSuccess("{\"success\":true}"); } } catch (Exception) { p.WriteAuthRequired(false, "Thou must login before slaying dragons.", "{\"success\":false}", "application/json"); } } else if (p.HttpCookies.ContainsKey("aft-session")) { if (redirectUrl != null) { p.WriteRedirect(redirectUrl); } else { p.WriteSuccess("{\"success\":true}"); } } else { p.WriteAuthRequired(p.HttpPostData.Length == 0, "Thou must login before slaying dragons.", "{\"success\":false}", "application/json"); } }); _server += new RestfulUrlHandler("/rest/?", (p, s) => { var methods = new List <object> { new { url = "/rest/{{teamNumber?}}/sprint/summary/{{sprintNumber?}}", fields = new[] { "teamNumber, optional, the team number", "sprintNumber, optional, the sprint number" }, description = "Gets summary details about a sprint for a team." }, new { url = "/rest/{{teamNumber?}}/sprint/{{sprintNumber?}}", fields = new[] { "teamNumber, optional, the team number", "sprintNumber, optional, the sprint number" }, description = "Gets full, uninterpreted details about a sprint for a team." }, new { url = "/rest/{{userCode}}/sprint/{{sprintNumber}}", fields = new[] { "userCode, required, the username of the user", "sprintNumber, required, the sprint number" }, description = "Gets all activity of a user for a sprint." }, new { url = "/rest/teams", fields = new string[0], description = "Gets the details about all teams, their sprints and members (where the current authentication allows)." }, new { url = "/rest/team/{{teamNumber}}", fields = new[] { "teamNumber, required, the number of the team" }, description = "Gets the details about a team, its sprints and members (where the current authentication allows)." }, new { url = "/rest/login", fields = new string[0], description = "Logs the user in. Accepts optional post parameters username and password. A logged in user " + "will use their own account instead of the global account." }, new { url = "/rest", fields = new string[0], description = "Gets this help text about the avalible URLs." } }; p.WriteSuccess(JsonConvert.SerializeObject(methods, Formatting.Indented)); }); }
static void Main(string[] args) { while (true) { DateTime startingDate, endingDate; // starting and ending dates DirectoryInfo outputDir; // output directory ResponseIncident?respIncEnum = null; // Export all responses or export all incidencts // Get starting date Console.WriteLine("Please enter a date range with a starting date and an ending date"); Console.WriteLine(""); Console.WriteLine("Enter a starting date (inclusive): "); startingDate = ReadDate(); Console.WriteLine(""); // Get ending Date Console.WriteLine("Enter an ending date (inclusive): "); endingDate = ReadDate(); Console.WriteLine(""); // Export all responses or all incidents while (respIncEnum == null) { Console.WriteLine("Export all responses or export all incidents?"); Console.WriteLine("Press r for export all responses and i for export all incidents..."); ConsoleKey key = Console.ReadKey().Key; if (key == ConsoleKey.R) { respIncEnum = ResponseIncident.Response; } else if (key == ConsoleKey.I) { respIncEnum = ResponseIncident.Incident; } else { Console.WriteLine(""); Console.WriteLine("User did not press r or i, try again."); Console.WriteLine(""); } } Console.WriteLine(""); Console.WriteLine(""); // Get output file directory Console.WriteLine("Enter your output directory: "); outputDir = ReadOutDir(); Console.WriteLine(); // Tell user what settings they selected, give chance to re-enter string respIncStr; if (respIncEnum == ResponseIncident.Incident) { respIncStr = "Incidents"; } else { respIncStr = "Responses"; } Console.WriteLine("Will get data from {0}/{1}/{2} until {3}/{4}/{5}", startingDate.Month, startingDate.Day, startingDate.Year, endingDate.Month, endingDate.Day, endingDate.Year); Console.WriteLine(string.Format("Will export all {0} to {1}", respIncStr, outputDir.FullName)); Console.WriteLine(""); Console.WriteLine("Press any key to export data from the SF data repository. Press Esc to re-enter data."); if (Console.ReadKey().Key == ConsoleKey.Escape) { Console.WriteLine(""); Console.WriteLine(""); continue; } // Get data from SF data repository Console.WriteLine(""); Console.WriteLine("Getting data from SF data repository..."); Console.WriteLine(""); List <Response> responses = DataImportManager.GetData_SFRepo_Https(startingDate, endingDate, 0); if (responses == null) { Console.WriteLine("Got null response. Try again..."); Console.WriteLine(""); continue; } // Write Output to JSON files, ask if user wants to do another operation Console.WriteLine("Found {0} Results", responses.Count); Console.WriteLine(""); Console.WriteLine("Creating json output..."); Console.WriteLine(""); JsonOutput.WriteJsonFiles(outputDir, responses, (ResponseIncident)respIncEnum); Console.WriteLine("Press Esc to exit, Press any other key to export more data."); if (Console.ReadKey().Key == ConsoleKey.Escape) { return; } Console.WriteLine(""); } }
static public void QueryDwg() { //prompt for input json and output folder var doc = Application.DocumentManager.MdiActiveDocument; var ed = doc.Editor; var res1 = ed.GetFileNameForOpen("Specify parameter file"); if (res1.Status != Autodesk.AutoCAD.EditorInput.PromptStatus.OK) { return; } /*var res2 = ed.GetString("Specify output sub-folder name"); * if (res2.Status != Autodesk.AutoCAD.EditorInput.PromptStatus.OK) * return;*/ try { //get parameter from input json var parameters = JsonConvert.DeserializeObject <Parameters>(File.ReadAllText(res1.StringResult)); //Directory.CreateDirectory(res2.StringResult); //extract layer names and block names from drawing as requested and place the results in the //output folder var db = doc.Database; //build XML output JsonOutput output = new JsonOutput { Blocks = new List <Block>(), Dependents = new List <Dependent>(), Layers = new List <Layer>() }; if (parameters.ExtractLayerNames) { using (var helper = new GeneralHelper()) { var list = helper.GetLayers().ToList(); if (list.Count > 0) { list.ForEach(layer => { var jsonlayer = new Layer(); jsonlayer.Name = layer.Name; jsonlayer.Description = layer.Description; output.Layers.Add(jsonlayer); }); } } } if (parameters.ExtractBlockNames) { using (var helper = new GeneralHelper()) { var list = helper.GetBlocks().ToList(); if (list.Count > 0) { list.ForEach(block => { var jsonblock = new Block(); jsonblock.Name = block.Name; jsonblock.Comments = block.Comments; jsonblock.Attributes = new List <AttributeDef>(); if (block.HasAttributeDefinitions) { //ed.WriteMessage("\n[INFO] Block name: " + block.Name); foreach (ObjectId id in block.GetBlockReferenceIds(true, false)) { if (!(id == ObjectId.Null)) { //ed.WriteMessage("\n[INFO] Block Ref Id: " + id); BlockReference blockRef = (BlockReference)id.GetObject(OpenMode.ForRead); AttributeCollection attCol = blockRef.AttributeCollection; if (attCol.Count > 0) { foreach (ObjectId attId in attCol) { if (!(attId == ObjectId.Null)) { AttributeReference attRef = (AttributeReference)attId.GetObject(OpenMode.ForRead); if (!(String.IsNullOrEmpty(attRef.Tag) && String.IsNullOrEmpty(attRef.TextString))) { //ed.WriteMessage("\n[INFO] Tag: " + attRef.Tag + " | Text: " + attRef.TextString); var jsonAttDef = new AttributeDef(); jsonAttDef.Tag = attRef.Tag; jsonAttDef.Text = attRef.TextString; jsonblock.Attributes.Add(jsonAttDef); } } } } } } } output.Blocks.Add(jsonblock); }); } } } if (parameters.ExtractDependents) { TransmittalFile tf; TransmittalOperation to = new TransmittalOperation(); TransmittalInfo ti = to.getTransmittalInfoInterface(); ti.includeDataLinkFile = 1; ti.includeDGNUnderlay = 1; ti.includeDWFUnderlay = 1; ti.includeFontFile = 1; ti.includeImageFile = 1; ti.includeInventorProjectFile = 1; ti.includeInventorReferences = 1; ti.includeMaterialTextureFile = 1; ti.includeNestedOverlayXrefDwg = 1; ti.includePDFUnderlay = 1; ti.includePhotometricWebFile = 1; ti.includePlotFile = 1; ti.includeUnloadedXrefDwg = 1; ti.includeXrefDwg = 1; if (to.addDrawingFile(doc.Name, out tf) == AddFileReturnVal.eFileAdded) { TransmittalFilesGraph tfg = to.getTransmittalGraphInterface(); TransmittalFile rootTF = tfg.getRoot(); DisplayDependent(rootTF, output); } } File.WriteAllText(Path.Combine(Directory.GetCurrentDirectory(), "results.json"), JsonConvert.SerializeObject(output)); } catch (System.Exception e) { ed.WriteMessage("Error: {0}", e); } }