public async void TransferFile() { AutoFacContainer autoFacContainer = new AutoFacContainer(); autoFacContainer.RegisterOptions <AWSS3Options>(); autoFacContainer.RegisterOptions <SshOptions>(); autoFacContainer.ContainerBuilder.RegisterModule <DataTransferCoreModule>(); var services = autoFacContainer.ContainerBuilder.Build(); var dataTransfer = services.Resolve <DataTransferCore>(); var filename = await dataTransfer.Transfer(); }
protected override void OnStartup(StartupEventArgs e) { var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); AutoFacContainer autoFacContainer = new AutoFacContainer(environment); autoFacContainer.RegisterOptions <AWSAthenaOptions>(); autoFacContainer.RegisterOptions <AWSS3Options>(); autoFacContainer.RegisterOptions <AthenaClientOptions>(); autoFacContainer.ContainerBuilder.RegisterModule <AWSAthenaModule>(); autoFacContainer.ContainerBuilder.RegisterModule <AWSS3Module>(); Services = autoFacContainer.ContainerBuilder.Build(); base.OnStartup(e); }
/// <summary> /// A simple function that takes a string and does a ToUpper /// </summary> /// <param name="input"></param> /// <param name="context"></param> /// <returns></returns> public async Task <string> FunctionHandler(string input, ILambdaContext context) { AutoFacContainer autoFacContainer = new AutoFacContainer(); autoFacContainer.RegisterOptions <AWSS3Options>(); autoFacContainer.RegisterOptions <SshOptions>(); autoFacContainer.ContainerBuilder.RegisterModule <DataTransferCoreModule>(); var services = autoFacContainer.ContainerBuilder.Build(); var dataTransfer = services.Resolve <DataTransferCore>(); var filename = await dataTransfer.Transfer(); return(filename == null ? "No File Transferred." : $"File {filename} Transferred."); }
public void SetupAndInsertObject() { AutoFacContainer container = new AutoFacContainer(); container.RegisterOptions <PostgreSQLEFOptions>(); container.ContainerBuilder.Register(context => { var options = context.Resolve <PostgreSQLEFOptions>(); var builder = new DbContextOptionsBuilder <CodeFirstContext>(); builder.UseNpgsql(options.ConnectionString); return(builder.Options); }); container.ContainerBuilder.RegisterType <CodeFirstContext>(); var serivcesContainer = container.ContainerBuilder.Build(); using (CodeFirstContext context = serivcesContainer.Resolve <CodeFirstContext>()) { context.Database.EnsureCreated(); context.Users.Add(new User() { Name = "Tom", YearBirth = 2001, IsMale = true }); context.SaveChanges(); } }
public async void SendMessageToSQS() { AutoFacContainer autoFacContainer = new AutoFacContainer("dev"); autoFacContainer.RegisterOptions <AWSSQSOptions>(); autoFacContainer.ContainerBuilder.RegisterModule <AWSSQSModule>(); var services = autoFacContainer.ContainerBuilder.Build(); var awsSQSAPI = services.Resolve <AWSSQSAPI>(); JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings() { Converters = { new StringEnumConverter() } }; for (int i = 0; i < 100; i++) { await awsSQSAPI.SendMessage(JsonConvert.SerializeObject(new CustomizedMessage() { Type = MessageTypeEnum.Promotional, CustomerName = $"John Smith #{i}", Value = "hello!" }, jsonSerializerSettings)); } }
public void DownloadFile() { AutoFacContainer container = new AutoFacContainer(); container.RegisterOptions <SshOptions>(); container.ContainerBuilder.RegisterModule <SshModule>(); var servicesContainer = container.ContainerBuilder.Build(); using (var client = servicesContainer.Resolve <SftpClient>()) { client.Connect(); using (FileStream fs = new FileStream($"{AppContext.BaseDirectory}/downloaded.zip", FileMode.OpenOrCreate)) { client.DownloadFile("./4117.zip", fs); } using (MemoryStream ms = new MemoryStream()) { client.DownloadFile("./test2.txt", ms); var text = Encoding.UTF8.GetString(ms.ToArray()); Debugger.Break(); } client.Disconnect(); } }
private IContainer BuildContainer(string environment) { AutoFacContainer autoFacContainer = new AutoFacContainer(environment); autoFacContainer.RegisterOptions <MongoOptions>(); autoFacContainer.ContainerBuilder.RegisterModule <MongoModule>(); return(autoFacContainer.ContainerBuilder.Build()); }
public PostgresSQLDataContext CreateDbContext(string[] args) { AutoFacContainer autoFacContainer = new AutoFacContainer(); autoFacContainer.RegisterOptions <PostgresSQLOptions>(); autoFacContainer.ContainerBuilder.RegisterModule <PostgresSQLModule>(); var services = autoFacContainer.ContainerBuilder.Build(); return(services.Resolve <PostgresSQLDataContext>()); }
public async void DeleteAzureBlobStorageFile(string filename, string blobContainer) { AutoFacContainer container = new AutoFacContainer(); container.RegisterOptions <AzureBlobStorageOptions>(); container.ContainerBuilder.RegisterModule <AzureBlobStorageModule>(); var servicesContainer = container.ContainerBuilder.Build(); var api = servicesContainer.Resolve <AzureBlobStorageAPI>(); await api.Delete(filename, blobContainer); }
public async void DeleteS3Bucket(string bucket) { AutoFacContainer container = new AutoFacContainer(); container.RegisterOptions <AWSS3Options>(); container.ContainerBuilder.RegisterModule <AWSS3Module>(); var servicesContainer = container.ContainerBuilder.Build(); var api = servicesContainer.Resolve <AWSS3API>(); await api.DeleteBucket(bucket); }
public void Test1() { AutoFacContainer container = new AutoFacContainer(); container.RegisterOptions <SshOptions>(); container.ContainerBuilder.RegisterModule <SshModule>(); var services = container.ContainerBuilder.Build(); var sftpClient = services.Resolve <SftpClient>(); sftpClient.Connect(); Random rnd = new Random((int)(DateTime.Now - new DateTime(2018, 1, 1)).TotalMilliseconds); TRandom random = new TRandom(); for (int i = 51; i < 53; i++) { var sales = new List <SaleRecord>(); for (int j = 0; j < 50000; j++) { SaleRecord saleRecord = new SaleRecord() { StoreNo = rnd.Next(99999).ToString().PadLeft(5, '0'), HourOfDay = rnd.Next(24), MinuteOfHour = rnd.Next(60), NumberApple = random.Poisson(12), NumberOfBanana = random.Poisson(5), NumberOfBeer = random.Poisson(4), NumberOfChicken = random.Poisson(8), TimeStamp = DateTime.Now.AddSeconds(-rnd.Next(365 * 24 * 3600)) }; saleRecord.TotalValueEclGST = saleRecord.NumberApple * 4 + saleRecord.NumberOfBanana * 8 + saleRecord.NumberOfBeer * 5 + saleRecord.NumberOfChicken * 6; sales.Add(saleRecord); } using (MemoryStream stream = new MemoryStream()) { stream.WriteCsv(sales); using (MemoryStream upload = new MemoryStream(stream.ToArray())) { sftpClient.UploadFile(upload, $"/root/{i.ToString().PadLeft(3,'0')}.csv"); } } } sftpClient.Disconnect(); sftpClient.Dispose(); }
static void Main(string[] args) { Console.WriteLine("Execute AWS EC2 Job!"); AutoFacContainer autoFacContainer = new AutoFacContainer(); autoFacContainer.RegisterOptions <AWSEC2Options>(); autoFacContainer.ContainerBuilder.RegisterModule <AWSEC2Module>(); var services = autoFacContainer.ContainerBuilder.Build(); var api = services.Resolve <AWSEC2API>(); api.ExecuteJob().Wait(); }
public void ExecuteCommand(string command) { AutoFacContainer container = new AutoFacContainer(); container.RegisterOptions<SshOptions>(); container.ContainerBuilder.RegisterModule<SshModule>(); var servicesContainer = container.ContainerBuilder.Build(); using (var client = servicesContainer.Resolve<SshClient>()) { client.Connect(); var result = client.CreateCommand(command).Execute(); Debugger.Break(); client.Disconnect(); } }
public async void WriteStringToS3Bucket(string key, string bucket) { AutoFacContainer container = new AutoFacContainer(); container.RegisterOptions <AWSS3Options>(); container.ContainerBuilder.RegisterModule <AWSS3Module>(); var servicesContainer = container.ContainerBuilder.Build(); var api = servicesContainer.Resolve <AWSS3API>(); await api.UploadAsJson(key, new { Name = "Jack", Value = "First" }, bucket); }
public void DeleteAFile(string filename) { AutoFacContainer container = new AutoFacContainer(); container.RegisterOptions<SshOptions>(); container.ContainerBuilder.RegisterModule<SshModule>(); var servicesContainer = container.ContainerBuilder.Build(); using (var client = servicesContainer.Resolve<SftpClient>()) { client.Connect(); client.DeleteFile(filename); Debugger.Break(); client.Disconnect(); } }
public async void CreateAzureBlobStorageFile(string filename, string blobContainer) { AutoFacContainer container = new AutoFacContainer(); container.RegisterOptions <AzureBlobStorageOptions>(); container.ContainerBuilder.RegisterModule <AzureBlobStorageModule>(); var servicesContainer = container.ContainerBuilder.Build(); var api = servicesContainer.Resolve <AzureBlobStorageAPI>(); await api.UploadAsJson(filename, new { Name = "Jack", Value = "Test" }, blobContainer); }
public static AutoFacContainer Setup(this AutoFacContainer autoFacContainer) { autoFacContainer.RegisterOptions <SshOptions>(); autoFacContainer.RegisterOptions <AWSS3Options>(); autoFacContainer.RegisterOptions <AzureBlobStorageOptions>(); autoFacContainer.RegisterOptions <AzureTableStorageOptions>(); autoFacContainer.RegisterOptions <AWSDynamoDBOptions>(); autoFacContainer.RegisterOptions <AWSAthenaOptions>(); autoFacContainer.RegisterOptions <AthenaOptions>(); autoFacContainer.ContainerBuilder.RegisterModule <VsExamplesAthenaModule>(); autoFacContainer.ContainerBuilder.RegisterModule <AzureBlobStorageModule>(); autoFacContainer.ContainerBuilder.RegisterModule <AzureTableStorageModule>(); autoFacContainer.ContainerBuilder.RegisterModule <AWSDynamoDBModule>(); return(autoFacContainer); }
public void UploadStringAsFile(string content) { AutoFacContainer container = new AutoFacContainer(); container.RegisterOptions<SshOptions>(); container.ContainerBuilder.RegisterModule<SshModule>(); var servicesContainer = container.ContainerBuilder.Build(); using (var client = servicesContainer.Resolve<SftpClient>()) { client.Connect(); using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(content))) { client.UploadFile(stream, "./test2.txt"); Debugger.Break(); } client.Disconnect(); } }
public void QueryObject() { AutoFacContainer container = new AutoFacContainer(); container.RegisterOptions <PostgreSQLEFOptions>(); container.ContainerBuilder.Register(context => { var options = context.Resolve <PostgreSQLEFOptions>(); var builder = new DbContextOptionsBuilder <CodeFirstContext>(); builder.UseNpgsql(options.ConnectionString); return(builder.Options); }); container.ContainerBuilder.RegisterType <CodeFirstContext>(); var serivcesContainer = container.ContainerBuilder.Build(); using (CodeFirstContext context = serivcesContainer.Resolve <CodeFirstContext>()) { context.Database.EnsureCreated(); // select * from "Users" where IsMale = true and Age > 80 var users = context.Users //.Where(u => u.IsMale == true && u.YearBirth > 2005) //.GroupBy(u => u.YearBirth) .ToList(); var cars = context.Cars.ToList(); var avgCarYear = users//.AsParallel() .Select(user => cars.Where(car => car.Year == user.YearBirth && car.Id % 2 == 1)) .Aggregate(new List <Car>(), (seed, _cars) => { seed.AddRange(_cars); return(seed); }) .Average(car => car.Year); Debugger.Break(); context.SaveChanges(); } }
public void InsertRandomUsers() { AutoFacContainer container = new AutoFacContainer(); container.RegisterOptions <PostgreSQLEFOptions>(); container.ContainerBuilder.Register(context => { var options = context.Resolve <PostgreSQLEFOptions>(); var builder = new DbContextOptionsBuilder <CodeFirstContext>(); builder.UseNpgsql(options.ConnectionString); return(builder.Options); }); container.ContainerBuilder.RegisterType <CodeFirstContext>(); var serivcesContainer = container.ContainerBuilder.Build(); using (CodeFirstContext context = serivcesContainer.Resolve <CodeFirstContext>()) { context.Database.EnsureCreated(); Random rnd = new Random(DateTime.Now.Millisecond); for (int i = 0; i < 100; i++) { context.Users.Add(new User() { Name = $"User {i}", YearBirth = (int)(1985 + rnd.NextDouble() * 30), IsMale = rnd.NextDouble() > 0.5d }); context.Cars.Add(new Car() { Year = (int)(1985 + rnd.NextDouble() * 30), Made = rnd.NextDouble() > 5d ? "Toyota":"BMW" }); } context.SaveChanges(); } }
// This method gets called by the runtime. Use this method to add services to the container. public IServiceProvider ConfigureServices(IServiceCollection services) { logger.Information($"{nameof(ConfigureServices)} Start"); var environment = Environment.GetEnvironmentVariable(Program.ASPNETCORE_ENVIRONMENT); logger.Information($"AutoFacContainer Environment: {environment}"); logger.Information($"AutoFacContainer Current Path: {AppContext.BaseDirectory}"); AutoFacContainer autoFacContainer = new AutoFacContainer(environment); autoFacContainer.RegisterOptions <AuthOptions>(); autoFacContainer.RegisterOptions <JwtSecretOptions>(); autoFacContainer.ContainerBuilder.RegisterModule <JwtModule>(); autoFacContainer.RegisterOptions <MySQLOptions>(); autoFacContainer.ContainerBuilder.RegisterModule <MySQLDataModule>(); autoFacContainer.RegisterOptions <PostgresSQLOptions>(); autoFacContainer.ContainerBuilder.RegisterModule <PostgresSQLModule>(); autoFacContainer.RegisterOptions <SQLServerOptions>(); autoFacContainer.ContainerBuilder.RegisterModule <SQLServerModule>(); autoFacContainer.RegisterOptions <MongoOptions>(); autoFacContainer.ContainerBuilder.RegisterModule <MongoModule>(); autoFacContainer.ContainerBuilder.RegisterInstance(Program.GetLogger()); autoFacContainer.ContainerBuilder.Register(context => { var httpContextAccessor = context.Resolve <IHttpContextAccessor>(); return(httpContextAccessor.HttpContext.Request.ReadJWTCookie()); }); services.TryAddSingleton <IHttpContextAccessor, HttpContextAccessor>(); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); services.AddCors(options => options.AddPolicy(CorsPolicy, builder => builder.SetIsOriginAllowed(url => true) .AllowAnyHeader() .AllowCredentials() .AllowAnyMethod() )); services.AddSwaggerGen( setup => setup.SwaggerDoc(SwaggerApiName, new Info { Version = "1", Title = "VsExampeles API", Description = "VsExampeles API", TermsOfService = "N/A" }) ); services.AddMvc().AddJsonOptions(json => { json.SerializerSettings.Error = OnJsonError; json.SerializerSettings.ContractResolver = new DefaultContractResolver(); json.SerializerSettings.Converters.Add(new StringEnumConverter()); }); autoFacContainer.ContainerBuilder.Populate(services); ApplicationContainer = autoFacContainer.ContainerBuilder.Build(); logger.Information($"{nameof(ConfigureServices)} End"); return(new AutofacServiceProvider(ApplicationContainer)); }
static void Main(string[] args) { var DotNetLog = args.GetParameter("--dot-net-log"); if (DotNetLog == null) { DotNetLog = Environment.GetEnvironmentVariable("DOTNETLOG"); } AutoFacContainer autoFacContainer = new AutoFacContainer(DotNetLog); autoFacContainer.RegisterOptions <LogWrapperOptions>(); var services = autoFacContainer.ContainerBuilder.Build(); var options = services.Resolve <LogWrapperOptions>(); MongoContext mongoContext = new MongoContext(new MongoOptions() { Url = options.MongoDBUrl, SslProtocol = options.SslProtocol, Database = options.Database }); var collectionName = options.CollectionName; var useTime = args.HasParameter("--use-time"); var useGuid = args.HasParameter("--use-guid"); if (useTime) { collectionName += $"_{DateTime.UtcNow.ToString("yyyyMMddHHmmss")}"; } if (useGuid) { collectionName += $"_{Guid.NewGuid().ToString().Replace("-", "")}"; } if (!mongoContext.ListCollections().Any(name => name == collectionName)) { if (options.Capped) { mongoContext.MongoDatabase.CreateCollection(collectionName, new CreateCollectionOptions() { Capped = true, MaxDocuments = options.MaxDocuments, MaxSize = options.MaxSize }); } else { mongoContext.MongoDatabase.CreateCollection(collectionName); } } IMongoCollection <LogMessage> collectionLogMessage = mongoContext.MongoDatabase.GetCollection <LogMessage>(collectionName); collectionLogMessage.InsertOne(new LogMessage() { Timestamp = DateTime.UtcNow, LogLevel = "Wrap", Message = $"Process Start: {options.Command} {(options.Arguments == null ? "" : string.Join(" ", options.Arguments))}" }); ProcessExecutor processExecutor = new ProcessExecutor(options.Command); processExecutor.AddArguments(options.Arguments); processExecutor.StandardOutput .Where(value => !string.IsNullOrWhiteSpace(value)) .Subscribe( line => { Console.WriteLine(line); InsertLog(collectionLogMessage, "Log", line); }); processExecutor.StandardError .Where(value => !string.IsNullOrWhiteSpace(value)) .Subscribe( line => { Console.Error.WriteLine(line); InsertLog(collectionLogMessage, "Error", line); }); processExecutor.Execute(); processExecutor.Dispose(); collectionLogMessage.InsertOne(new LogMessage() { Timestamp = DateTime.UtcNow, LogLevel = "Wrap", Message = $"Process End: {options.Command} {(options.Arguments == null ? "" : string.Join(" ", options.Arguments))}" }); Thread.Sleep(2000); }