public void UpdateTableWithRandomData() { var opsions = new DbContextOptionsBuilder <MonitoringDbContext>().UseInMemoryDatabase(databaseName: "CCCMonitoring").Options; MonitoringDbContext monitoringDbContext = new MonitoringDbContext(opsions); var queueGroups = monitoringDbContext.QueueGroup.ToList(); foreach (var queueGroup in queueGroups) { Random random = new Random(); queueGroup.SLA_Percent = random.Next(Constants.MinValueSLA_Percent, Constants.MaxValueSLA_Percent); } monitoringDbContext.QueueGroup.UpdateRange(queueGroups); var monitorDatas = monitoringDbContext.MonitorData.ToList(); foreach (var monitorData in monitorDatas) { Random random = new Random(); monitorData.HandledWithinSL = random.Next(Constants.MinValueSHandledWithinSL, Constants.MaxValueHandledWithinSL); monitorData.Offered = random.Next(Constants.MinValueOffered, Constants.MaxValueOffered); } monitoringDbContext.MonitorData.UpdateRange(monitorDatas); monitoringDbContext.SaveChanges(); }
/// <summary> /// Runs the timer trigger function. /// </summary> /// <param name="myTimer"><see cref="TimerInfo"/> instance.</param> /// <param name="log"><see cref="TraceWriter"/> instance.</param> public static async void Run(TimerInfo myTimer, TraceWriter log) { log.Info($"C# Timer trigger function executed at: {DateTime.Now}"); var connString = ConfigurationManager.ConnectionStrings["MonitoringDbContext"].ConnectionString; var settings = CostMonitoringSettings.CreateInstance(); var options = settings.Arguments; var dbContext = new MonitoringDbContext(connString); var auth = new AzureAuthenticationHelperWrapper(); var billing = new AzureBillingApiClientHelper(settings); var httpClient = new HttpClientHelper(); var aggregator = new CostAggregationService(settings, dbContext, auth, billing, httpClient); if (options.RunEntirePeriod) { var monthsBack = 0; var result = 1; while (result > 0) { result = await ProcessAggregatorAsync(aggregator, log, monthsBack : monthsBack).ConfigureAwait(false); monthsBack++; } } else { var result = await ProcessAggregatorAsync(aggregator, log, options : options).ConfigureAwait(false); } var reminder = new CostReminderService(settings, dbContext); var owners = await ProcessReminderAsync(reminder, log, options).ConfigureAwait(false); }
public static void Main(string[] args) { var options = new ArgumentOptions(); Parser.Default.ParseArguments(args, options); var settings = CostMonitoringSettings.CreateInstance(); var dbContext = new MonitoringDbContext(); var auth = new AzureAuthenticationHelperWrapper(); var billing = new AzureBillingApiClientHelper(settings); var httpClient = new HttpClientHelper(); var service = new CostAggregationService(settings, dbContext, auth, billing, httpClient); Console.WriteLine("Azure Resources Usage Cost Aggregator"); Console.WriteLine("-------------------------------------"); Console.WriteLine(); if (!options.RunEntirePeriod) { var result = ProcessAsync(service, options: options).Result; } else { var monthsBack = 0; var result = 1; while (result > 0) { result = ProcessAsync(service, monthsBack: monthsBack).Result; monthsBack++; } } }
public static void Main(string[] args) { var options = new ArgumentOptions(); Parser.Default.ParseArguments(args, options); var settings = CostMonitoringSettings.CreateInstance(); var dbContext = new MonitoringDbContext(); var service = new CostReminderService(settings, dbContext); Console.WriteLine("Azure Resources Usage Reminder"); Console.WriteLine("------------------------------"); Console.WriteLine(); var result = ProcessAsync(service, options).Result; }
/// <summary> /// Runs the HTTP trigger function. /// </summary> /// <param name="req"><see cref="HttpRequestMessage"/> instance.</param> /// <param name="log"><see cref="TraceWriter"/> instance.</param> /// <returns>Returns the <see cref="HttpResponseMessage"/> instance.</returns> public static async Task <HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log) { log.Info("C# HTTP trigger function processed a request."); var options = await req.Content.ReadAsAsync <ArgumentOptions>().ConfigureAwait(false); var connString = ConfigurationManager.ConnectionStrings["MonitoringDbContext"].ConnectionString; var settings = CostMonitoringSettings.CreateInstance(); if (options == null) { options = settings.Arguments; } var dbContext = new MonitoringDbContext(connString); var auth = new AzureAuthenticationHelperWrapper(); var billing = new AzureBillingApiClientHelper(settings); var httpClient = new HttpClientHelper(); var aggregator = new CostAggregationService(settings, dbContext, auth, billing, httpClient); var result = 0; if (!options.RunEntirePeriod) { result = await ProcessAggregatorAsync(aggregator, log, options : options).ConfigureAwait(false); } else { var monthsBack = 0; result = 1; while (result > 0) { result = await ProcessAggregatorAsync(aggregator, log, monthsBack : monthsBack).ConfigureAwait(false); monthsBack++; } } var reminder = new CostReminderService(settings, dbContext); var owners = await ProcessReminderAsync(reminder, log, options).ConfigureAwait(false); return(req.CreateResponse(HttpStatusCode.OK, new { Processed = result, Owners = owners })); }
public DataController(MonitoringDbContext context) { _context = context; }
public Repository(MonitoringDbContext context) { Context = context; }
public AccountRepository(MonitoringDbContext context) : base(context) { }
public QueueGroupRepository(MonitoringDbContext context) : base(context) { }
public MonitorDataRepository(MonitoringDbContext context) : base(context) { }
public MonitoringManager() { System.Data.Entity.Database.SetInitializer(new MonitoringDbInitializer()); context = new MonitoringDbContext(); }