public void SaveMediaServiceAccountToSingleDeploymentTest()
        {
            //
            var deploymentToTest = App.Config.Content.ContentProviders[0].MediaServicesSets[1].DataStorageConnections[0];

            MediaServicesAccount acct = new MediaServicesAccount
            {
                AccountName      = App.Config.Content.ContentProviders[0].MediaServicesSets[1].DataStorageConnections[0].AcctName,
                Location         = "US West",
                SubscriptionName = "AMSLiveStream",
                AccountCreated   = DateTime.Now
            };

            _dataAccess = new AzureDataAccess(App.Config.Content.ContentProviders[0].MediaServicesSets[1].DataStorageConnections);
            try
            {
                var acctList = _dataAccess.SaveMediaServiceAccount(acct, deploymentToTest);//, true);

                Assert.IsTrue((acctList != null), "Data Connection / Configuration Error");
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.Message, ex);
            }
        }
        public void SaveMediaServiceAccountToMultipleDeploymentTest()
        {
            string deploymentToTest = string.Empty;

            _dataAccess = new AzureDataAccess(App.Config.Content.ContentProviders[0].MediaServicesSets[1].DataStorageConnections);
            var     acct      = App.Config.Content.ContentProviders[0].MediaServicesSets[1].MediaServicesAccounts[0];
            decimal acctCount = (decimal)_dataAccess.GetAccounts().Distinct().Count();

            //MediaServicesAccount acct = new MediaServicesAccount
            //{
            //    AccountName = App.Config.Content.ContentProviders[0].MediaServicesSets[1].DataStorageConnections[0].AcctName,
            //    Location = "US West",
            //    SubscriptionName = "AMSLiveStream",
            //    AccountCreated = DateTime.Now
            //};
            try
            {
                var acctListCount = _dataAccess.SaveMediaServiceAccount(acct);//, true);

                Assert.IsTrue((acctListCount != 0), "Data Connection / Configuration Error");
                Assert.GreaterOrEqual(acctListCount, acctCount);
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.Message, ex);
            }
        }
        protected override async void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            //any preprocessing before displaying main app screen put here
            azureDataAccess = new AzureDataAccess();
            azureDataAccess.loadUserFromCache();

            //switch from splash to our main view once done loading
            SetContentView(Resource.Layout.Main);

            //initialize action bar
            initActionBar();

            findViews();
            handleEvents();

            //retreive schools from DB and display them
            schools = await azureDataAccess.getSchools();

            //update list view with data
            displayAvailableSchools(schools);

            //hide loading spinner
            spinner.Visibility = Android.Views.ViewStates.Gone;
        }
