Exemplo n.º 1
0
        internal void Initialize()
        {
            if (!Initialized)
            {
                foreach (var es in EntitySettings.Values)
                {
                    if (string.IsNullOrEmpty(es.WebTypeName) && !es.StaticType.IsEmbeddedEntity())
                    {
                        es.WebTypeName = TypeLogic.TypeToName.TryGetC(es.StaticType) ?? Reflector.CleanTypeName(es.StaticType);
                    }
                }

                WebTypeNames = EntitySettings.Values.Where(es => es.WebTypeName.HasText())
                               .ToDictionary(es => es.WebTypeName, es => es.StaticType, StringComparer.InvariantCultureIgnoreCase, "WebTypeNames");


                Navigator.RegisterArea(typeof(Navigator), areaName: "Signum", resourcesNamespace: "Signum.Web.Signum");
                FileRepositoryManager.Register(new LocalizedJavaScriptRepository(typeof(JavascriptMessage), "Signum"));
                FileRepositoryManager.Register(new CalendarLocalizedJavaScriptRepository("~/Signum/calendarResources/"));
                FileRepositoryManager.Register(new UrlsRepository("~/Signum/urls/"));



                Schema.Current.ApplicationName = System.Web.Hosting.HostingEnvironment.ApplicationHost.GetPhysicalPath();

                if (Initializing != null)
                {
                    Initializing();
                }

                Initialized = true;
            }
        }
Exemplo n.º 2
0
        public static string ReadStaticFile(string virtualPath)
        {
            if (FileRepositoryManager.FileExists(virtualPath))
            {
                ActionResult        result       = FileRepositoryManager.GetFile(virtualPath);
                StaticContentResult staticResult = result as StaticContentResult;

                using (MemoryStream ms = new MemoryStream(staticResult.Uncompressed))
                    using (StreamReader reader = new StreamReader(ms))
                        return(reader.ReadToEnd());
            }
            else
            {
                if (virtualPath.StartsWith("~"))
                {
                    virtualPath = VirtualPathUtility.ToAbsolute(virtualPath);
                }

                using (Stream str = VirtualPathProvider.OpenFile(virtualPath))
                    using (StreamReader reader = new StreamReader(str))
                        return(reader.ReadToEnd());
            }
        }
Exemplo n.º 3
0
        public static void RegisterArea(Type clientType,
                                        string areaName            = null,
                                        string controllerNamespace = null,
                                        string resourcesNamespace  = null)
        {
            if (areaName == null)
            {
                areaName = clientType.Namespace.AfterLast('.');
            }

            if (areaName.Start(1) == "/")
            {
                throw new SystemException("Invalid start character / in {0}".FormatWith(areaName));
            }

            if (controllerNamespace == null)
            {
                controllerNamespace = clientType.Namespace;
            }

            if (resourcesNamespace == null)
            {
                resourcesNamespace = clientType.Namespace;
            }

            var assembly = clientType.Assembly;

            CompiledViews.RegisterArea(assembly, areaName);
            SignumControllerFactory.RegisterControllersIn(assembly, controllerNamespace, areaName);

            EmbeddedFilesRepository rep = new EmbeddedFilesRepository(assembly, "~/" + areaName + "/", resourcesNamespace);

            if (!rep.IsEmpty)
            {
                FileRepositoryManager.Register(rep);
            }
        }
Exemplo n.º 4
0
        /// <param name="copyTranslationsToRootFolder">avoids Web Application restart when translations change</param>
        public static void Start(ITranslator translator, bool translatorUser, bool translationReplacement, bool instanceTranslator, bool copyNewTranslationsToRootFolder = true)
        {
            if (Navigator.Manager.NotDefined(MethodInfo.GetCurrentMethod()))
            {
                CultureInfoClient.Start();

                Translator = translator;

                Navigator.RegisterArea(typeof(TranslationClient));

                if (translatorUser)
                {
                    Navigator.AddSettings(new List <EntitySettings>
                    {
                        new EntitySettings <TranslatorUserEntity> {
                            PartialViewName = t => ViewPrefix.FormatWith("TranslatorUser")
                        },
                        new EmbeddedEntitySettings <TranslatorUserCultureEmbedded> {
                            PartialViewName = t => ViewPrefix.FormatWith("TranslatorUserCulture")
                        },
                    });
                }

                if (translationReplacement)
                {
                    FileRepositoryManager.Register(new LocalizedJavaScriptRepository(typeof(TranslationJavascriptMessage), "translation"));

                    Navigator.AddSettings(new List <EntitySettings>
                    {
                        new EntitySettings <TranslationReplacementEntity> {
                            PartialViewName = t => ViewPrefix.FormatWith("TranslationReplacement")
                        },
                    });
                }

                SpecialOmniboxProvider.Register(new SpecialOmniboxAction("TranslateCode",
                                                                         () => TranslationPermission.TranslateCode.IsAuthorized(),
                                                                         uh => uh.Action((TranslationController tc) => tc.Index(null))));

                SpecialOmniboxProvider.Register(new SpecialOmniboxAction("LocalizableTypeUsedNotLocalized",
                                                                         () => TranslationPermission.TranslateCode.IsAuthorized(),
                                                                         uh => uh.Action((TranslationController tc) => tc.LocalizableTypeUsedNotLocalized(null))));

                if (instanceTranslator)
                {
                    SpecialOmniboxProvider.Register(new SpecialOmniboxAction("TranslateInstances",
                                                                             () => TranslationPermission.TranslateInstances.IsAuthorized(),
                                                                             uh => uh.Action((TranslatedInstanceController tic) => tic.Index())));
                }


                if (copyNewTranslationsToRootFolder)
                {
                    string path = Path.Combine(Path.GetDirectoryName(Path.GetDirectoryName(new Uri(typeof(DescriptionManager).Assembly.CodeBase).LocalPath)), "Translations");

                    if (!Directory.Exists(path))
                    {
                        Directory.CreateDirectory(path);
                    }

                    var existingFiles = Directory.GetFiles(path).ToHashSet();

                    foreach (string fromFile in Directory.GetFiles(DescriptionManager.TranslationDirectory))
                    {
                        string toFile = Path.Combine(path, Path.GetFileName(fromFile));

                        if (!existingFiles.Contains(toFile) || File.GetLastWriteTime(toFile) < File.GetLastWriteTime(fromFile))
                        {
                            File.Copy(fromFile, toFile, overwrite: true);
                        }
                    }

                    DescriptionManager.TranslationDirectory = path;
                }
            }
        }
Exemplo n.º 5
0
 public ActionResult GetFile(string file)
 {
     return(FileRepositoryManager.GetFile("~/" + file));
 }