Ejemplo n.º 1
0
        async Task <String> WriteModelScriptModel(RequestView rw, IDataModel model, String rootId)
        {
            StringBuilder output        = new StringBuilder();
            String        dataModelText = "null";
            String        templateText  = "{}";
            StringBuilder sbRequired    = new StringBuilder();

            if (model != null)
            {
                // write model script
                String fileTemplateText = null;
                if (rw.template != null)
                {
                    fileTemplateText = await _host.ReadTextFile(Admin, rw.Path, rw.template + ".js");

                    AddRequiredModules(sbRequired, fileTemplateText);
                    templateText = CreateTemplateForWrite(_localizer.Localize(null, fileTemplateText));
                }
                dataModelText = JsonConvert.SerializeObject(model.Root, StandardSerializerSettings);
            }

            const String scriptText =
                @"
'use strict';
window.$currentModule = function() {
	$(RequiredModules)


	$(ModelScript)

	const rawData = $(DataModelText);
	const template = $(TemplateText);
	return {
		dataModel: modelData(template, rawData)
	};
};";
            const String emptyModel = "function modelData() {return null;}";
            var          text       = new StringBuilder(scriptText);

            text.Replace("$(DataModelText)", dataModelText);
            text.Replace("$(TemplateText)", _localizer.Localize(null, templateText));
            text.Replace("$(RequiredModules)", sbRequired != null ? sbRequired.ToString() : String.Empty);
            String modelScript = model != null?model.CreateScript(_scripter) : emptyModel;

            text.Replace("$(ModelScript)", modelScript);
            output.Append(text);
            return(output.ToString());
        }
Ejemplo n.º 2
0
        static async Task StartWatcher(IApplicationHost host, Boolean bAdmin)
        {
            if (_redirectLoaded)
            {
                return;
            }
            String redFilePath = host.MakeFullPath(bAdmin, String.Empty, "redirect.json");

            if (System.IO.File.Exists(redFilePath))
            {
                String json = await host.ReadTextFile(bAdmin, String.Empty, "redirect.json");

                _redirect = JsonConvert.DeserializeObject <Dictionary <String, String> >(json);
            }
            if (host.IsDebugConfiguration && _redirectWatcher == null)
            {
                _redirectWatcher = new FileSystemWatcher(Path.GetDirectoryName(redFilePath), "*.json")
                {
                    NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.Size | NotifyFilters.Attributes | NotifyFilters.LastAccess
                };
                _redirectWatcher.Changed += (sender, e) =>
                {
                    _redirectLoaded = false;
                };
                _redirectWatcher.EnableRaisingEvents = true;
            }
            _redirectLoaded = true;
        }
Ejemplo n.º 3
0
        public static async Task <RequestModel> CreateFromUrl(IApplicationHost host, Boolean bAdmin, RequestUrlKind kind, String normalizedUrl)
        {
            var    mi          = GetModelInfo(kind, normalizedUrl);
            String pathForLoad = await Redirect(host, bAdmin, mi.path);

            String jsonText = await host.ReadTextFile(bAdmin, pathForLoad, "model.json");

            var rm = JsonConvert.DeserializeObject <RequestModel>(jsonText);

            rm.EndInit();
            rm._action    = mi.action;
            rm._dialog    = mi.dialog;
            rm._popup     = mi.popup;
            rm._command   = mi.command;
            rm._report    = mi.report;
            rm._upload    = mi.upload;
            rm._data      = mi.data;
            rm._modelPath = pathForLoad;
            rm._id        = ((mi.id == "0") || (mi.id == "new")) ? null : mi.id;
            return(rm);
        }