Beispiel #4
0
        private IEnumerable <MetricAlert> Get(MediaServicesSetConfig config, string channelId, AlertsQuery query)
        {
            var chid          = channelId.NimbusIdToGuid();
            var channelAlerts = GetAlertsFromCache <ChannelAlert>(chid.ToString());

            if (channelAlerts == null)
            {
                var dataAccess = new AzureDataAccess(config.DataStorageConnections);
                channelAlerts = dataAccess.GetChannelAlerts(chid.ToString(), query.StatusLevels, query.MetricTypes);
            }


            IEnumerable <MetricAlert> alerts = null;

            if (channelAlerts != null)
            {
                alerts = channelAlerts.Select(chAlt => new MetricAlert
                {
                    AlertID     = chAlt.AlertID,
                    Name        = chAlt.ChannelName,
                    Date        = chAlt.AlertDate.AddTicks(chAlt.AlertTime.Ticks),
                    Description = chAlt.Details,
                    Status      = chAlt.ErrorLevel
                });
            }
            return(alerts);
        }
        private void GetCustomer(Customer customer, MediaServicesSetConfig mediaServicesSet)
        {
            var dataAccess = new AzureDataAccess(mediaServicesSet.DataStorageConnections);

            customer.Accounts = mediaServicesSet.MediaServicesAccounts.Select((mediaServicesAccount, index) =>
            {
                var account = GetMediaAccountFromCache(customer, mediaServicesAccount);
                if (account == null)
                {
                    if (index == 0)
                    {
                        FillCustomerDetails(customer, mediaServicesAccount);
                    }
                    // TODO: this logic is wrong and needs to be replaced.
                    var globalAerts = dataAccess.GetAccountGlobalAlerts(mediaServicesAccount.AccountName);
                    return(new MediaService
                    {
                        Id = mediaServicesAccount.Id,
                        Name = mediaServicesAccount.AccountName,
                        Datacenter = mediaServicesAccount.MetaData.Location,
                        Health = GetMaxLevel(globalAerts),
                    });
                }
                return(account);
            }).ToList();
            customer.Health = customer.Accounts.Max(m => m.Health);
        }
        internal IEnumerable <MetricAlert> Get(MediaServicesSetConfig config, string originId, AlertsQuery query)
        {
            var endTime   = DateTime.UtcNow;
            var startTime = endTime.AddHours(-1);

            HealthStatus[] healthLevels = null;

            if (query != null)
            {
                if (query.StartTime != default(DateTime))
                {
                    startTime = query.StartTime.ToUniversalTime();
                }
                if (query.EndTime != default(DateTime))
                {
                    endTime = query.EndTime.ToUniversalTime();
                }
                if (endTime <= startTime)
                {
                    throw new HttpResponseException(System.Net.HttpStatusCode.BadRequest);
                }
                healthLevels = query.StatusLevels;
            }

            var origId      = originId.GuidToOriginId();
            var alertstring = CloudCache.Get(origId + "Alerts");
            List <OriginAlert> alerts;

            if (alertstring != null)
            {
                alerts = JsonConvert.DeserializeObject <List <OriginAlert> >(alertstring);
            }
            else
            {
                var dataAccess = new AzureDataAccess(config.DataStorageConnections);
                alerts = dataAccess.ExecuteReadQuery(context =>
                {
                    var dbAlerts = context.OriginAlerts.Where(alert =>
                                                              alert.OriginId == originId &&
                                                              alert.Timestamp >= startTime &&
                                                              alert.Timestamp <= endTime);

                    if (healthLevels != null)
                    {
                        var predicate = CreatePredicate(healthLevels, "ErrorLevel");
                        dbAlerts      = dbAlerts.Where(predicate);
                    }
                    return(dbAlerts.ToList());
                });
            }

            return(alerts.Select(alert => new MetricAlert
            {
                Name = alert.OriginId,
                Date = alert.Timestamp,
                Description = alert.Details,
                Status = alert.ErrorLevel
            }).OrderByDescending(alt => alt.Date));
        }
        public void GetDistinctDataCenterConnectionsFromMultipleConnectionsTest()
        {
            var dbCfg = App.Config.Content.ContentProviders[0].MediaServicesSets[1].DataStorageConnections[1];

            _dataAccess = new AzureDataAccess(App.Config.Content.ContentProviders[0].MediaServicesSets[1].DataStorageConnections);
            string dbName = dbCfg.InitialCatalog;
            var    found  = _dataAccess.Connections.Where(cn => cn.StoreConnection.Database == dbName).FirstOrDefault();

            Assert.IsTrue((found != null), "Connection not found for this Account Name");
        }
 public void GetChannelAlertsByAccountIDTest()
 {
     _dataAccess = new AzureDataAccess(App.Config.Content.ContentProviders[0].MediaServicesSets[0].DataStorageConnections);
     try
     {
         var alerts = _dataAccess.GetChannelAlerts(1);
         Assert.IsNotNull(alerts, "Data Problem found");
     }
     catch (Exception ex)
     {
         Assert.Fail(ex.Message, ex);
     }
 }
        public void GetSingleEntityConnectionTest()
        {
            _dataAccess = new AzureDataAccess(App.Config.Content.ContentProviders[0].MediaServicesSets[0].DataStorageConnections);
            try
            {
                Assert.IsTrue(_dataAccess != null);
                Assert.IsTrue(_dataAccess.Connections.Count > 0);

                AMSDashboardEntities1 data = new AMSDashboardEntities1(_dataAccess.Connections[0].ConnectionString);
                Assert.IsTrue((data.Configuration != null), "Data Configuration Problem");
            }
            catch (EntityException dataEx)
            {
                Assert.Fail(dataEx.Message, dataEx);
            }
        }
        public ControllerBase()
        {
            /* This is what pulls the configuration information (including info for the data connections) from the .json config file.
             * I placed it here becasue each controller is going to need it's own connection to the database(s) that it responds to,
             * AND I am not changing the current schema at this point in time.
             */
            DataAccess = new AzureDataAccess(App.Config.Content.ContentProviders[0].MediaServicesSets[0].DataStorageConnections);

            MediaServiceName = App.Config.Content.ContentProviders[0].MediaServicesSets[0].MediaServicesAccounts[0].AccountName;
            MediaServiceKey  = App.Config.Content.ContentProviders[0].MediaServicesSets[0].MediaServicesAccounts[0].AccountKey;

            var mediaServiceCreds = new MediaServicesCredentials(_mediaServiceName, _mediaServiceKey);

            MSCloudContext = new CloudMediaContext(mediaServiceCreds);
            //CloudContext.
        }
 public void GetMediaServiceAccountsTest()
 {
     try
     {
         _dataAccess = new AzureDataAccess(App.Config.Content.ContentProviders[0].MediaServicesSets[1].DataStorageConnections);
         var result = _dataAccess.GetAccounts();
         Assert.IsTrue((result.Count() > 0), "Data Connection Configuration Problem");
     }
     catch (EntityException dataEx)
     {
         Assert.Fail(dataEx.Message, dataEx);
     }
     catch (Exception ex)
     {
         Assert.Fail(ex.Message, ex);
     }
 }
        public void GetMediaChannelsByDeploymentNameTest()
        {
            var    dbCfg    = App.Config.Content.ContentProviders[0].MediaServicesSets[1].DataStorageConnections;
            string acctName = App.Config.Content.ContentProviders[0].MediaServicesSets[1].MediaServicesAccounts[0].AccountName;

            _dataAccess = new AzureDataAccess(dbCfg);

            IEnumerable results = _dataAccess.GetChannels(acctName);

            Assert.IsNotNull(results, "Data Access Problem");
            try
            {
                Assert.IsNotEmpty(results);
            }
            catch
            {
                Assert.Inconclusive("An Empty result set is a valid response", results);
            }
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);


            //any preprocessing before displaying main app screen put here
            azureDataAccess = new AzureDataAccess();
            azureDataAccess.loadUserFromCache();

            SetContentView(Resource.Layout.AddReviewView);


            initActionBar();

            getViews();
            classID = base.Intent.GetIntExtra("classID", -1);
            setViews(classID);
            handleEvents();
            authenticateUser();
        }
