public static void Start() { if (Navigator.Manager.NotDefined(MethodInfo.GetCurrentMethod())) { CultureInfoClient.Start(); Navigator.RegisterArea(typeof(SMSClient)); Navigator.AddSettings(new List <EntitySettings> { new EmbeddedEntitySettings <SMSConfigurationEmbedded> { PartialViewName = e => ViewPrefix.FormatWith("SMSConfiguration") }, new EntitySettings <SMSMessageEntity> { PartialViewName = e => ViewPrefix.FormatWith("SMSMessage") }, new EntitySettings <SMSTemplateEntity> { PartialViewName = e => ViewPrefix.FormatWith("SMSTemplate") }, new EmbeddedEntitySettings <SMSTemplateMessageEmbedded> { PartialViewName = e => ViewPrefix.FormatWith("SMSTemplateMessage") }, new EntitySettings <SMSSendPackageEntity> { PartialViewName = e => ViewPrefix.FormatWith("SMSSendPackage") }, new EntitySettings <SMSUpdatePackageEntity> { PartialViewName = e => ViewPrefix.FormatWith("SMSUpdatePackage") }, new ModelEntitySettings <MultipleSMSModel> { PartialViewName = e => ViewPrefix.FormatWith("MultipleSMS") }, }); OperationClient.AddSettings(new List <OperationSettings> { new EntityOperationSettings <Entity>(SMSMessageOperation.CreateSMSWithTemplateFromEntity) { Click = ctx => Module["createSmsWithTemplateFromEntity"](ctx.Options(), JsFunction.Event, ctx.Url.Action((SMSController sms) => sms.CreateSMSMessageFromTemplate()), SmsTemplateFindOptions(ctx.Entity.GetType()).ToJS(ctx.Prefix, "New")) }, new ContextualOperationSettings <Entity>(SMSMessageOperation.SendSMSMessagesFromTemplate) { Click = ctx => Module["sendMultipleSMSMessagesFromTemplate"](ctx.Options(), JsFunction.Event, ctx.Url.Action((SMSController sms ) => sms.SendMultipleMessagesFromTemplate()), SmsTemplateFindOptions(ctx.SingleType).ToJS(ctx.Prefix, "New")) }, new ContextualOperationSettings <Entity>(SMSMessageOperation.SendSMSMessages) { Click = ctx => Module["sentMultipleSms"](ctx.Options(), JsFunction.Event, ctx.Prefix, ctx.Url.Action((SMSController sms) => sms.SendMultipleSMSMessagesModel()), ctx.Url.Action((SMSController sms) => sms.SendMultipleMessages())) }, }); } }
public static void Start() { if (Navigator.Manager.NotDefined(MethodInfo.GetCurrentMethod())) { CultureInfoClient.Start(); Navigator.RegisterArea(typeof(WordClient)); Navigator.AddSettings(new List <EntitySettings> { new EntitySettings <WordTemplateEntity> { PartialViewName = e => ViewPrefix.FormatWith("WordTemplate") }, new EntitySettings <SystemWordTemplateEntity> { }, new EntitySettings <WordTransformerSymbol> { }, new EntitySettings <WordConverterSymbol> { }, }); OperationClient.AddSetting(new EntityOperationSettings <WordTemplateEntity>(WordTemplateOperation.CreateWordReport) { Group = EntityOperationGroup.None, Click = ctx => Module["createWordReportFromTemplate"](ctx.Options(), JsFunction.Event, new FindOptions(ctx.Entity.Query.ToQueryName()).ToJS(ctx.Prefix, "New"), ctx.Url.Action((WordController mc) => mc.CreateWordReport())) }); } }
public static void Start(bool smtpConfig, bool newsletter, bool pop3Config, bool emailReport, Type[] quickLinkFrom) { if (Navigator.Manager.NotDefined(MethodInfo.GetCurrentMethod())) { CultureInfoClient.Start(); Navigator.RegisterArea(typeof(MailingClient)); Navigator.AddSettings(new List <EntitySettings> { new EmbeddedEntitySettings <EmailAttachmentEmbedded> { PartialViewName = e => ViewPrefix.FormatWith("EmailAttachment") }, new EntitySettings <EmailPackageEntity> { PartialViewName = e => ViewPrefix.FormatWith("EmailPackage") }, new EntitySettings <EmailMessageEntity> { PartialViewName = e => ViewPrefix.FormatWith("EmailMessage"), AvoidValidateRequest = true }, new EmbeddedEntitySettings <EmailAddressEmbedded> { PartialViewName = e => ViewPrefix.FormatWith("EmailAddress") }, new EmbeddedEntitySettings <EmailRecipientEntity> { PartialViewName = e => ViewPrefix.FormatWith("EmailRecipient") }, new EmbeddedEntitySettings <EmailConfigurationEmbedded> { PartialViewName = e => ViewPrefix.FormatWith("EmailConfiguration") }, new EntitySettings <SystemEmailEntity> { }, new EntitySettings <EmailMasterTemplateEntity> { PartialViewName = e => ViewPrefix.FormatWith("EmailMasterTemplate"), AvoidValidateRequest = true }, new EmbeddedEntitySettings <EmailMasterTemplateMessageEmbedded> { PartialViewName = e => ViewPrefix.FormatWith("EmailMasterTemplateMessage"), MappingDefault = new EntityMapping <EmailMasterTemplateMessageEmbedded>(true) .SetProperty(emtm => emtm.MasterTemplate, ctx => { return((EmailMasterTemplateEntity)ctx.Parent.Parent.Parent.Parent.UntypedValue); }) }, new EntitySettings <EmailTemplateEntity> { PartialViewName = e => ViewPrefix.FormatWith("EmailTemplate"), AvoidValidateRequest = true }, new EmbeddedEntitySettings <EmailTemplateMessageEmbedded>() { PartialViewName = e => ViewPrefix.FormatWith("EmailTemplateMessage") }, new EmbeddedEntitySettings <EmailTemplateContactEmbedded>() { PartialViewName = e => ViewPrefix.FormatWith("EmailTemplateContact"), MappingDefault = new EntityMapping <EmailTemplateContactEmbedded>(true) .SetProperty(ec => ec.Token, ctx => { string tokenStr = UserAssetsHelper.GetTokenString(ctx); return(ParseQueryToken(tokenStr, ctx.Parent.Parent.Parent.Inputs[TypeContextUtilities.Compose("Query", EntityBaseKeys.RuntimeInfo)])); }), }, new EmbeddedEntitySettings <EmailTemplateRecipientEntity>() { PartialViewName = e => ViewPrefix.FormatWith("EmailTemplateRecipient"), MappingDefault = new EntityMapping <EmailTemplateRecipientEntity>(true) .SetProperty(ec => ec.Token, ctx => { string tokenStr = UserAssetsHelper.GetTokenString(ctx); return(ParseQueryToken(tokenStr, ctx.Parent.Parent.Parent.Parent.Inputs[TypeContextUtilities.Compose("Query", EntityBaseKeys.RuntimeInfo)])); }) }, }); OperationClient.AddSettings(new List <OperationSettings> { new EntityOperationSettings <EmailTemplateEntity>(EmailMessageOperation.CreateEmailFromTemplate) { Group = EntityOperationGroup.None, Click = ctx => Module["createMailFromTemplate"](ctx.Options(), JsFunction.Event, new FindOptions(((EmailTemplateEntity)ctx.Entity).Query.ToQueryName()).ToJS(ctx.Prefix, "New"), ctx.Url.Action((MailingController mc) => mc.CreateMailFromTemplateAndEntity())) } }); if (smtpConfig) { Navigator.AddSettings(new List <EntitySettings> { new EntitySettings <SmtpConfigurationEntity> { PartialViewName = e => ViewPrefix.FormatWith("SmtpConfiguration") }, new EmbeddedEntitySettings <SmtpNetworkDeliveryEmbedded> { PartialViewName = e => ViewPrefix.FormatWith("SmtpNetworkDelivery") }, new EmbeddedEntitySettings <ClientCertificationFileEmbedded> { PartialViewName = e => ViewPrefix.FormatWith("ClientCertificationFile") }, }); } if (newsletter) { Navigator.AddSettings(new List <EntitySettings> { new EntitySettings <NewsletterEntity> { PartialViewName = e => ViewPrefix.FormatWith("Newsletter"), AvoidValidateRequest = true }, new EntitySettings <NewsletterDeliveryEntity> { PartialViewName = e => ViewPrefix.FormatWith("NewsletterDelivery") }, }); OperationClient.AddSettings(new List <OperationSettings> { new EntityOperationSettings <NewsletterEntity>(NewsletterOperation.RemoveRecipients) { Click = ctx => Module["removeRecipients"](ctx.Options(), new FindOptions(typeof(NewsletterDeliveryEntity), "Newsletter", ctx.Entity).ToJS(ctx.Prefix, "New"), ctx.Url.Action((MailingController mc) => mc.RemoveRecipientsExecute())) }, new EntityOperationSettings <NewsletterEntity>(NewsletterOperation.Send) { Group = EntityOperationGroup.None, } }); } if (emailReport) { Navigator.AddSettings(new List <EntitySettings> { new EntitySettings <SendEmailTaskEntity> { PartialViewName = e => ViewPrefix.FormatWith("SendEmailTask") } }); } if (pop3Config) { Navigator.AddSettings(new List <EntitySettings> { new EntitySettings <Pop3ConfigurationEntity> { PartialViewName = e => ViewPrefix.FormatWith("Pop3Configuration") }, new EntitySettings <Pop3ReceptionEntity> { PartialViewName = e => ViewPrefix.FormatWith("Pop3Reception") }, }); } if (quickLinkFrom != null) { LinksClient.RegisterEntityLinks <Entity>((lite, ctx) => { if (!quickLinkFrom.Contains(lite.EntityType)) { return(null); } return(new[] { new QuickLinkExplore(typeof(EmailMessageEntity), "Target", lite) }); }); } TasksGetWebMailBody += WebMailProcessor.ReplaceUntrusted; TasksGetWebMailBody += WebMailProcessor.CidToFilePath; TasksSetWebMailBody += WebMailProcessor.AssertNoUntrusted; TasksSetWebMailBody += WebMailProcessor.FilePathToCid; Navigator.EntitySettings <EmailMessageEntity>().MappingMain.AsEntityMapping() .RemoveProperty(a => a.Body) .SetProperty(a => a.Body, ctx => { if (!ctx.HasInput) { return(ctx.None()); } var email = ((EmailMessageEntity)ctx.Parent.UntypedValue); return(SetWebMailBody(ctx.Input, new WebMailOptions { Attachments = email.Attachments, UntrustedImage = null, Url = RouteHelper.New(), })); }); SpecialOmniboxProvider.Register(new SpecialOmniboxAction("AsyncEmailPanel", () => AsyncEmailSenderPermission.ViewAsyncEmailSenderPanel.IsAuthorized(), uh => uh.Action((AsyncEmailSenderController pc) => pc.View()))); } }
/// <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; } } }