internal void ApplyAfterMsAppLoadTransforms(ErrorContainer errors) { // Update volatile documentproperties _entropy.SetProperties(_properties); // Shard templates, parse for default values var templateDefaults = new Dictionary <string, ControlTemplate>(); foreach (var template in _templates.UsedTemplates) { if (!ControlTemplateParser.TryParseTemplate(_templateStore, template.Template, _properties.DocumentAppType, templateDefaults, out _, out _)) { errors.GenericError($"Unable to parse template file {template.Name}"); throw new DocumentException(); } } // Also add Screen and App templates (not xml, constructed in code on the server) GlobalTemplates.AddCodeOnlyTemplates(_templateStore, templateDefaults, _properties.DocumentAppType); // PCF templates if (_pcfControls.Count == 0) { foreach (var kvp in _templateStore.Contents) { if (kvp.Value.IsPcfControl && kvp.Value.DynamicControlDefinitionJson != null) { _pcfControls.Add(kvp.Key, PcfControl.GetPowerAppsControlFromJson(kvp.Value)); kvp.Value.DynamicControlDefinitionJson = null; } } } var componentInstanceTransform = new ComponentInstanceTransform(errors); var componentDefTransform = new ComponentDefinitionTransform(errors, _templateStore, componentInstanceTransform); // Transform component definitions and populate template set of component instances that need updates foreach (var ctrl in _components) { AddComponentDefaults(ctrl.Value, templateDefaults); componentDefTransform.AfterRead(ctrl.Value); } var transformer = new SourceTransformer(this, errors, templateDefaults, new Theme(_themes), componentInstanceTransform, _editorStateStore, _templateStore, _entropy); foreach (var ctrl in _screens.Concat(_components)) { transformer.ApplyAfterRead(ctrl.Value); } StabilizeAssetFilePaths(errors); // Persist the original order of resource entries in Resources.json in the entropy. this.PersistOrderingOfResourcesJsonEntries(); }
internal void ApplyAfterMsAppLoadTransforms(ErrorContainer errors) { // Update volatile documentproperties _entropy.SetProperties(_properties); // Shard templates, parse for default values var templateDefaults = new Dictionary <string, ControlTemplate>(); foreach (var template in _templates.UsedTemplates) { if (!ControlTemplateParser.TryParseTemplate(_templateStore, template.Template, _properties.DocumentAppType, templateDefaults, out _, out _)) { errors.GenericError($"Unable to parse template file {template.Name}"); throw new DocumentException(); } } // Also add Screen and App templates (not xml, constructed in code on the server) GlobalTemplates.AddCodeOnlyTemplates(_templateStore, templateDefaults, _properties.DocumentAppType); var componentInstanceTransform = new ComponentInstanceTransform(errors); var componentDefTransform = new ComponentDefinitionTransform(errors, _templateStore, componentInstanceTransform); // Transform component definitions and populate template set of component instances that need updates foreach (var ctrl in _components) { AddComponentDefaults(ctrl.Value, templateDefaults); componentDefTransform.AfterRead(ctrl.Value); } var transformer = new SourceTransformer(errors, templateDefaults, new Theme(_themes), componentInstanceTransform, _editorStateStore, _templateStore, _entropy); foreach (var ctrl in _screens.Concat(_components)) { transformer.ApplyAfterRead(ctrl.Value); } StabilizeAssetFilePaths(); }