Beispiel #14
0
        public async Task <IActionResult> UploadFile(IFormFile file)
        {
            if (file == null || file.Length == 0)
            {
                ViewBag.Message = "Vinsamlegast veldu skjal til að hlaða upp";
            }
            else
            {
                var isSuccessful = await AzureDataAccess.UploadFile(file);

                if (isSuccessful)
                {
                    ViewBag.Message = "Skjali hlaðið upp";
                }
                else
                {
                    ViewBag.Message = "Skjali EKKI hlaðið upp þar sem til er skjal með sama nafni";
                }
            }

            return(View("Index"));
        }
Beispiel #15
0
        public IActionResult Index()
        {
            var files    = AzureDataAccess.GetFileNames();
            var model    = new MeasurementViewModel();
            var fileList = new List <SelectListItem>();

            foreach (var file in files)
            {
                fileList.Add(new SelectListItem
                {
                    Text  = file.Key,
                    Value = file.Value
                });
            }

            model.DataSets = fileList;
            //model.UseCurrent = true;
            //model.UseAverage = true;
            model.IncludeHarmonics1_16 = true;

            return(View(model));
        }
        internal List <MetricAlert> Get(MediaServicesSetConfig config, string originId, AlertsQuery query)
        {
            //var origId = originId.GuidToOriginId();
            var originAlerts = GetAlertsFromCache <OriginAlert>(originId);

            if (originAlerts == null)
            {
                var dataAccess = new AzureDataAccess(config.DataStorageConnections);
                if (query.StatusLevels == null)
                {
                    originAlerts = dataAccess.GetOriginAlerts(originId);
                }
                else
                {
                    originAlerts = dataAccess.GetOriginAlerts(originId, query.StatusLevels);
                }
            }

            List <MetricAlert> alerts = new List <MetricAlert>();

            if (originAlerts != null && originAlerts.Count > 0)
            {
                foreach (var orgAlt in originAlerts)
                {
                    alerts.Add(new MetricAlert
                    {
                        AlertID     = orgAlt.AlertID,
                        Name        = orgAlt.OriginName,
                        Date        = orgAlt.AlertDate.AddTicks(orgAlt.AlertTime.Ticks),
                        Description = orgAlt.Details,
                        Status      = orgAlt.ErrorLevel
                    });
                }
            }

            return(alerts);
        }
