private void UpdateByVM(VM _vm, VM _azureVm) { VM vm = new VM(); using (var context = new CADContext()) { try { _vm.PowerState = _azureVm.PowerState; _vm.ProvisioningState = _azureVm.ProvisioningState; _vm.ResourceGroupName = _azureVm.ResourceGroupName; _vm.SubscriptionId = _azureVm.SubscriptionId; _vm.Tags = _azureVm.Tags; _vm.VMId = _azureVm.VMId; _vm.VMName = _azureVm.VMName; _vm.VMSize = _azureVm.VMSize; context.VMs.Update(_vm); context.SaveChanges(); } catch (Exception ex) { Log log = new Log(); log.name = ex.ToString(); log.timestamp = DateTime.UtcNow; context.Logs.Add(log); context.SaveChanges(); } } }
public List <VM> GetVMs(int _dashboardId) { List <VM> list = new List <VM>(); using (var context = new CADContext()) { Dashboard dashboard = context.Dashboards.Include(d => d.DashboardApplications).AsNoTracking().FirstOrDefault(d => d.DashboardId == _dashboardId); switch (dashboard.DisplayType) { case DisplayType.ShowAll: { list = GetVMsByDash(dashboard); break; } case DisplayType.ExcludeType: { list = GetVMsByDash(dashboard, true); break; } case DisplayType.SelectType: { list = GetActiveVMs(dashboard.DashboardId); break; } } } return(list); }
public static void Initialize(CADContext context) { Application app = new Application(); app.ClientId = "912fabb6-a061-4286-a476-aba6e7edb0e3"; app.ClientSecret = "6LGURivA4/gRNUzjRGuvWPZxKnwmESxOgdx1G+5EZgY="; app.SubscriptionId = "1d52c7db-0f59-4b3e-artd-de3df0624ab1"; app.TenantId = "test.com"; app.Description = "test subscription"; context.Applications.Add(app); context.SaveChanges(); Dashboard dashBoard = new Dashboard(); dashBoard.DashboardName = "DemoTestDashboard"; dashBoard.DashboardAnonAccessCode = "testtesttest"; dashBoard.DashboardLogoUrl = "https://ciellospublic.z21.web.core.windows.net/Ciellos Logo_Standard.png"; context.Dashboards.Add(dashBoard); context.SaveChanges(); User user = new User(); user.UserName = "******"; user.IsSuperUser = false; context.Users.Add(user); context.SaveChanges(); Setting setting = new Setting(); setting.MaxNumEventsLogStorePerVM = 1; context.Settings.Add(setting); context.SaveChanges(); }
public void UpdateVMList(IEnumerable <IVirtualMachine> _list, int _appId) { using (var context = new CADContext()) { try { foreach (var _vm in _list) { VM vm = new VM(); vm = azureHelper.createLocalVMFromAzureVM(_vm, _appId); FindOrCreateVM(vm); vm = null; } context.SaveChanges(); } catch (Exception ex) { Log log = new Log(); log.name = ex.ToString(); log.timestamp = DateTime.UtcNow; context.Logs.Add(log); context.SaveChanges(); } } }
/// <summary> /// GetVirtualMachinesByUser /// </summary> /// <param name="_currentUser"></param> /// <returns></returns> public JsonResult GetVirtualMachinesByUser(ClaimsPrincipal _currentUser) { List <VM> vMashines = new List <VM>(); using (var context = new CADContext()) { try { User currentUser = context.Users .Include(u => u.Dashboard) .ThenInclude(d => d.DashboardApplications) .FirstOrDefault(u => u.UserName == _currentUser.Identity.Name); if (currentUser?.Dashboard == null) { return(new JsonResult(new { data = "" })); } var dashboard = context.Dashboards.Include(d => d.DashboardApplications).FirstOrDefault(d => d.DashboardId == currentUser.Dashboard.DashboardId); if (currentUser.Dashboard.DashboardId != 0) { vMashines = VirtualMashinesList.GetVMs(currentUser.Dashboard.DashboardId); } } catch (Exception ex) { Log log = new Log(); log.name = ex.ToString(); log.timestamp = DateTime.UtcNow; context.Logs.Add(log); context.SaveChanges(); } } return(new JsonResult(new { data = vMashines })); }
public IVirtualMachine GetVMFromAzure(string _vmId) { IVirtualMachine machine = null; using (CADContext context = new CADContext()) { try { IAzure azure; VM vm = context.VMs.FirstOrDefault(v => v.VMId == _vmId); Application apps = context.Applications.FirstOrDefault(app => app.AppId == vm.ApplicationId); azure = GetAzureConnection(apps); machine = azure.VirtualMachines.List().FirstOrDefault(v => v.VMId == _vmId); } catch (Exception ex) { Log log = new Log(); log.name = ex.ToString(); log.timestamp = DateTime.UtcNow; context.Logs.Add(log); context.SaveChanges(); } } return(machine); }
/// <summary> /// GetJOVirtualMachine /// </summary> /// <param name="jobject"></param> /// <returns></returns> public JsonResult GetJOVirtualMachine(JObject jobject) { VM vm = new VM(); using (CADContext context = new CADContext()) { try { IVirtualMachine virtualMachine = GetVMFromAzure(jobject["vmid"].ToString()); if (virtualMachine != null) { vm = VirtualMashinesList.FindOrCreateVM(createLocalVMFromAzureVM(virtualMachine)); } } catch (Exception ex) { Log log = new Log(); log.name = ex.ToString(); log.timestamp = DateTime.UtcNow; context.Logs.Add(log); context.SaveChanges(); } } return(new JsonResult(new { data = vm })); }
public async Task StopVirtualMashinesAsync() { while (true) { await Task.Delay(30000); IsDBLocked = true; using (CADContext context = new CADContext()) { TimeSpan timeNow = System.DateTime.Now.TimeOfDay; TimeSpan time = new TimeSpan(timeNow.Hours, timeNow.Minutes, 0); List <Schedules> VMs = context.Schedules.Include(s => s.ScheduleVMsList).Where(s => s.StopTime == time).ToList(); foreach (var res in VMs) { foreach (var vm in res.ScheduleVMsList) { VM virt = context.VMs.Find(vm.VMId); this.StopVM(virt.VMId.ToString()); } } } IsDBLocked = false; GC.Collect(); } }
public void OnGet() { Model.User user = new Model.User(); using (var context = new CADContext()) { if (context.Users.Where(u => u.IsSuperUser == true).Count() == 0) { user.UserName = this.User.Identity.Name; user.IsSuperUser = true; context.Users.Add(user); context.SaveChanges(); } if (context.Users.FirstOrDefault(u => u.UserName == this.User.Identity.Name) == null) { user.UserName = this.User.Identity.Name; user.IsSuperUser = false; context.Users.Add(user); context.SaveChanges(); } user = context.Users.Include(u => u.Dashboard).FirstOrDefault(u => u.UserName == this.User.Identity.Name); if (user.Dashboard != null) { Title = user.Dashboard.DashboardName; Logo = user.Dashboard.DashboardLogoUrl; DashboardId = user.Dashboard.DashboardId; } } }
public async Task <IActionResult> OnPostAsync(int?id) { using (var ctx = new CADContext()) { Schedules schedules = ctx.Schedules.Find(id); schedules.ScheduleVMsList.Clear(); schedules.Name = Schedule.Name; schedules.StartTime = Schedule.StartTime; schedules.StopTime = Schedule.StopTime; var sceduleVMs = ctx.ScheduleVM.Where(s => s.ScheduleId == Schedule.Id).ToList(); foreach (var res in sceduleVMs) { ctx.ScheduleVM.Remove(res); } foreach (var res in SelectedVmsId) { var vm = ctx.VMs.Find(res); ScheduleVM scheduleVM = new ScheduleVM(); scheduleVM.ScheduleId = 1; scheduleVM.Schedules = Schedule; scheduleVM.VMId = vm.Id; scheduleVM.VM = vm; ctx.ScheduleVM.Add(scheduleVM); Schedule.ScheduleVMsList.Add(scheduleVM); } ctx.SaveChanges(); } return(RedirectToPage("./Index")); }
public void RemoveActiveVM(int _dashboardId, int _vmId) { using (var context = new CADContext()) { VM vm = context.VMs.FirstOrDefault(v => v.Id == _vmId); if (vm != null) { RemoveActiveVM(_dashboardId, vm.VMId); } } }
public void RemoveActiveVM(int _dashboardId, string _vmId) { using (var context = new CADContext()) { ActiveVM vm = context.ActiveVMs.FirstOrDefault(iv => iv.DashboardId == _dashboardId && iv.VMId == _vmId); if (vm != null) { context.ActiveVMs.Remove(vm); context.SaveChanges(); } } }
public async Task <IActionResult> OnPostCleanupLocalVMCacheAsync() { using (CADContext context = new CADContext()) { var vmList = context.VMs.AsNoTracking().ToList(); context.VMs.RemoveRange(vmList); await context.SaveChangesAsync(); } CleanupResult = "Cleanup successed"; return(Page()); }
public IndexModel(IAzureHelper _azureHelper, CADContext _context, IHostingEnvironment hostingEnvironment) { _hostingEnvironment = hostingEnvironment; azureHelper = _azureHelper as AzureHelper; context = _context; if (context.Settings.FirstOrDefault() == null) { Setting set = new Setting(); context.Settings.Add(set); context.SaveChanges(); } Message = "Dashboard settings"; }
public async Task <IActionResult> OnPostAsync(int?id) { switch (SelectedDashboardType) { case DisplayType.ShowAll: { azureHelper.GetVirtualMashinesList().UpdateActiveVMs((int)id, new int[0]); break; } case DisplayType.ExcludeType: { azureHelper.GetVirtualMashinesList().UpdateActiveVMs((int)id, ExcludedVMs); break; } case DisplayType.SelectType: { azureHelper.GetVirtualMashinesList().UpdateActiveVMs((int)id, SelectedVMs); break; } } using (var ctx = new CADContext()) { if (Dashboard.DashboardAnonAccessCode == null) { Dashboard.DashboardAnonAccessCode = DashboardHelper.CalculateHash(Dashboard.DashboardName); } var dash = await ctx.Dashboards.Include(d => d.DashboardApplications).Include(l => l.Links).FirstOrDefaultAsync(d => d.DashboardId == Dashboard.DashboardId); dash.DashboardApplications.Clear(); foreach (var sa in SelectedApplications) { DashboardApplication app = new DashboardApplication(); app.Dashboard = Dashboard; app.Application = ctx.Applications.First(a => a.AppId == sa); dash.DashboardApplications.Add(app); } dash.Links.Clear(); dash.Links = Dashboard.Links; dash.DashboardAnonAccessCode = Dashboard.DashboardAnonAccessCode; dash.DashboardName = Dashboard.DashboardName; dash.DashboardLogoUrl = Dashboard.DashboardLogoUrl; dash.DisplayType = SelectedDashboardType; ctx.SaveChanges(); } return(RedirectToPage("./Index")); }
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, SuperUserRequirement requirement) { CADContext dbContext = new CADContext(); var user = dbContext.Users.FirstOrDefault(U => U.UserName == context.User.Identity.Name); if (user != null) { if (user.IsSuperUser) { context.Succeed(requirement); } } return(Task.CompletedTask); }
public void AddActiveVM(int _dashboardId, string _vmId) { using (var context = new CADContext()) { ActiveVM vm = context.ActiveVMs.FirstOrDefault(iv => iv.DashboardId == _dashboardId && iv.VMId == _vmId); if (vm == null) { vm = new ActiveVM(); vm.DashboardId = _dashboardId; vm.VMId = _vmId; context.ActiveVMs.Add(vm); context.SaveChanges(); vm = null; } } }
public List <VM> GetActiveVMs(int _dashboardId) { List <VM> list = new List <VM>(); using (var context = new CADContext()) { foreach (var activeVM in context.ActiveVMs.Where(iv => iv.DashboardId == _dashboardId)) { var vm = context.VMs.FirstOrDefault(v => v.VMId == activeVM.VMId); if (vm != null) { list.Add(vm); } } } return(list); }
public void UpdateActiveVMs(int _dashboardId, int[] _VMList) { using (var context = new CADContext()) { var activeList = context.ActiveVMs.Where(v => v.DashboardId == _dashboardId); foreach (var vm in activeList) { context.ActiveVMs.Remove(vm); context.SaveChanges(); } foreach (int vmId in _VMList) { AddActiveVM(_dashboardId, vmId); } activeList = null; } }
/// <summary> /// GetDashboardByAccessCode /// </summary> /// <param name="_accessCode"> _accessCode</param> /// <returns></returns> public Dashboard GetDashboardByAccessCode(string _accessCode) { Dashboard dashboard = new Dashboard(); using (var context = new CADContext()) { try { dashboard = context.Dashboards.Include(d => d.DashboardApplications).FirstOrDefault(d => d.DashboardAnonAccessCode == _accessCode); } catch (Exception ex) { Log log = new Log(); log.name = ex.ToString(); log.timestamp = DateTime.UtcNow; context.Logs.Add(log); context.SaveChanges(); } } return(dashboard); }
private VM SelectVMByVmId(string _vmId) { VM vm = new VM(); using (var context = new CADContext()) { try { vm = context.VMs.FirstOrDefault(v => v.VMId == _vmId); } catch (Exception ex) { Log log = new Log(); log.name = ex.ToString(); log.timestamp = DateTime.UtcNow; context.Logs.Add(log); context.SaveChanges(); } } return(vm); }
public List <VM> GetByDashboardId(int _dashboardId, bool _exceptInactive = false) { List <VM> list = new List <VM>(); Dashboard dashboard = new Dashboard(); using (var context = new CADContext()) { try { dashboard = context.Dashboards.Include(vm => vm.DashboardApplications).FirstOrDefault(d => d.DashboardId == _dashboardId); foreach (var app in dashboard.DashboardApplications) { list.AddRange(GetVMsByAppID(app.ApplicationId)); } if (_exceptInactive) { List <VM> excludeInactiveList = new List <VM>(); foreach (VM vm in list) { if (GetVMs(_dashboardId).Find(v => v.VMId == vm.VMId) == null) { excludeInactiveList.Add(vm); } } list = excludeInactiveList; } } catch (Exception ex) { Log log = new Log(); log.name = ex.ToString(); log.timestamp = DateTime.UtcNow; context.Logs.Add(log); context.SaveChanges(); } } return(list); }
public List <VM> GetVMsByAppID(int _appId) { List <VM> list = new List <VM>(); using (var context = new CADContext()) { try { list = context.VMs.Where(vms => vms.ApplicationId == _appId).ToList(); } catch (Exception ex) { Log log = new Log(); log.name = ex.ToString(); log.timestamp = DateTime.UtcNow; context.Logs.Add(log); context.SaveChanges(); } } return(list); }
public void UpdateAllVirtualMashines() { using (CADContext context = new CADContext()) { var vmList = context.VMs.AsNoTracking().ToList(); context.VMs.RemoveRange(vmList); context.SaveChanges(); } using (CADContext context = new CADContext()) { try { IAzure azure; foreach (var apps in context.Applications) { try { azure = GetAzureConnection(apps); var curVMList = azure.VirtualMachines.List(); VirtualMashinesList.UpdateVMList(curVMList, apps.AppId); azure = null; } catch { continue; } } } catch (Exception ex) { Log log = new Log(); log.name = ex.ToString(); log.timestamp = DateTime.UtcNow; context.Logs.Add(log); context.SaveChanges(); } } }
public static void CleanLogs(CADContext _context) { var settings = _context.Settings.FirstOrDefault(); var vmInLogTable = _context.Logs.GroupBy(l => new { l.vmname, l.resourcegroup }).ToList(); foreach (var vm in vmInLogTable) { var logs_count = _context.Logs.Where(l => l.vmname == vm.Key.vmname && l.resourcegroup == vm.Key.resourcegroup).Count(); if (logs_count > settings.MaxNumEventsLogStorePerVM) { var vmLastLogRecord = _context.Logs.Where(l => l.vmname == vm.Key.vmname && l.resourcegroup == vm.Key.resourcegroup).OrderByDescending(u => u.timestamp).Take(settings.MaxNumEventsLogStorePerVM).Last(); var logsForRemove = _context.Logs.Where(l => l.vmname == vm.Key.vmname && l.resourcegroup == vm.Key.resourcegroup && l.timestamp < vmLastLogRecord.timestamp).ToList(); _context.Logs.RemoveRange(logsForRemove); } } _context.SaveChanges(); var errorLogsToRemove = _context.Logs.Where(l => string.IsNullOrEmpty(l.vmname)).ToList(); _context.Logs.RemoveRange(errorLogsToRemove); _context.SaveChanges(); }
/// <summary> /// GetVirtualMachinesByAccessCode /// </summary> /// <param name="_accessCode"></param> /// <returns></returns> public List <VM> GetVirtualMachinesByAccessCode(string _accessCode) { Dashboard dashboard; List <VM> vMashines = new List <VM>(); using (var context = new CADContext()) { try { dashboard = context.Dashboards.Include(d => d.DashboardApplications).FirstOrDefault(d => d.DashboardAnonAccessCode == _accessCode); vMashines = VirtualMashinesList.GetVMs(dashboard.DashboardId); } catch (Exception ex) { Log log = new Log(); log.name = ex.ToString(); log.timestamp = DateTime.UtcNow; context.Logs.Add(log); context.SaveChanges(); } } return(vMashines); }
public IActionResult OnPost() { if (Dashboard.DashboardAnonAccessCode == null) { Dashboard.DashboardAnonAccessCode = DashboardHelper.CalculateHash(Dashboard.DashboardName); } _context.Dashboards.Add(Dashboard); _context.SaveChanges(); using (var ctx = new CADContext()) { var dash = ctx.Dashboards.Include(d => d.DashboardApplications).First(d => d.DashboardId == Dashboard.DashboardId); foreach (var sa in SelectedApplications) { DashboardApplication app = new DashboardApplication(); app.Dashboard = Dashboard; app.Application = ctx.Applications.First(a => a.AppId == sa); dash.DashboardApplications.Add(app); } ctx.SaveChanges(); } return(RedirectToPage("./Index")); }
public RepositorioAtualizavel(CADContext contexto) : base(contexto) { }
public Repositorio(CADContext contexto) { Context = contexto; Set = Context.Set <TEntidade>(); }
public Repositorio() { Context = new CADContext(); Set = Context.Set <TEntidade>(); }