Example #1
0
        public static Output Filter(Output output, CmdArguments args)
        {
            var result = new Output
            {
                Headers = output.Headers
            };

            var lines = output.Lines;

            if (args.Project != null)
            {
                lines = lines.Where(l => l.Project == args.Project.Value)
                        .ToList();
            }

            if (args.SortByDate)
            {
                lines = lines.OrderBy(l => l.StartDate)
                        .ToList();
            }

            result.Lines = lines;

            return(result);
        }
Example #2
0
        static public async Task Do(CmdArguments args)
        {
            var client = JobClient.CreateFromConnectionString(Settings.Default.ConnectionString);

            var method = new CloudToDeviceMethod(args.Names.Single());

            method.SetPayloadJson(args.Values.Single());

            var startTime = DateTime.UtcNow + TimeSpan.FromSeconds(args.StartOffsetInSeconds);

            var jobId = args.JobId;

            if (string.IsNullOrEmpty(jobId))
            {
                jobId = Guid.NewGuid().ToString();
            }

            JobResponse job = await client.ScheduleDeviceMethodAsync(
                jobId,
                args.QueryCondition,
                method,
                startTime,
                args.TimeoutInSeconds);

            Console.WriteLine($"{job.Type} job {job.JobId} scheduled");
            await IoTHubHelper.WaitJob(client, job);
        }
Example #3
0
        static public async Task Do(CmdArguments args)
        {
            if (args.Ids != null)
            {
                var client = JobClient.CreateFromConnectionString(Settings.Default.ConnectionString);

                foreach (var jobId in args.Ids)
                {
                    var job = await client.GetJobAsync(jobId);

                    Console.WriteLine(JsonConvert.SerializeObject(job, Formatting.Indented));
                    Console.WriteLine();
                }
            }
            else
            {
                var manager = RegistryManager.CreateFromConnectionString(Settings.Default.ConnectionString);

                var query = manager.CreateQuery(args.QueryCondition ?? "select * from devices.jobs");

                while (query.HasMoreResults)
                {
                    var result = await query.GetNextAsJsonAsync();

                    foreach (var job in result)
                    {
                        Console.WriteLine(job);
                        Console.WriteLine();
                    }
                }
            }
        }
Example #4
0
        static public async Task Do(CmdArguments args)
        {
            var twin = new Twin();

            twin.ETag = "*";
            twin.Set(args.KVPairs);

            var startTime = DateTime.UtcNow + TimeSpan.FromSeconds(args.StartOffsetInSeconds);

            var client = JobClient.CreateFromConnectionString(Settings.Default.ConnectionString);

            var jobId = args.JobId;

            if (string.IsNullOrEmpty(jobId))
            {
                jobId = Guid.NewGuid().ToString();
            }

            JobResponse job = await client.ScheduleTwinUpdateAsync(
                jobId,
                args.QueryCondition,
                twin,
                startTime,
                args.TimeoutInSeconds);

            Console.WriteLine($"{job.Type} job {job.JobId} scheduled");
            await IoTHubHelper.WaitJob(client, job);
        }
Example #5
0
        static void Main(string[] args)
        {
            try
            {
                var installOffice = new InstallOffice();
                installOffice.RunProgram();

                var xmlConfiguration = "";

                var cmdArgs = CmdArguments.GetArguments();
                var xmlArg  = cmdArgs.FirstOrDefault(a => a.Name.ToUpper() == "XML");
                if (xmlArg != null)
                {
                    xmlConfiguration = xmlArg.Value;
                }

                Console.WriteLine("Office 365 ProPlus Install Executable Generator");
                Console.WriteLine();

                if (string.IsNullOrEmpty(xmlConfiguration))
                {
                    Console.Write("Configuration Xml File Path: ");
                    xmlConfiguration = Console.ReadLine();
                    Console.WriteLine();
                }

                if (!File.Exists(xmlConfiguration))
                {
                    throw (new Exception("File Does Not Exist: " + xmlConfiguration));
                }

                var p = new OfficeInstallMsiGenerator();
                p.Generate(new OfficeInstallProperties()
                {
                    OfficeVersion        = OfficeVersion.Office2016,
                    ConfigurationXmlPath = xmlConfiguration,
                    SourceFilePath       = null
                });
            }
            catch (Exception ex)
            {
                var backColor = Console.BackgroundColor;
                var textColor = Console.ForegroundColor;

                Console.BackgroundColor = ConsoleColor.Red;
                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine("ERROR: " + ex.Message);
                Console.BackgroundColor = backColor;
                Console.ForegroundColor = textColor;
            }
            finally
            {
                Console.WriteLine();
                Console.WriteLine("Done");
                Console.ReadLine();
            }
        }
        public void FilterHandler_Filter_HeadersImmutable()
        {
            var args = new CmdArguments {
                FilePath = @"..\..\..\Files\Data.tsv", SortByDate = true, Project = 2
            };

            var result = FilterHandler.Filter(output, args);

            Assert.AreSame(output.Headers, result.Headers);
        }