Beispiel #17
0
        internal IEnumerable <MetricAlert> Get(MediaServicesSetConfig config, string originId, AlertsQuery query)
        {
            var endTime   = DateTime.UtcNow;
            var startTime = endTime.AddHours(-1);

            HealthStatus[] healthLevels = null;

            if (query != null)
            {
                if (query.StartTime != default(DateTime))
                {
                    startTime = query.StartTime.ToUniversalTime();
                }
                if (query.EndTime != default(DateTime))
                {
                    endTime = query.EndTime.ToUniversalTime();
                }
                if (endTime <= startTime)
                {
                    throw new HttpResponseException(System.Net.HttpStatusCode.BadRequest);
                }
                healthLevels = query.StatusLevels;
            }

            //var origId = originId.GuidToOriginId();
            string             alertstring = CloudCache.Get(originId + "Alerts");
            List <OriginAlert> originAlerts;

            if (alertstring != null)
            {
                originAlerts = JsonConvert.DeserializeObject <List <OriginAlert> >(alertstring);
            }
            else
            {
                var dataAccess = new AzureDataAccess(config.DataStorageConnections);
                if (healthLevels == null)
                {
                    originAlerts = dataAccess.GetOriginAlerts(originId);
                }
                else
                {
                    originAlerts = dataAccess.GetOriginAlerts(originId, healthLevels);
                }
            }

            List <MetricAlert> alerts = new List <MetricAlert>();

            if (originAlerts != null && originAlerts.Count > 0)
            {
                foreach (var orgAlt in originAlerts)
                {
                    alerts.Add(new MetricAlert
                    {
                        AlertID     = orgAlt.AlertID,
                        Name        = orgAlt.OriginName,
                        Date        = orgAlt.AlertDate.AddTicks(orgAlt.AlertTime.Ticks),
                        Description = orgAlt.Details,
                        Status      = orgAlt.ErrorLevel
                    });
                }
            }
            return(alerts);
        }
