public async Task <ActionResult> Detail(ExecuteVM executeVm) { var credential = CertificateAuthenticationHelper.GetCredential(AMUWHelper.GetAppSetting("Azure-SubscriptionId"), AMUWHelper.GetAppSetting("Azure-Credential")); var cloudService = await CloudContext.Clients.CreateComputeManagementClient(credential).HostedServices.GetDetailedAsync(executeVm.ServiceName); var deployment = cloudService.Deployments.FirstOrDefault(); var vmDetail = deployment.RoleInstances.FirstOrDefault(x => x.RoleName == executeVm.RoleName); var viewModel = new VirtualMachineDetailViewModel(); viewModel.DeploymentId = cloudService.Deployments.FirstOrDefault().PrivateId; viewModel.VirtualIP = deployment.VirtualIPAddresses.Count > 0 ? deployment.VirtualIPAddresses.FirstOrDefault().Address : ""; viewModel.InternalIP = vmDetail.IPAddress; viewModel.RoleName = executeVm.RoleName; viewModel.Size = vmDetail.InstanceSize; viewModel.Status = vmDetail.PowerState.ToString(); var userVmList = _vmUserService.GetByVMName(executeVm.RoleName); viewModel.UserList = new List <string>(); foreach (var item in userVmList) { var emailAddress = UserManager.FindById(item.User.UserId).Email; viewModel.UserList.Add(item.User.Username + "(" + emailAddress + ")"); } viewModel.UserRole = AMUW.Helpers.AMUWHelper.GetRole(); return(View(viewModel)); }
public async Task <HttpResponseMessage> Execute(ExecuteVM executeVm) { var credential = CertificateAuthenticationHelper.GetCredential(AMUWHelper.GetAppSetting("Azure-SubscriptionId"), AMUWHelper.GetAppSetting("Azure-Credential")); var requestId = string.Empty; if (executeVm.Action == "start") { var execute = await CloudContext.Clients.CreateComputeManagementClient(credential).VirtualMachines.StartAsync(executeVm.ServiceName, executeVm.DeploymentName, executeVm.RoleName); requestId = execute.RequestId; } else { var execute = await CloudContext.Clients.CreateComputeManagementClient(credential).VirtualMachines.ShutdownAsync( executeVm.ServiceName, executeVm.DeploymentName, executeVm.RoleName, new VirtualMachineShutdownParameters() { PostShutdownAction = PostShutdownAction.StoppedDeallocated }); requestId = execute.RequestId; } return(Request.CreateResponse <string>(HttpStatusCode.OK, requestId)); }
public JsonResult AssignVM(ExecuteVM executeVm, int id) { var check = _vmUserService.CheckUser(id, executeVm.RoleName); if (!check) { var assignVm = new VMUser(); assignVm.UserId = id; assignVm.ServiceName = executeVm.ServiceName; assignVm.DeploymentName = executeVm.DeploymentName; assignVm.VMName = executeVm.RoleName; _vmUserService.AssignUserToVM(assignVm); return(Json("Success")); } else { return(Json("This user already has " + executeVm.RoleName)); } }
public override IDock CreateLayout() { var languagesVM = new LanguagesVM() { Id = nameof(LanguagesVM) }; var propertiesVM = new PropertiesVM() { Id = nameof(PropertiesVM) }; var executeVM = new ExecuteVM() { Id = nameof(ExecuteVM) }; var resultListVM = new ResultListVM() { Id = nameof(ResultListVM) }; var mainLayout = new ProportionalDock { Id = DockableExplorerLocator.IdUniversalDock, Orientation = Orientation.Horizontal, Proportion = double.NaN, ActiveDockable = null, VisibleDockables = CreateList <IDockable> ( new ProportionalDock { Orientation = Orientation.Vertical, Proportion = 0.8, ActiveDockable = null, VisibleDockables = CreateList <IDockable> ( new DocumentDock { Id = DockableExplorerLocator.IdResultsDock, IsCollapsable = false, ActiveDockable = null, VisibleDockables = CreateList <IDockable>() }, new SplitterDock(), new ToolDock { Id = DockableExplorerLocator.IdExecuteDock, ActiveDockable = executeVM, Proportion = 0.2, VisibleDockables = CreateList <IDockable>(executeVM) } ) }, new SplitterDock(), new ProportionalDock { Orientation = Orientation.Vertical, Proportion = double.NaN, ActiveDockable = null, VisibleDockables = CreateList <IDockable> ( new ToolDock { Id = DockableExplorerLocator.IdResultListDock + " " + DockableExplorerLocator.IdLanguagesDock, ActiveDockable = resultListVM, VisibleDockables = CreateList <IDockable>(resultListVM, languagesVM) }, new SplitterDock(), new ToolDock { Id = DockableExplorerLocator.IdPropertiesDock, ActiveDockable = propertiesVM, VisibleDockables = CreateList <IDockable>(propertiesVM) } ) } ) }; var projectView = new ProjectViewportVM { Id = "Project", Title = "Project", ActiveDockable = mainLayout, VisibleDockables = CreateList <IDockable>(mainLayout) }; var root = CreateRootDock(); root.ActiveDockable = projectView; root.DefaultDockable = projectView; root.VisibleDockables = CreateList <IDockable>(projectView); return(root); }