Example #7
0
        static public async Task Do(CmdArguments args)
        {
            var client = RegistryManager.CreateFromConnectionString(Settings.Default.ConnectionString);

            foreach (var deviceId in args.Ids)
            {
                await client.RemoveDeviceAsync(deviceId);

                Console.WriteLine($"{deviceId} deleted");
            }
        }
Example #8
0
        public void QuotesTest()
        {
            string strKey   = "file";
            string strValue = "The file to get";

            string[]     strQuotes  = { string.Format("/{0}", strKey), strValue };
            CmdArguments parsedArgs = new CmdArguments(strQuotes);

            Assert.AreEqual(strValue, parsedArgs[strKey]);
            WriteArgument(strKey, strValue);
        }
Example #9
0
        static public async Task Do(CmdArguments args)
        {
            var client = JobClient.CreateFromConnectionString(Settings.Default.ConnectionString);

            foreach (var jobId in args.Names)
            {
                var response = await client.CancelJobAsync(jobId);

                Console.WriteLine($"Job {jobId} status = {response.Status}");
            }
        }
        public void FilterHandler_Filter_FilterSuccess()
        {
            var args = new CmdArguments {
                FilePath = @"..\..\..\Files\Data.tsv", SortByDate = false, Project = 2
            };

            var result = FilterHandler.Filter(output, args);

            Assert.IsTrue(result.Lines.Count == 1);
            Assert.IsTrue(result.Lines.First().Project == 2);
        }
        public void FilterHandler_Filter_FilterAndSortNoEffect()
        {
            var args = new CmdArguments {
                FilePath = @"..\..\..\Files\Data.tsv", SortByDate = false, Project = null
            };

            var result = FilterHandler.Filter(output, args);

            Assert.IsTrue(result.Lines.Count == output.Lines.Count);
            Assert.IsTrue(result.Lines.First().Project == output.Lines.First().Project);
            Assert.IsTrue(result.Lines.Last().Project == output.Lines.Last().Project);
        }
        public static bool onMain(string[] args)
        {
            CmdArguments arguments = args;
            var          log       = arguments.GetAllArgumentsWithName("logIgnore");

            foreach (var logArg in log)
            {
                try
                {
                    Logger.RemoveFlag((Logger.LogLevel)Enum.Parse(typeof(Logger.LogLevel), logArg.ToUpper()));
                }
                catch (Exception e)
                {
                    Logger.Error("Could not do {0}, value {1}: ", "logIgnore", logArg, e);
                }
            }
            log = arguments.GetAllArgumentsWithName("log");
            foreach (var logArg in log)
            {
                try
                {
                    Logger.AddFlag((Logger.LogLevel)Enum.Parse(typeof(Logger.LogLevel), logArg.ToUpper()));
                }
                catch (Exception e)
                {
                    Logger.Error("Could not do {0}, value {1}: ", "log", logArg, e);
                }
            }
            var modDirectory = arguments["modDirectory"];

            if (modDirectory != null)
            {
                Logger.Info("Mod Directory redirected to {0}", modDirectory);
                Manager.ModFolderPath = modDirectory;
            }
            var depDirectory = arguments["depDirectory"];

            if (depDirectory != null)
            {
                Logger.Info("Mod Dependency Directory redirected to {0}", depDirectory);
                Manager.DepFolderPath = depDirectory;
            }
            Logger.Verbose("Initializing Pathfinder");
            Pathfinder.Initialize();
            var startUpEvent = new Event.StartUpEvent(args);

            startUpEvent.CallEvent();
            if (startUpEvent.IsCancelled)
            {
                return(true);
            }
            return(false);
        }