Beispiel #18
0
        public IActionResult Compare([FromBody] MeasurementViewModel model)
        {
            bool       isSameMeasurementComparison = string.IsNullOrEmpty(model.FileName2);
            List <int> harmonics  = DomainLogic.DomainLogic.GetHarmonics(model.IncludeHarmonics1_16, model.IncludeHarmonics17_31, model.IncludeHarmonics32_47, model.IncludeHarmonics48_63);
            var        phaseEnums = new List <PhaseEnum>();

            if (model.IncludePhaseA)
            {
                phaseEnums.Add(PhaseEnum.A);
            }
            if (model.IncludePhaseB)
            {
                phaseEnums.Add(PhaseEnum.B);
            }
            if (model.IncludePhaseC)
            {
                phaseEnums.Add(PhaseEnum.C);
            }
            if (model.IncludePhaseNeutral)
            {
                phaseEnums.Add(PhaseEnum.Neutral);
            }

            var graphData = new List <GraphData>();

            byte[] file1 = AzureDataAccess.GetFile(model.FileName1).Result;
            if (file1.Length == 0)
            {
                throw new ArgumentException($"Skjalið {model.FileName1} fannst ekki");
            }

            if (isSameMeasurementComparison)
            {
                // we are comparing the same file so each phase is a datapoint
                foreach (var phase in phaseEnums)
                {
                    var measurement1 = DomainLogic.DomainLogic.FilterData(file1, model.UseCurrent, new List <PhaseEnum> {
                        phase
                    });
                    List <DataPoint> dataPoints = DomainLogic.DomainLogic.GetDataPoints(harmonics, model.UseAverage, measurement1);
                    graphData.Add(new GraphData
                    {
                        DataPoints = dataPoints,
                        Type       = GraphType,
                        Label      = "ble-" + Guid.NewGuid().ToString().Substring(0, 4)
                    });
                }
            }
            else
            {
                // we are comparing two different measurements so the sum of XXxx xxxx TBD!!!!
                byte[] file2 = model.FileName1 == model.FileName2 ? file1 : AzureDataAccess.GetFile(model.FileName2).Result;
                if (file2.Length == 0)
                {
                    throw new ArgumentException($"Skjalið {model.FileName2} fannst ekki");
                }

                var measurement1            = DomainLogic.DomainLogic.FilterData(file1, model.UseCurrent, phaseEnums);
                List <DataPoint> dataPoints = DomainLogic.DomainLogic.GetDataPoints(harmonics, model.UseAverage, measurement1);
                graphData.Add(new GraphData
                {
                    DataPoints = dataPoints,
                    Type       = GraphType,
                    Label      = "ble-" + Guid.NewGuid().ToString().Substring(0, 4)
                });

                var measurement2             = DomainLogic.DomainLogic.FilterData(file2, model.UseCurrent, phaseEnums);
                List <DataPoint> dataPoints2 = DomainLogic.DomainLogic.GetDataPoints(harmonics, model.UseAverage, measurement2);
                graphData.Add(new GraphData
                {
                    DataPoints = dataPoints2,
                    Type       = GraphType,
                    Label      = "some label"
                });
            }

            return(Json(graphData));
        }
