Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        bool LoadLastData()
        {
            var jsonFileName = RenderFileHelper.BuildOutputFileName(Configuration, RenderJson.FileName);

            LastData = JsonOutput.Load(jsonFileName);
            return(LastData != null);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
 private void button1_Click(object sender, EventArgs e)
 {
     progressBar1.Show();
     JsonOutput.Clear();
     textBox6.Clear();
     ThreadPool.QueueUserWorkItem(CallBack);
 }
Beispiel #5
0
        public void Execute(Configuration configuration, List <Duplicate> duplicates)
        {
            var data = new JsonOutput {
                Configuration = configuration, Duplicates = duplicates
            };

            RenderFileHelper.SaveRenderOutput(configuration, FileName, data.ToJsonString());
        }
Beispiel #6
0
    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());
    }
Beispiel #7
0
        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));
     }
 }
Beispiel #9
0
 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));
     }
 }
Beispiel #10
0
        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));
     }
 }
Beispiel #12
0
        void OnEnable()
        {
            Instance = this;

            _arProcessor = new ArucoMapProcessor(MarkerSizeInMeter)
            {
                TrackerErrorRatio = TrackerErrorRatio
            };

            ArucoPipeline.AddProcessor(_arProcessor);

            _arOutput = new JsonOutput(OnPoseChanged);
            ArucoPipeline.AddOutput(_arOutput);

            _prevMarkerSize        = MarkerSizeInMeter;
            _prevTrackerErrorRatio = TrackerErrorRatio;
        }
Beispiel #13
0
        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;
        }
Beispiel #14
0
        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));
            }
        }
Beispiel #16
0
    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]);
        }
    }
Beispiel #17
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));
            });
        }
Beispiel #18
0
        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("");
            }
        }
Beispiel #19
0
        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);
            }
        }