public void Handle(IConsoleAdapter console, IErrorAdapter error) { if (string.IsNullOrEmpty(OutputPath)) { error.WrapLine("Please specify an output path.".Red()); Environment.ExitCode = 100; return; } _console = console; _error = error; try { var doc = XDocument.Load(XmlFile); foreach (var element in doc.Root.Elements()) { Extract(element); } } catch (Exception e) { _error.WrapLine("Unable to process file due to error:".Red()); _error.WrapLine(e.ToString().Red()); } }
public void Handle(IConsoleAdapter console, IErrorAdapter error) { //Connect to the local, default instance of SQL Server. var srv = new Server(Server); ReportDatabases(console, srv); var db = srv.Databases.Enumerate().SingleOrDefault(d => d.Name == Database); if (db != null) { if (!Replace && !console.Confirm($"Drop {Database.Yellow()}?".Cyan())) { error.WrapLine($"Database {Database.Yellow()} already exists. Specify -r to replace it.".Red()); Environment.ExitCode = -100; return; } console.WrapLine($"Dropping {Database.Yellow()}".Cyan()); db.Drop(); } console.WrapLine($"Creating {Database.Yellow()}".Cyan()); var database = new Database(srv, Database); database.Create(); var connectionString = $"Server={Server};Database={Database};Trusted_Connection=True;"; var upgradeCommand = UpgradeDb(console, error, connectionString); if (!NoConfig) { GenerateTestingConfig(console, error, connectionString); } }
public void Handle(IConsoleAdapter console, IErrorAdapter error, IMapper mapper) { var ops = new UserOperations("https://senlabltd.eu.auth0.com/api/v2/", ClientId, Secret, mapper); try { console.FormatTable(ops.GetAllUsers().Select(c => new { c.Email, c.UserId })); } catch (AggregateException e) { error.WrapLine($"{e.InnerException.Message.Red()} (Aggregate)"); } catch (Exception e) { error.WrapLine(e.Message.Red()); } }
public void Handle(IConsoleAdapter console, IErrorAdapter error, IMapper mapper) { try { var ops = new UserOperations("https://senlabltd.eu.auth0.com/api/v2/", ClientId, Secret, mapper); var user = ops.AddUser(Email, Password); console.WrapLine($"{user.UserId} created.".Cyan()); } catch (AggregateException e) { error.WrapLine($"Unable to create user {Email} due to error:".Yellow()); error.WrapLine(e.Message.Red()); foreach (var exception in e.InnerExceptions) { error.WrapLine(exception.Message.Red()); } Environment.ExitCode = -100; } catch (Exception e) { error.WrapLine($"Unable to create user {Email} due to error:".Yellow()); error.WrapLine(e.Message.Red()); if (e.InnerException != null) { error.WrapLine(e.InnerException.Message.Red()); } Environment.ExitCode = -100; } }
private void GenerateTestingConfig(IConsoleAdapter console, IErrorAdapter error, string connectionString) { console.WrapLine($"Creating testing configuration file".Cyan()); var(configFile, configError) = TestConfigWriter.Write(connectionString, Server, Database); if (configError == null) { console.WrapLine($"{configFile.Yellow()} created.".Cyan()); } else { error.WrapLine(configError.Red()); return; } }
public void Handle(IConsoleAdapter console, IErrorAdapter error) { var context = TableContextFactory.Get(this, Constants.ActivityTable, true); var query = new TableQuery <DynamicTableEntity>(); var items = context.CreateDynamicQuery(query, e => error.WrapLine($"Unable to complete query due to exception:\r\n{e.Message}")) .Select(a => new { Who = PropertyOrEmptyString(a, "Who"), What = PropertyOrEmptyString(a, "What"), WhenDidItStart = PropertyOrEmptyString(a, "WhenDidItStart"), HowLong = PropertyOrEmptyString(a, "HowLong") }) .ToList(); console.FormatTable(items); }
private void Extract(XElement element) { var entryType = element.Name.LocalName; if (entryType == "directory") { CreateDirectory(element); } else if (entryType == "file") { CreateFile(element); } else { _error.WrapLine($"Unrecognised entry type: {entryType.White()}".Red()); Environment.ExitCode = Math.Min(Environment.ExitCode, 50); } }
public void Handle(IConsoleAdapter console, IErrorAdapter error) { TimeSpan howLong; if (!TimeSpan.TryParse(HowLong, out howLong)) { error.WrapLine("Invalid timespan format."); Environment.ExitCode = -100; return; } var activity = new Activity() { Who = Who, What = What, WhenDidItStart = When, HowLong = howLong, Key = Guid.NewGuid() }; var context = TableContextFactory.Get(this, Constants.ActivityTable, CreateTable); context.UpdateAsync(activity).Wait(); }
public async void Handle(IConsoleAdapter console, IErrorAdapter error) { try { var table = TableContextFactory.Get(this, Constants.TestTable, true); var variables = new[] { "Alpha", "Beta", "Charlie", "Delta", "Echo" }.ToList(); var partition = DateTime.Now.ToString("s"); console.WrapLine($"Partition key = {partition}"); var entities = Enumerable.Range(0, 20) .Select(e => { var item = new TestEntity { Alpha = variables[0], Beta = variables[1], Charlie = variables[2], Delta = variables[3], Echo = variables[4], PartitionKey = partition, RowKey = variables[1] + " " + Guid.NewGuid().ToString() }; var top = variables[0]; variables.RemoveAt(0); variables.Add(top); return(item); }).ToList(); console.WrapLine("Generating entities using batch add..."); foreach (var entity in entities) { table.BatchAdd(entity); } table.BatchExecuteAsync().Wait(); console.WrapLine("Performing batch updates"); table.BatchDelete(entities[5]); entities[7].Alpha = "Updated (Batch)"; table.BatchUpdate(entities[7]); entities[8].Beta = "Updated (Batch)"; table.BatchUpdate(entities[8]); table.BatchExecuteAsync().Wait(); console.WrapLine("Performing individual delete"); table.DeleteAsync(entities[9]).Wait(); console.WrapLine("Retrieving deleted item"); var deletedItem = table.GetAsync <TestEntity>(entities[9].PartitionKey, entities[9].RowKey).Result; if (deletedItem == null) { console.WrapLine("Deleted item not found"); } else { console.WrapLine("Deleted item found".Red()); } console.WrapLine("Performing delete again"); try { table.DeleteAsync(entities[9]).Wait(); } catch { console.WrapLine("Caught exception"); } console.WrapLine("Performing individual update"); entities[10].Beta = "Updated (Individual)"; table.UpdateAsync(entities[10]).Wait(); console.WrapLine("Retrieving test partition:"); var query = new TableQuery <TestEntity>(); query.FilterString = TableQuery.GenerateFilterCondition("PartitionKey", "eq", partition); var items = table.Query(query, e => error.WrapLine($"Unable to complete query due to exception:\r\n{e.Message}")) .Select(i => new { i.Alpha, i.Beta, i.Charlie, i.Delta, i.Echo }) .OrderBy(i => i.Alpha) .ThenBy(i => i.Beta) .ThenBy(i => i.Charlie) .ThenBy(i => i.Delta) .ThenBy(i => i.Echo); console.FormatTable(items); console.WriteLine(); console.WrapLine("Running test query:"); var whereForQuery = $"PartitionKey eq '{partition}' and (Alpha eq 'Delta' or Alpha eq 'Alpha' and Delta eq 'Beta')"; var queryWithWhere = new TableQuery <TestEntity>().Where(whereForQuery); var resultWithWhere = table.Query(queryWithWhere, e => error.WrapLine($"Unable to complete query due to exception:\r\n{e.Message}")) .Select(i => new { i.Alpha, i.Beta, i.Charlie, i.Delta, i.Echo }) .OrderBy(i => i.Alpha) .ThenBy(i => i.Beta) .ThenBy(i => i.Charlie) .ThenBy(i => i.Delta) .ThenBy(i => i.Echo); console.WrapLine(whereForQuery); console.FormatTable(resultWithWhere); console.WriteLine(); console.WrapLine("Dynamic query (same where)"); var dynamicQ = new TableQuery <DynamicTableEntity> { SelectColumns = new List <string> { "Alpha", "Charlie" } }; var dynamicItems = table.CreateDynamicQuery(dynamicQ.Where(whereForQuery), e => error.WrapLine($"Unable to complete query due to exception:\r\n{e.Message}")) .Select(a => new { Alpha = a.Properties["Alpha"].StringValue, Charlie = a.Properties["Charlie"].StringValue, }) .OrderBy(i => i.Alpha) .ThenBy(i => i.Charlie) .ToList(); console.FormatTable(dynamicItems); console.WrapLine("Done"); } catch (Exception e) { error.WrapLine(e.ToString().Red()); throw; } }
public static void Handler(IConsoleAdapter console, IErrorAdapter error, Exception exception, object command) { error.WrapLine("Processing halted due to exception:"); error.WrapLine(exception.Message); }