Example #13
0
        public static CmdArguments Parse(string[] args)
        {
            var cmdArguments = new CmdArguments();

            var properties = typeof(CmdArguments)
                             .GetProperties(BindingFlags.Instance | BindingFlags.Public);

            foreach (var property in properties)
            {
                var attribute = property.GetCustomAttribute <FlagAttribute>();
                var flag      = args
                                .Select((arg, index) => new { arg, index })
                                .FirstOrDefault(f => f.arg == attribute.Flag);

                string value = null;

                if (flag == null)
                {
                    if (attribute.IsRequired)
                    {
                        throw new Exception($"The flag {attribute.Flag} is required.");
                    }

                    continue;
                }

                if (property.PropertyType == typeof(bool))
                {
                    property.SetValue(cmdArguments, true);

                    continue;
                }

                value = args.ElementAtOrDefault(flag.index + 1);

                if (value == null)
                {
                    throw new Exception($"No value was provided for the argument flag {attribute.Flag}.");
                }

                try
                {
                    Convertor.ConvertValue(cmdArguments, property, value);
                }
                catch
                {
                    throw new Exception($"The value {value} is not valid for flag {attribute.Flag}.");
                }
            }

            return(cmdArguments);
        }
Example #14
0
        static public async Task Do(CmdArguments args)
        {
            var client = ServiceClient.CreateFromConnectionString(Settings.Default.ConnectionString);

            var deviceId = args.Ids.Single();
            var method   = new CloudToDeviceMethod(args.Names.Single());

            method.SetPayloadJson(args.Values.Single());

            var result = await client.InvokeDeviceMethodAsync(deviceId, method);

            Console.WriteLine($"1 device invoked. Status: {result.Status}, Return: {result.GetPayloadAsJson()}");
        }
Example #15
0
        static public async Task Do(CmdArguments args)
        {
            var client = ServiceClient.CreateFromConnectionString(Settings.Default.ConnectionString);

            var message = new Message(Encoding.UTF8.GetBytes(args.C2DMessage));

            foreach (var deviceId in args.Ids)
            {
                await client.SendAsync(deviceId, message);

                Console.WriteLine($"C2D message {args.C2DMessage} sent to device {deviceId}");
            }
        }
Example #16
0
        static public async Task Do(CmdArguments args)
        {
            var client = RegistryManager.CreateFromConnectionString(Settings.Default.ConnectionString);

            if (args.Ids != null)
            {
                await IoTHubHelper.QueryDevicesByIds(client, args.Ids);
            }
            else
            {
                await IoTHubHelper.QueryDevicesByCondition(client, args.QueryCondition ?? "select * from devices");
            }
        }
Example #17
0
        static public async Task Do(CmdArguments args)
        {
            var client = RegistryManager.CreateFromConnectionString(Settings.Default.ConnectionString);

            var deviceId = args.Ids.Single();

            var twin = new Twin(deviceId);

            twin.Set(args.KVPairs);

            twin = await client.UpdateTwinAsync(deviceId, twin, "*");

            IoTHubHelper.OutputDevice(twin);
            Console.WriteLine("1 device updated");
        }
Example #18
0
        private void TestArguments(string[] strArgs, bool caseSensitive)
        {
            CmdArguments parsed = new CmdArguments(strArgs, caseSensitive);

            Assert.AreEqual(4, parsed.Count);
            Assert.IsFalse(parsed.IsReadOnly);
            var parsedKeys   = parsed.Keys;
            var parsedValues = parsed.Values;

            for (int i = 1; i < 5; i++)
            {
                string key = $"Arg{i}";
                Assert.IsTrue(parsed.ContainsKey(key));                              // Match case
                Assert.AreNotEqual(caseSensitive, parsed.ContainsKey($"arg{i}"));    // Different case

                string strValue    = parsed[key];
                string strExpected = (i == 1) ? string.Empty : $"value{i}";
                Assert.AreEqual(strExpected, strValue);

                Assert.IsTrue(parsedKeys.Contains(caseSensitive ? key : key.ToLower()));
                Assert.IsTrue(parsedValues.Contains(strExpected));

                string tryGet;
                Assert.IsTrue(parsed.TryGetValue(key, out tryGet));
                Assert.AreEqual(strExpected, tryGet);
                WriteArgument(key, strValue);
            }

            if (caseSensitive)
            {
                foreach (KeyValuePair <string, string> pair in parsed)
                {
                    Assert.IsTrue(strArgs.Where(x => x.Contains(pair.Key)).Any());
                    Assert.IsTrue(strArgs.Where(x => x.Contains(pair.Value)).Any());
                }
            }

            KeyValuePair <string, string>[] copyArray = new KeyValuePair <string, string> [parsed.Count];
            parsed.CopyTo(copyArray, 0);
            foreach (var copyItem in copyArray)
            {
                Assert.IsTrue(parsed.Contains(copyItem));
            }

            parsed.Clear();
            Assert.AreEqual(0, parsed.Count);
        }
