private Model.Region CreateRegionDb(Region region)
 {
     Model.Region newRegionDb = new Model.Region()
     {
         RegionId = region.Id,
         Name     = region.Name
     };
     Uow.Regions.Add(newRegionDb);
     Uow.Commit();
     return(newRegionDb);
 }
 private Model.ServiceStatus CreateServiceStatus(Model.Service serviceDb, Model.Region regionDb, Model.Status status)
 {
     Model.ServiceStatus serviceStatusDb = new Model.ServiceStatus()
     {
         Service    = serviceDb,
         Region     = regionDb,
         Status     = status,
         DateUpdate = DateTime.UtcNow
     };
     Uow.ServicesStatus.Add(serviceStatusDb);
     Uow.Commit();
     return(serviceStatusDb);
 }
        public void ProcessAzureStatus()
        {
            try
            {
                AzureStatus azureStatus = AzureStatusEngine.GetAzureStatus();

                foreach (Service service in azureStatus.Services)
                {
                    Model.Service serviceDb = GetServiceDbByServiceId(service.Id);

                    if (serviceDb == null)
                    {
                        serviceDb = CreateServiceDb(service);
                    }

                    foreach (Region region in service.Regions)
                    {
                        Model.Region regionDb = GetRegionDbByRegionId(region.Id);

                        if (regionDb == null)
                        {
                            regionDb = CreateRegionDb(region);
                        }

                        Model.ServiceStatus serviceStatusDb = GetServiceStatusByServiceIdandRegionId(service, region);

                        if (serviceStatusDb == null)
                        {
                            serviceStatusDb = CreateServiceStatus(serviceDb, regionDb, (Model.Status)Enum.Parse(typeof(Model.Status), region.Status));
                        }
                        else
                        {
                            UpdateServiceStatus(serviceStatusDb, (Model.Status)Enum.Parse(typeof(Model.Status), region.Status));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
            }
        }