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();
        }
示例#2
0
        /// <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 }));
        }
示例#6
0
 public DataController(MonitoringDbContext context)
 {
     _context = context;
 }
 public Repository(MonitoringDbContext context)
 {
     Context = context;
 }
示例#8
0
 public AccountRepository(MonitoringDbContext context) : base(context)
 {
 }
 public QueueGroupRepository(MonitoringDbContext context) : base(context)
 {
 }
示例#10
0
 public MonitorDataRepository(MonitoringDbContext context) : base(context)
 {
 }
示例#11
0
 public MonitoringManager()
 {
     System.Data.Entity.Database.SetInitializer(new MonitoringDbInitializer());
     context = new MonitoringDbContext();
 }