Example #19
0
        static public async Task Do(CmdArguments args)
        {
            var client    = JobClient.CreateFromConnectionString(Settings.Default.ConnectionString);
            var condition = args.QueryCondition == null ? null : JsonConvert.DeserializeObject <QueryJobSummaryCondition>(args.QueryCondition);

            var query = client.CreateQuery(condition?.Type, condition?.Status);

            while (query.HasMoreResults)
            {
                var result = await query.GetNextAsJsonAsync();

                foreach (var job in result)
                {
                    Console.WriteLine(job);
                    Console.WriteLine();
                }
            }
        }
Example #20
0
        public void KomplexCase()
        {
            var mock = new Mock <IInputManager>();

            mock.Setup(foo => foo.GetAllFilenamesWildcard()).Returns(new List <string>()
            {
                "eins"
            });
            mock.Setup(foo => foo.GetLinesOfContent("eins")).Returns(TestLines());

            CmdArguments cmd = new CmdArguments();

            cmd.StartOfLinePattern = @"^in";
            cmd.SearchPattern      = "zeile";
            cmd.ShowPerformance    = false;

            ParLogLib llib = new ParLogLib(mock.Object, cmd);

            // catch standard output
            using (StringWriter sw = new StringWriter())
            {
                Console.SetOut(sw);
                llib.Parse();

                string expected =
                    @"in erste zeile
in zweite zeile
  multi line 2.5 no key word
in dritte zeile
  mehr zu drei
  noch mehr zu drei
in vierte zeile
  mehr zu zeile 4
in zeile
out zeile
in zeile
out ohne dem wort
in wieder eine zeile
";
                Console.SetOut(new StreamWriter(Console.OpenStandardOutput()));
                Console.WriteLine(sw.ToString());
                Assert.AreEqual(expected, sw.ToString());
            }
        }
Example #21
0
        public void AddRemoveTest()
        {
            // Test an empty command line list - Case Insenstive
            CmdArguments parsed = new CmdArguments(new string[0]);

            parsed.Add(new KeyValuePair <string, string>("Arg1", "Value1"));
            Assert.IsTrue(parsed.ContainsKey("arg1"));
            Assert.IsTrue(parsed.Remove("arg1"));
            Assert.IsFalse(parsed.ContainsKey("arg1"));

            // Test an empty command line list - Case Senstive
            parsed = new CmdArguments(new string[0], true);
            parsed.Add(new KeyValuePair <string, string>("Arg1", "Value1"));
            Assert.IsTrue(parsed.ContainsKey("Arg1"));
            Assert.IsFalse(parsed.ContainsKey("arg1"));
            Assert.IsFalse(parsed.Remove("arg1"));
            Assert.IsTrue(parsed.Remove(new KeyValuePair <string, string>("Arg1", "Value1")));
            Assert.IsFalse(parsed.ContainsKey("Arg1"));
        }
Example #22
0
        static public async Task Do(CmdArguments args)
        {
            var client = RegistryManager.CreateFromConnectionString(Settings.Default.ConnectionString);

            foreach (var deviceId in args.Ids)
            {
                await client.AddDeviceAsync(new Device(deviceId));

                Console.WriteLine($"{deviceId} added");

                if (args.KVPairs != null)
                {
                    var twin = new Twin();
                    twin.Set(args.KVPairs);

                    await client.UpdateTwinAsync(deviceId, twin, "*");
                }
            }

            await IoTHubHelper.QueryDevicesByIds(client, args.Ids);
        }
Example #23
0
        public override int GetHashCode()
        {
            var hashCode = 304851041;

            if (Manufacturer == null)
            {
                hashCode = hashCode * -1521134295;
            }
            else
            {
                hashCode = hashCode * -1521134295 + Manufacturer.GetHashCode();
            }

            if (CmdArguments == null)
            {
                hashCode = hashCode * -1521134295;
            }
            else
            {
                hashCode = hashCode * -1521134295 + CmdArguments.GetHashCode();
            }

            return(hashCode * -1521134295 + FileName.GetHashCode());
        }