Beispiel #19
0
        private static void CleanupDatabase(MediaServicesSetConfig mediaServicesSet)
        {
            var rententionPeriod = TimeSpan.FromDays(SqlRetentionPeriod);
            var earliestDate     = DateTime.UtcNow - rententionPeriod;

            Trace.TraceInformation("Earliest date before which the record will be removed: {0}", earliestDate);
            foreach (var databaseConfig in mediaServicesSet.DataStorageConnections)
            {
                Trace.TraceInformation(
                    "Cleaning database account on Server:{0} Accont:{1} Catalog:{2}",
                    databaseConfig.AzureServer,
                    databaseConfig.AcctName,
                    databaseConfig.InitialCatalog);
            }

            // Clean channel and origin alerts older than 30 days.
            var dataAccess = new AzureDataAccess(mediaServicesSet.DataStorageConnections);
            int removed    = dataAccess.CleanOutOldData(earliestDate);

            Trace.TraceInformation("Total of {0} records removed on {1} ", removed, DateTime.UtcNow);

            #region Not Used
            //dataAccess.ExecuteWriteQuery( dataContext =>
            //{
            //    foreach (AlertType at in dataContext.AlertTypes)
            //    {
            //        //start with GlobalAlerts
            //        var records = dataContext.Alerts.Where(alert => (alert.AlertDate < earliestDate.Date) &&
            //        alert.AlertTypeID == at.AlertTypeID).ToList();
            //        switch (at.AlertTypeID)
            //        {
            //            case 1:
            //                Trace.TraceInformation("Removing {0} records from Global Alerts...", records.Count);
            //                break;
            //            case 2:
            //                Trace.TraceInformation("Removing {0} records from Channel Alerts...", records.Count);
            //                break;
            //            case 3:
            //                Trace.TraceInformation("Removing {0} records from Origin Alerts...", records.Count);
            //                break;
            //            case 4:
            //                Trace.TraceInformation("Removing {0} records from Archive Alerts...", records.Count);
            //                break;
            //        }
            //        dataContext.Alerts.RemoveRange(records);
            //        dataContext.SaveChanges();
            //    }

            //});

            //dataAccess.ExecuteWriteQuery(dataContext =>
            //{
            //    var records = dataContext.Alerts.Where(alert => (alert.AlertDate < earliestDate.Date) &&
            //    alert.AlertTypeID == 2).ToList();

            //    dataContext.Alerts.RemoveRange(records);
            //    dataContext.SaveChanges();
            //});

            //dataAccess.ExecuteWriteQuery(dataContext =>
            //{
            //    var records = dataContext.Alerts.Where(alert => (alert.AlertDate < earliestDate.Date) &&
            //    alert.AlertTypeID == 3).ToList();

            //    dataContext.Alerts.RemoveRange(records);
            //    dataContext.SaveChanges();
            //});

            //dataAccess.ExecuteWriteQuery(dataContext =>
            //{
            //    var records = dataContext.Alerts.Where(alert => (alert.AlertDate < earliestDate.Date) &&
            //    alert.AlertTypeID == 4).ToList();

            //    dataContext.Alerts.RemoveRange(records);
            //    dataContext.SaveChanges();
            //});
            #endregion
        }
        private IEnumerable <MetricAlert> Get(MediaServicesSetConfig config, string channelId, AlertsQuery query)
        {
            var endTime   = DateTime.UtcNow;
            var startTime = endTime.AddHours(-1);

            HealthStatus[] healthLevels = null;
            MetricType[]   metricTypes  = null;

            if (query != null)
            {
                if (query.StartTime != default(DateTime))
                {
                    startTime = query.StartTime.ToUniversalTime();
                }
                if (query.EndTime != default(DateTime))
                {
                    endTime = query.EndTime.ToUniversalTime();
                }
                if (endTime <= startTime)
                {
                    throw new HttpResponseException(System.Net.HttpStatusCode.BadRequest);
                }
                metricTypes  = query.MetricTypes;
                healthLevels = query.StatusLevels;
            }

            var    chid        = channelId.NimbusIdToGuid();
            string alertstring = CloudCache.Get(chid + "Alerts");
            List <ChannelAlert> channelAlerts;

            if (alertstring != null)
            {
                channelAlerts = JsonConvert.DeserializeObject <List <ChannelAlert> >(alertstring);
            }
            else
            {
                var dataAccess = new AzureDataAccess(config.DataStorageConnections);
                channelAlerts = dataAccess.GetChannelAlerts(chid.ToString(), healthLevels, metricTypes);
                #region Not used
                //channelAlerts = dataAccess.ExecuteReadQuery(context =>
                //{
                //    var dbAlerts = context.ChannelAlerts.Where(alert =>
                //       alert.ChannelId == channelId &&
                //       alert.AlertDate >= startTime.AddTicks(alert.AlertTime.Ticks) &&
                //       alert.AlertDate <= endTime);

                //    if (healthLevels != null)
                //    {
                //        var predicate = CreatePredicate(healthLevels, "ErrorLevel");
                //        dbAlerts = dbAlerts.Where(predicate);
                //    }
                //    if (metricTypes != null)
                //    {
                //        var condition = CreatePredicate(metricTypes, "MetricType");
                //        dbAlerts = dbAlerts.Where(condition);
                //    }



                //    return dbAlerts.ToList();
                //});
                #endregion
            }
            List <MetricAlert> alerts = new List <MetricAlert>();
            if (channelAlerts != null)
            {
                foreach (var chAlt in channelAlerts)
                {
                    alerts.Add(new MetricAlert
                    {
                        AlertID     = chAlt.AlertID,
                        Name        = chAlt.ChannelName,
                        Date        = chAlt.AlertDate.AddTicks(chAlt.AlertTime.Ticks),
                        Description = chAlt.Details,
                        Status      = chAlt.ErrorLevel
                    });
                }
            }
            return(alerts);
        }