public Application AddApplication(string name, ApplicationDefinition applicationDefinition) { var conf = _configuration.Value; if (_applicationStore.Contains(name)) { throw new Exception($"An application with the name '{name}' already exists."); } var applicationImages = applicationDefinition.Images .Select(imageSettings => { PreviewReleaseDeploymentSettings?previewReleaseDeploymentSettings = null; if (imageSettings.PreviewRelease != null) { previewReleaseDeploymentSettings = new PreviewReleaseDeploymentSettings( true, imageSettings.PreviewRelease.UpdatePolicy.Type switch { UpdatePolicy.Glob => new GlobImageUpdatePolicy( imageSettings.PreviewRelease.UpdatePolicy.Pattern), UpdatePolicy.Regex => new RegexImageUpdatePolicy(imageSettings.PreviewRelease .UpdatePolicy.Pattern), UpdatePolicy.Semver => new SemverImageUpdatePolicy(imageSettings.PreviewRelease .UpdatePolicy.Pattern), _ => throw new NotImplementedException() }, imageSettings.PreviewRelease.Parameters.Regex.Tag ); }
public override StartResult Start(ApplicationDefinition applicationDefinition) { var windowsApplicationDefinition = ToWindowsPhoneApplicationDefinition(applicationDefinition); InvokeTrace("launching app..."); var app = SafeGetApplication(windowsApplicationDefinition.ProductGuid); if (app == null) { InvokeTrace("not installed"); return(StartResult.NotInstalled); } /* * app.IsRunning is not supported for WP7 * if (app.IsRunning()) * { * InvokeTrace("already running"); * return StartResult.AlreadyRunning; * } */ app.Launch(); InvokeTrace("app launched"); return(StartResult.Success); }
public async Task <Response <ApplicationDefinition> > GetAsync(string resourceGroupName, string applicationDefinitionName, CancellationToken cancellationToken = default) { if (resourceGroupName == null) { throw new ArgumentNullException(nameof(resourceGroupName)); } if (applicationDefinitionName == null) { throw new ArgumentNullException(nameof(applicationDefinitionName)); } using var message = CreateGetRequest(resourceGroupName, applicationDefinitionName); await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); switch (message.Response.Status) { case 200: { ApplicationDefinition value = default; using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, default, cancellationToken).ConfigureAwait(false); if (document.RootElement.ValueKind == JsonValueKind.Null) { value = null; } else { value = ApplicationDefinition.DeserializeApplicationDefinition(document.RootElement); } return(Response.FromValue(value, message.Response)); }
/// <summary> /// Constructs the resource /// </summary> private JToken GetResource() { var applicationDefinitionObject = new ApplicationDefinition { Name = this.Name, Location = this.Location, Properties = new ApplicationDefinitionProperties { LockLevel = this.LockLevel, Description = this.Description, DisplayName = this.DisplayName, PackageFileUri = this.PackageFileUri ?? null, Authorizations = JArray.Parse(this.GetAuthorizationObject(this.Authorization).ToString()).ToJson().FromJson <ApplicationProviderAuthorization[]>() }, Tags = TagsHelper.GetTagsDictionary(this.Tag) }; if (!string.IsNullOrEmpty(this.MainTemplate) && !string.IsNullOrEmpty(this.CreateUiDefinition)) { applicationDefinitionObject.Properties.MainTemplate = JObject.Parse(this.GetObjectFromParameter(this.MainTemplate).ToString()); applicationDefinitionObject.Properties.CreateUiDefinition = JObject.Parse(this.GetObjectFromParameter(this.CreateUiDefinition).ToString()); } return(applicationDefinitionObject.ToJToken()); }
/// <summary> /// Constructs the resource /// </summary> private JToken GetResource(string resourceId, string apiVersion) { var resource = this.GetExistingResource(resourceId, apiVersion).Result.ToResource(); var applicationDefinitionObject = new ApplicationDefinition { Name = this.Name, Location = resource.Location, Properties = new ApplicationDefinitionProperties { LockLevel = (ApplicationLockLevel)Enum.Parse(typeof(ApplicationLockLevel), resource.Properties["lockLevel"].ToString(), true), Description = this.Description ?? (resource.Properties["description"] != null ? resource.Properties["description"].ToString() : null), DisplayName = this.DisplayName ?? (resource.Properties["displayName"] != null ? resource.Properties["displayName"].ToString() : null), PackageFileUri = this.PackageFileUri ?? null, Authorizations = this.Authorization != null ? JArray.Parse(this.GetAuthorizationObject(this.Authorization).ToString()).ToJson().FromJson <ApplicationProviderAuthorization[]>() : JArray.Parse(resource.Properties["authorizations"].ToString()).ToJson().FromJson <ApplicationProviderAuthorization[]>() }, Tags = TagsHelper.GetTagsDictionary(this.Tag) ?? resource.Tags }; return(applicationDefinitionObject.ToJToken()); }
public static ApplicationDefinition Create() { ApplicationDefinition application = new ApplicationDefinition { Name = "Demo" }; DatabaseDefinition database = new DatabaseDefinition() { Name = "Database" }; application.Databases.Add(database); TableDefinition table = new TableDefinition() { Name = "Customer" }; database.Tables.Add(table); table.Fields.Add(new IntFieldDefinition { Name = "ID" }); table.Fields.Add(new StringFieldDefinition { Name = "FullName" }); table.Fields.Add(new IntFieldDefinition { Name = "BirthDate" }); return(application); }
public AppConfigFileBasedConfiguration() { AutomationControllerName = ConfigurationManager.AppSettings[EmuStepsAutomationControllerKeyName]; ControllerInitialisationString = ConfigurationManager.AppSettings[EmuStepsControllerInitialisationKeyName]; if (string.IsNullOrEmpty(AutomationControllerName)) { AutomationControllerName = "wp"; } if (string.IsNullOrEmpty(ControllerInitialisationString)) { ControllerInitialisationString = string.Empty; } AutomationIdentification automationIdentification; if (Enum.TryParse(ConfigurationManager.AppSettings[EmuStepsAutomationIdentificationKeyName], true, out automationIdentification)) { AutomationIdentification = automationIdentification; } else { AutomationIdentification = AutomationIdentification.TryEverything; } ApplicationDefinition = new ApplicationDefinition(); foreach (var key in ConfigurationManager.AppSettings.AllKeys) { if (key.StartsWith(EmuStepsApplicationPrefix) && key.Length > EmuStepsApplicationPrefix.Length) { ApplicationDefinition.Fields[key.Substring(EmuStepsApplicationPrefix.Length)] = ConfigurationManager.AppSettings[key]; } } }
public static ApplicationDefinition Create() { ApplicationDefinition application = new ApplicationDefinition { Namespace = "ContosoUniversity" }; DatabaseDefinition database = new DatabaseDefinition { Name = "School" }; application.Databases.Add(database); database.AddTable(CourseTableDefinition()); database.AddTable(DepartmentTableDefinition()); database.AddTable(EnrollmentTableDefinition()); database.AddTable(InstructorTableDefinition()); database.AddTable(OfficeAssignmentTableDefinition()); database.AddTable(PersonTableDefinition()); database.AddTable(StudentTableDefinition()); application.Enumerations.Add(GradeDefinition()); return(application); }
public void CreateDefinition() { ApplicationDefinition application = DemoModel.Create(); Assert.AreEqual("Demo", application.Name); Assert.AreEqual(application.Databases.Count, 1); }
public void CreateDefinition() { ApplicationDefinition application = University.Create(); ApplicationInfo applicationInfo = new ApplicationInfo(); applicationInfo.Set(application); CrudCreator crudCreator = new CrudCreator(); crudCreator.Create(applicationInfo); Shipment shipment = new Shipment(); EfFactory factory = new EfFactory(); factory.Manufacture(shipment, applicationInfo); EnumerationFactory enumerationFactory = new EnumerationFactory(); enumerationFactory.Manufacture(shipment, applicationInfo); MvcFactory mvcFactory = new MvcFactory(); mvcFactory.Manufacture(shipment, applicationInfo); shipment.Save(@"C:\Sources\Plastic\Plastic.University"); }
public async Task ListBySubscription() { Subscription subscription = await Client.GetDefaultSubscriptionAsync(); string rgName = Recording.GenerateAssetName("testRg-3-"); ResourceGroupData rgData = new ResourceGroupData(Location.WestUS2); var lro = await subscription.GetResourceGroups().CreateOrUpdateAsync(rgName, rgData); ResourceGroup rg = lro.Value; string appDefName = Recording.GenerateAssetName("appDef-L-"); ApplicationDefinitionData appDefData = CreateApplicationDefinitionData(appDefName); ApplicationDefinition appDef = (await rg.GetApplicationDefinitions().CreateOrUpdateAsync(appDefName, appDefData)).Value; string appName = Recording.GenerateAssetName("application-L-"); ApplicationData applicationData = CreateApplicationData(appDef.Id, subscription.Id + Recording.GenerateAssetName("/resourceGroups/managed-3-"), Recording.GenerateAssetName("s3")); _ = await rg.GetApplications().CreateOrUpdateAsync(appName, applicationData); int count = 0; await foreach (var tempApplication in subscription.GetApplicationsAsync()) { if (tempApplication.Data.ApplicationDefinitionId == appDef.Id) { count++; } } Assert.AreEqual(count, 1); }
public override StopResult Stop(ApplicationDefinition applicationDefinition) { var windowsApplicationDefinition = ToWindowsPhoneApplicationDefinition(applicationDefinition); InvokeTrace("ensuring application is stopped..."); if (!Device.IsApplicationInstalled(windowsApplicationDefinition.ProductGuid)) { InvokeTrace("application is not installed"); return(StopResult.NotInstalled); } var app = SafeGetApplication(windowsApplicationDefinition.ProductGuid); if (app == null) { InvokeTrace("failed to get application"); return(StopResult.NotInstalled); // really this is an error case - but just return NotInstalled for now } /* * IsRunning is not supported on WP7 * if (!app.IsRunning()) * { * InvokeTrace("application is not running"); * return StopResult.NotRunning; * } */ InvokeTrace("stopping application..."); try { app.TerminateRunningInstances(); } catch (Exception ex) { try { InvokeTrace("CurrentDeviceID =" + Device.Id); // An exception here can't be recovered but we can leave things in a better state for the next test if we kill the emulator var processes = Process.GetProcessesByName("Xde"); foreach (var process in processes) { InvokeTrace("ProcessId = " + process.Id); process.Kill(); } } catch (Exception) { // We can but try, but if we can't let's ignore it InvokeTrace("failed to close emulator"); } throw ex; } InvokeTrace("application stopped"); return(StopResult.Success); }
public void CreateDefinition() { ApplicationDefinition application = DemoModel.Create(); DatabaseDefinition database = application.Databases.First(); Assert.AreEqual("Database", database.Name); Assert.AreEqual(1, database.Tables.Count); }
public override UninstallationResult Uninstall(ApplicationDefinition applicationDefinition) { var adbDefinition = new AdbApplicationDefinition(applicationDefinition); // first uninstall the stub package Uninstall(adbDefinition.StubPackageName); // then uninstall the app package return(Uninstall(adbDefinition.PackageName)); }
public void CreateDefinition() { ApplicationDefinition application = DemoModel.Create(); DatabaseDefinition database = application.Databases.First(); TableDefinition table = database.Tables.First(); Assert.AreEqual("Customer", table.Name); Assert.AreEqual(3, table.Fields.Count); }
protected RemoteIsolatedStorageFile GetIsoStorage(ApplicationDefinition applicationDefinition) { var windowsApplicationDefinition = ToWindowsPhoneApplicationDefinition(applicationDefinition); var app = SafeGetApplication(windowsApplicationDefinition.ProductGuid); var store = app.GetIsolatedStore(); return(store); }
public override string GetIsolatedStorage(ApplicationDefinition applicationDefinition) { var store = GetIsoStorage(applicationDefinition); string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\IsolatedStore\Temp\" + Guid.NewGuid().ToString(); ReceiveDirectory(store, desktopPath); return(desktopPath); }
public void CreateDefinition() { ApplicationDefinition application = DemoModel.Create(); DatabaseDefinition database = application.Databases.First(); TableDefinition table = database.Tables.First(); FieldDefinition field = table.Fields.First(); Assert.AreEqual("ID", field.Name); }
private static ApplicationInfo MapApplicationInfo(ApplicationDefinition definition) { return(new ApplicationInfo { ApplicationId = definition.ApplicationId, Name = definition.Name, Description = definition.Description, Metadata = definition.Metadata }); }
public void CreateInfo() { ApplicationDefinition application = DemoModel.Create(); ApplicationInfo applicationInfo = new ApplicationInfo(); applicationInfo.Set(application); Assert.AreEqual("Demo", applicationInfo.Name); Assert.AreEqual(applicationInfo.Databases.Count, 1); }
private static ApplicationDefinition MapApplication(ApplicationInfo info) { var data = new ApplicationDefinition { Name = info.Name, Description = info.Description, Metadata = info.Metadata }; return(data); }
private async Task <TenantDeployment> ProcessTenantDeploymentAsync(TenantDeployment tenantDeploymentDeployment, CancellationToken cancellationToken) { var exists = await this.applicationOperator.ApplicationExistsAsync(tenantDeploymentDeployment.ApplicationName, cancellationToken); var serviceDefinition = new ServiceDefinition() { ServiceName = "MC", Type = "MCType", Version = "1.0.0" }; var applicationDefinition = new ApplicationDefinition() { ApplicationName = tenantDeploymentDeployment.ApplicationName, Type = "mcType", Version = "1.0.0", Services = new List <ServiceDefinition>() { serviceDefinition } }; if (exists) { string serviceName = $"{tenantDeploymentDeployment.ApplicationName}/{serviceDefinition.ServiceName}"; var serviceEndPoint = await this.applicationOperator.GetServiceEndpoint(serviceName, cancellationToken); if (serviceEndPoint.HasEndPoint) { ServiceEventSource.Current.ServiceMessage(this.Context, "Found new internal endpoint"); return(new TenantDeployment(CreationStatus.Created, serviceEndPoint.EndPoint["MCTypeEndpoint"], serviceEndPoint.EndPoint["MCrcon"], tenantDeploymentDeployment)); } // no endpoint yet leave alone. return(new TenantDeployment(CreationStatus.InProcess, tenantDeploymentDeployment)); } else { var(mcPort, rconPort) = await GetNextAvaliablePortsAsync(); serviceDefinition.Ports = new Dictionary <string, int>() { { "MCPORT", mcPort }, { "RCONPORT", rconPort } }; await this.applicationOperator.CreateApplicationAsync(applicationDefinition, cancellationToken); ServiceEventSource.Current.ServiceMessage(this.Context, "Application created"); return(new TenantDeployment(CreationStatus.New, tenantDeploymentDeployment)); } }
public virtual string ImportVersionToApplication(Guid appId, ApplicationDefinition definition, string versionId = "") { try { var result = LuisRepository.ImportVersionToApplication(appId, definition, versionId); return(result); } catch (Exception ex) { Logger.Error("LuisService.GetApplicationVersions failed", this, ex); } return(null); }
public virtual string ImportApplication(ApplicationDefinition request, string appName = "") { try { var result = LuisRepository.ImportApplication(request, appName); return(result); } catch (Exception ex) { Logger.Error("LuisService.ImportApplication failed", this, ex); } return(null); }
public virtual string ImportApplication(ApplicationDefinition request, string appName = "") { return(PolicyService.ExecuteRetryAndCapture400Errors( "LuisService.ImportApplication", ApiKeys.LuisRetryInSeconds, () => { var result = LuisRepository.ImportApplication(request, appName); return result; }, null)); }
public virtual string ImportVersionToApplication(Guid appId, ApplicationDefinition definition, string versionId = "") { return(PolicyService.ExecuteRetryAndCapture400Errors( "LuisService.ImportVersionToApplication", ApiKeys.LuisRetryInSeconds, () => { var result = LuisRepository.ImportVersionToApplication(appId, definition, versionId); return result; }, null)); }
public void CreateInfo() { ApplicationDefinition applicationDefinition = DemoModel.Create(); ApplicationInfo application = new ApplicationInfo(); application.Set(applicationDefinition); DatabaseInfo database = application.Databases.First(); Assert.AreEqual("Database", database.Name); Assert.AreEqual(1, database.Tables.Count); }
public void CreateDefinition() { ApplicationDefinition application = DemoModel.Create(); ApplicationInfo applicationInfo = new ApplicationInfo(); applicationInfo.Set(application); EfFactory factory = new EfFactory(); Shipment shipment = new Shipment(); factory.Manufacture(shipment, applicationInfo); }
public async Task DeleteApplicationDefinitions() { #region Snippet:Managing_ApplicationDefinitions_DeleteAnApplicationDefinition // First we need to get the application definition collection from the resource group ApplicationDefinitionCollection applicationDefinitionCollection = resourceGroup.GetApplicationDefinitions(); // Now we can get the application definition with GetAsync() ApplicationDefinition applicationDefinition = await applicationDefinitionCollection.GetAsync("myApplicationDefinition"); // With DeleteAsync(), we can delete the application definition await applicationDefinition.DeleteAsync(WaitUntil.Completed); #endregion Snippet:Managing_ApplicationDefinitions_DeleteAnApplicationDefinition }
public void CreateInfo() { ApplicationDefinition applicationDefinition = DemoModel.Create(); ApplicationInfo application = new ApplicationInfo(); application.Set(applicationDefinition); DatabaseInfo database = application.Databases.First(); TableInfo table = database.Tables.First(); IFieldInfo field = table.Fields.First(); Assert.AreEqual("ID", field.Name); }
private ApplicationDefinition CreateApplicationDefinition( List<Reference> references, IEnumerable<PackageFile> files ) { var defaultEnvironments = DefaultEnvironments.Select( e => ( TargetEnvironment )Enum.Parse( typeof( TargetEnvironment ), e ) ); var scripts = files.Where( f => f.Environment != TargetEnvironment.None ); var specifiedEnvironments = scripts.Where( f => f.Environment != TargetEnvironment.All ).Select( f => f.Environment ).Distinct(); specifiedEnvironments = specifiedEnvironments.Union( defaultEnvironments ); Guid = Guid.Replace( "{", "" ).Replace( "}", "" ); ApplicationDefinition appdef = new ApplicationDefinition { Name = Name, Guid = Guid }; // Create the module elements. foreach( var env in specifiedEnvironments ) { var module = new ApplicationModule { Environment = env.ToString().ToLower() }; appdef.Modules.Add( module ); // Add the bootstrap scripts. module.Files.Add( new ApplicationFile { Name = "_package_start.js" } ); // Add javascript files from the references. foreach( var r in references ) { var referencedScripts = r.GetScriptsForEnvironment( env ); foreach( var script in referencedScripts ) { var file = new ApplicationFile { Name = r.PackageName + "/" + script }; module.Files.Add( file ); } } // Add the application's own javascript files. var environmentScripts = scripts.Where( s => s.Environment == TargetEnvironment.All || s.Environment == env ); foreach( var script in environmentScripts ) { var file = new ApplicationFile { Name = script.PathInProject }; module.Files.Add( file ); } module.Files.Add( new ApplicationFile { Name = "_package_end.js" } ); } foreach( var db in files.Where(f => f.IsDashboard ) ) { var dashboard = new ApplicationDashboard { Id = Path.GetFileNameWithoutExtension(db.PathInProject), Content = db.PathInProject }; appdef.Dashboards.Add(dashboard); } foreach( var r in references ) { foreach( var db in r.GetDashboards() ) { var dashboard = new ApplicationDashboard { Id = db.Key, Content = r.PackageName + "/" + db.Value }; appdef.Dashboards.Add( dashboard ); } } return appdef; }
public override bool Execute() { Log.LogMessage( MessageImportance.Low, "Packing M-Files Application." ); // Gather all the JavaScript files var scripts = new List<string>(); scripts.AddRange( SourceFiles ); // Gather all reference files. // For now we do not support project or zip references so this step doesn't require anything special. var referenceFiles = References ?? new string[] { }; Log.LogMessage( MessageImportance.Low, "Resolving references." ); // Make sure the referenced files exist. var missingFiles = referenceFiles.Where( r => !File.Exists( r ) ).ToList(); foreach( var missingFile in missingFiles ) Log.LogError( "Referenced file '{0}' does not exist.", missingFile ); if( missingFiles.Count > 0 ) return false; // Resolve references by filename. var referencesByName = referenceFiles.GroupBy( f => Path.GetFileName( f ) ); // Resolve the final filenames. var finalReferences = new Dictionary<string, string>(); foreach( var nameGroup in referencesByName ) { var fileName = nameGroup.Key; var files = nameGroup.ToList(); if( fileName.ToLower() == "appdef.xml" ) continue; if( fileName.ToLower() == "_package.js" ) continue; for( int i = 0; i < files.Count; i++ ) { // If there are more than one file with the same name, use a $i as postfix for it. string postfix = ""; if( files.Count > 1 ) postfix = "$" + i; string finalFileName = Path.GetFileNameWithoutExtension( fileName ) + postfix + Path.GetExtension( fileName ); finalReferences[ files[ i ] ] = finalFileName; } } // Generate the package definition. var appdef = new ApplicationDefinition(); appdef.Guid = this.Guid.Replace("{", "").Replace("}", ""); appdef.Name = this.Name; var appfiles = new List<ApplicationFile>(); appfiles.Add( new ApplicationFile { Name = "_package.js" } ); foreach( var environment in new[] { "vaultcore", "vaultui", "shellui" } ) { var module = new ApplicationModule { Environment = environment }; appdef.Modules.Add( module ); module.Files = appfiles; } // Build the zip file. // Add the local scripts. if( File.Exists( OutputFile ) ) File.Delete( OutputFile ); var outputZip = new Ionic.Zip.ZipFile( OutputFile ); foreach( var file in SourceFiles ) { outputZip.AddFile( file ); appfiles.Add( new ApplicationFile { Name = file } ); } // Add the referenced scripts. foreach( var reference in finalReferences ) { var file = reference.Key; if( Path.GetExtension( file ) == ".zip" ) { var inputZip = new Ionic.Zip.ZipFile( file ); foreach( var e in inputZip.Entries ) { var filename = Path.GetFileName( e.FileName ).ToLower(); if( filename == "appdef.xml" ) continue; if( filename == "_package.js" ) continue; var tempStream = new MemoryStream(); e.Extract( tempStream ); tempStream.Position = 0; var projectName = Path.GetFileNameWithoutExtension( reference.Value ); var entryPath = "_references/" + projectName + "/" + e.FileName; outputZip.AddEntry( entryPath, tempStream ); appfiles.Add( new ApplicationFile { Name = entryPath } ); } } else { var entry = outputZip.AddFile( file ); entry.FileName = "_references/" + reference.Value; appfiles.Add( new ApplicationFile { Name = entry.FileName } ); } } var stream = new MemoryStream(); var serializer = new XmlSerializer( typeof( ApplicationDefinition ) ); serializer.Serialize( stream, appdef ); stream.Flush(); stream.Position = 0; outputZip.AddEntry( "appdef.xml", stream ); var packageStream = this.GetType().Assembly.GetManifestResourceStream( "MFiles.SDK.Tasks.Scripts.package.js" ); outputZip.AddEntry( "_package.js", packageStream ); outputZip.Save(); LogArray( "Scripts", outputZip.Entries.Select( e => e.FileName ) ); return true; }