public ConfigurationServiceResponse InstallFromStorage(string source) { var response = new ConfigurationServiceResponse(); try { if (!CheckLicense(source)) { throw new LicException(); } bool canExecuteOperation = GetInstallPackageRights(); if (!canExecuteOperation) { throw new SecurityException( string.Format( new LocalizableString("Terrasoft.Core", "DBSecurityEngine.Exception.Admin.UnitCannotExecuteAdminOperation"), "CanManageSolution")); } InstallStorage(source); WorkspaceBuilder workspaceBuilder = WorkspaceBuilderUtility.CreateWorkspaceBuilder(UserConnection.AppConnection); CompilerErrorCollection compilerErrors = workspaceBuilder.Build(UserConnection.Workspace); if (GetIsError(compilerErrors)) { throw new Exception(new LocalizableString("Terrasoft.WebApp", "CompilationErrors.Caption")); } WorkspaceUtilities.ForceGetCustomPackageUId(UserConnection); } catch (Exception exception) { response.Exception = exception; } return(response); }
public CompilationResult CompileWorkspace(bool compileModified = false) { if (UserConnection.DBSecurityEngine.GetCanExecuteOperation("CanManageSolution")) { WorkspaceBuilder workspaceBuilder = WorkspaceBuilderUtility.CreateWorkspaceBuilder(AppConnection); CompilerErrorCollection compilerErrors = workspaceBuilder.Rebuild(AppConnection.Workspace, out var buildResultType); var configurationBuilder = ClassFactory.Get <IAppConfigurationBuilder>(); if (compileModified) { configurationBuilder.BuildChanged(); } else { configurationBuilder.BuildAll(); } return(new CompilationResult { Status = buildResultType, CompilerErrors = compilerErrors }); } else { throw new Exception("You don't have permission for operation CanManageSolution"); } }
private ResponceApplyChanges ApplyDbChanges(ResponceApplyChanges response, EntitySchema entitySchema, bool isBild = false) { try { DBMetaScript dbMetaScript = UserConnection.DBMetaScript; DBMetaActionCollection actions = GetDbMetaActions(entitySchema); dbMetaScript.CheckActions(actions); DBMetaScriptValidationMessageCollection validationMessages = dbMetaScript.ValidationMessages; if (validationMessages.HasErrors()) { response.Code = "Error.DbMetaActions.Get"; response.success = false; return(response); } dbMetaScript.ExecuteActions(actions); if (validationMessages.HasErrors()) { response.Code = "Error.DbMetaActions.Execute"; response.success = false; return(response); } } catch (Exception e) { response.success = false; response.Code = "Error.DbMetaActions.Apply"; response.Message = e.Message; return(response); } if (response.success && isBild) { try { #if !NETSTANDARD2_0 // TODO CRM-46783 var workspaceBuilder = WorkspaceBuilderUtility.CreateWorkspaceBuilder(AppConnection); CompilerErrorCollection compilerErrors = workspaceBuilder.Build(AppConnection.Workspace); if (compilerErrors.HasErrors) { response.success = false; response.Code = "Error.DbMetaActions.BuildError"; return(response); } #endif } catch (Exception) { response.success = false; response.Code = "Error.DbMetaActions.Build"; return(response); } } return(response); }