private string GetDump(Lite <IEntity> target) { var entity = target.RetrieveAndForget(); using (CultureInfoUtils.ChangeBothCultures(Schema.Current.ForceCultureInfo)) return(entity.Dump()); }
static IDisposable OperationLogic_SurroundOperation(IOperation operation, OperationLogEntity log, Entity?entity, object?[]?args) { if (entity != null && ShouldLog.Invoke(entity, operation)) { if (operation.OperationType == OperationType.Execute && !entity.IsNew && ((IEntityOperation)operation).CanBeModified) { entity = RetrieveFresh(entity); } using (CultureInfoUtils.ChangeBothCultures(Schema.Current.ForceCultureInfo)) { log.Mixin <DiffLogMixin>().InitialState = entity.Dump(); } } return(new Disposable(() => { var target = log.GetTemporalTarget(); if (target != null && ShouldLog.Invoke(target, operation) && operation.OperationType != OperationType.Delete) { using (CultureInfoUtils.ChangeBothCultures(Schema.Current.ForceCultureInfo)) { log.Mixin <DiffLogMixin>().FinalState = target.Dump(); } } })); }
public void CanAssignDoubleInDeCulture() { string parameterName = "p1Dbl"; const double doubleValue = 0.123d; const string stringValueInvariant = "0.123"; Type dataType = typeof(double); var testParameterValue = new ScalarTestParameterValue(parameterName, dataType); string stringValueDe = null; CultureInfoUtils.ExecuteUsing("de-DE", () => { stringValueDe = doubleValue.ToString( CultureInfo.CreateSpecificCulture("DE-de")); testParameterValue.StringValue = stringValueDe; }); Assert.AreEqual(stringValueInvariant, testParameterValue.PersistedStringValue); testParameterValue.SetValue(doubleValue); Assert.AreEqual(stringValueInvariant, testParameterValue.PersistedStringValue); CultureInfoUtils.ExecuteUsing("de-DE", () => { Assert.AreEqual(stringValueDe, testParameterValue.GetDisplayValue()); }); }
public SqlPreCommand SynchronizationScript(bool interactive = true, bool schemaOnly = false, string replaceDatabaseName = null) { OnBeforeDatabaseAccess(); if (Synchronizing == null) { return(null); } using (CultureInfoUtils.ChangeBothCultures(ForceCultureInfo)) using (ExecutionMode.Global()) { Replacements replacements = new Replacements() { Interactive = interactive, ReplaceDatabaseName = replaceDatabaseName, SchemaOnly = schemaOnly }; SqlPreCommand command = Synchronizing .GetInvocationListTyped() .Select(e => { try { return(e(replacements)); } catch (Exception ex) { return(new SqlPreCommandSimple("-- Exception on {0}.{1}\r\n{2}".FormatWith(e.Method.DeclaringType.Name, e.Method.Name, ex.Message.Indent(2, '-')))); } }) .Combine(Spacing.Triple); return(command); } }
public async Task <HttpResponseMessage> ExecuteAuthorizationFilterAsync(HttpActionContext actionContext, CancellationToken cancellationToken, Func <Task <HttpResponseMessage> > continuation) { string action = ProfilerActionSplitterAttribute.GetActionDescription(actionContext); try { using (TimeTracker.Start(action)) { using (HeavyProfiler.Log("Web.API " + actionContext.Request.Method, () => actionContext.Request.RequestUri.ToString())) { var user = (IUserEntity)GetProp(actionContext, SignumAuthenticationFilterAttribute.UserKey); using (user != null ? UserHolder.UserSession(user) : null) { var culture = SignumAuthenticationFilterAttribute.GetCurrentCultures?.Invoke(actionContext); using (culture != null ? CultureInfoUtils.ChangeBothCultures(culture) : null) { var result = await continuation(); return(result); } } } } } finally { Statics.CleanThreadContextAndAssert(); } }
byte[] CreateFile(CultureInfo ci) { using (CultureInfoUtils.ChangeBothCultures(ci)) using (MemoryStream ms = new MemoryStream()) { using (StreamWriter sw = new StreamWriter(ms, Encoding.UTF8)) { var config = new { days = CultureInfo.CurrentCulture.DateTimeFormat.DayNames, daysShort = CultureInfo.CurrentCulture.DateTimeFormat.AbbreviatedDayNames, daysMin = CultureInfo.CurrentCulture.DateTimeFormat.ShortestDayNames, months = CultureInfo.CurrentCulture.DateTimeFormat.MonthNames, monthsShort = CultureInfo.CurrentCulture.DateTimeFormat.AbbreviatedMonthNames, today = CalendarMessage.Today.NiceToString(), }; sw.WriteLine("//Autogenerated {0} translation for bootstrap-datepicker".FormatWith(ci.EnglishName)); sw.WriteLine(";(function($){"); sw.WriteLine(" $.fn.datepicker.dates['{0}'] = {1};", ci.TwoLetterISOLanguageName, Newtonsoft.Json.JsonConvert.SerializeObject(config)); sw.WriteLine("}(jQuery));"); } return(ms.ToArray()); } }
public static string LoadKDString(string description, string resourceID, string systemType, params object[] args) { if (TryGetSlKDString(resourceID, description, systemType, out description)) { return(description); } return(LoadKDString(description, resourceID, CultureInfoUtils.GetCurrentCulture().Name, systemType, args)); }
public SqlPreCommand?SynchronizationScript(bool interactive = true, bool schemaOnly = false, string?replaceDatabaseName = null) { OnBeforeDatabaseAccess(); if (Synchronizing == null) { return(null); } using (CultureInfoUtils.ChangeBothCultures(ForceCultureInfo)) using (ExecutionMode.Global()) { Replacements replacements = new Replacements() { Interactive = interactive, ReplaceDatabaseName = replaceDatabaseName, SchemaOnly = schemaOnly }; SqlPreCommand?command = Synchronizing .GetInvocationListTyped() .Select(e => { try { SafeConsole.WriteColor(ConsoleColor.White, e.Method.DeclaringType !.TypeName()); Console.Write("."); SafeConsole.WriteColor(ConsoleColor.DarkGray, e.Method.MethodName()); Console.Write("..."); var result = e(replacements); if (result == null) { SafeConsole.WriteLineColor(ConsoleColor.Green, "OK"); } else { SafeConsole.WriteLineColor(ConsoleColor.Yellow, "Changes"); } return(result); } catch (Exception ex) { SafeConsole.WriteColor(ConsoleColor.Red, "Error"); SafeConsole.WriteLineColor(ConsoleColor.DarkRed, " (...it's probably ok, execute this script and try again)"); return(new SqlPreCommandSimple("-- Exception on {0}.{1}\r\n{2}".FormatWith(e.Method.DeclaringType !.Name, e.Method.Name, ex.Message.Indent(2, '-')))); } }) .Combine(Spacing.Triple); return(command); } }
public static void Start(SchemaBuilder sb, DynamicQueryManager dqm) { sb.Include <WordAttachmentEntity>() .WithQuery(dqm, () => s => new { Entity = s, s.Id, s.FileName, s.WordTemplate, s.OverrideModel, }); EmailTemplateLogic.FillAttachmentTokens.Register((WordAttachmentEntity wa, EmailTemplateLogic.FillAttachmentTokenContext ctx) => { if (wa.FileName != null) { EmailTemplateParser.Parse(wa.FileName, ctx.QueryDescription, ctx.ModelType).FillQueryTokens(ctx.QueryTokens); } }); Validator.PropertyValidator((WordAttachmentEntity e) => e.FileName).StaticPropertyValidation = WordAttachmentFileName_StaticPropertyValidation; EmailTemplateLogic.GenerateAttachment.Register((WordAttachmentEntity wa, EmailTemplateLogic.GenerateAttachmentContext ctx) => { var entity = wa.OverrideModel?.Retrieve() ?? (Entity)ctx.Entity ?? ctx.SystemEmail.UntypedEntity; if (wa.ModelConverter != null) { entity = wa.ModelConverter.Convert(entity); } using (CultureInfoUtils.ChangeBothCultures(ctx.Culture)) { WordTemplateEntity template = WordTemplateLogic.GetFromCache(wa.WordTemplate); var fileName = GetTemplateString(wa.FileName, ref wa.FileNameNode, ctx); var systemWordTemplate = template.SystemWordTemplate != null && !SystemWordTemplateLogic.RequiresExtraParameters(template.SystemWordTemplate) ? SystemWordTemplateLogic.CreateDefaultSystemWordTemplate(template.SystemWordTemplate, entity) : null; var bytes = WordTemplateLogic.CreateReport(template, entity, systemWordTemplate); return(new List <EmailAttachmentEmbedded> { new EmailAttachmentEmbedded { File = Files.FilePathEmbeddedLogic.SaveFile(new Entities.Files.FilePathEmbedded(EmailFileType.Attachment, fileName, bytes)), Type = EmailAttachmentType.Attachment, } }); } }); }
public static IDisposable CultureFromOperationContext() { MessageHeaders headers = OperationContext.Current.IncomingMessageHeaders; int culture = headers.FindHeader("CurrentCulture", "http://www.signumsoftware.com/Culture"); int cultureUI = headers.FindHeader("CurrentUICulture", "http://www.signumsoftware.com/Culture"); var changeCulture = culture == -1 ? null : CultureInfoUtils.ChangeCulture(headers.GetHeader <string>(culture)); var changeUICulture = cultureUI == -1 ? null : CultureInfoUtils.ChangeCulture(headers.GetHeader <string>(cultureUI)); return(Disposable.Combine(changeCulture, changeUICulture)); }
public static void Start(SchemaBuilder sb) { sb.Include <ExcelAttachmentEntity>() .WithQuery(() => s => new { Entity = s, s.Id, s.FileName, s.UserQuery, s.Related, }); EmailTemplateLogic.FillAttachmentTokens.Register((ExcelAttachmentEntity ea, EmailTemplateLogic.FillAttachmentTokenContext ctx) => { if (ea.FileName != null) { TextTemplateParser.Parse(ea.FileName, ctx.QueryDescription, ctx.ModelType).FillQueryTokens(ctx.QueryTokens); } if (ea.Title != null) { TextTemplateParser.Parse(ea.Title, ctx.QueryDescription, ctx.ModelType).FillQueryTokens(ctx.QueryTokens); } }); Validator.PropertyValidator((ExcelAttachmentEntity e) => e.FileName).StaticPropertyValidation = ExcelAttachmentFileName_StaticPropertyValidation; Validator.PropertyValidator((ExcelAttachmentEntity e) => e.Title).StaticPropertyValidation = ExcelAttachmentTitle_StaticPropertyValidation; EmailTemplateLogic.GenerateAttachment.Register((ExcelAttachmentEntity ea, EmailTemplateLogic.GenerateAttachmentContext ctx) => { var finalEntity = ea.Related?.RetrieveAndRemember() ?? (Entity?)ctx.Entity ?? ctx.Model !.UntypedEntity as Entity; using (finalEntity == null ? null : CurrentEntityConverter.SetCurrentEntity(finalEntity)) using (CultureInfoUtils.ChangeBothCultures(ctx.Culture)) { QueryRequest request = UserQueryLogic.ToQueryRequest(ea.UserQuery.RetrieveAndRemember()); var title = GetTemplateString(ea.Title, ref ea.TitleNode, ctx); var fileName = GetTemplateString(ea.FileName, ref ea.FileNameNode, ctx); var bytes = ExcelLogic.ExecutePlainExcel(request, title); return(new List <EmailAttachmentEmbedded> { new EmailAttachmentEmbedded { File = Files.FilePathEmbeddedLogic.SaveFile(new Entities.Files.FilePathEmbedded(EmailFileType.Attachment, fileName, bytes)), Type = EmailAttachmentType.Attachment, } }); } }); }
private static IEnumerable <T> CreateSemiSymbols() { IEnumerable <T> should = getSemiSymbols().ToList(); using (CultureInfoUtils.ChangeCulture(Schema.Current.ForceCultureInfo)) foreach (var item in should) { item.Name = item.NiceToString() !; } return(should); }
public async Task OnResourceExecutionAsync(ResourceExecutingContext precontext, ResourceExecutionDelegate next) { //Eagerly reading the whole body just in case to avoid "Cannot access a disposed object" //TODO: Make it more eficiently when https://github.com/aspnet/AspNetCore/issues/14396 var body = ReadAllBody(precontext.HttpContext); var context = await next(); if (context.Exception != null) { if (!AvoidLogException.Contains(context.Exception.GetType())) { var req = context.HttpContext.Request; var connFeature = context.HttpContext.Features.Get <IHttpConnectionFeature>(); var exLog = context.Exception.LogException(e => { e.ActionName = Try(100, () => (context.ActionDescriptor as ControllerActionDescriptor)?.ActionName); e.ControllerName = Try(100, () => (context.ActionDescriptor as ControllerActionDescriptor)?.ControllerName); e.UserAgent = Try(300, () => req.Headers["User-Agent"].FirstOrDefault()); e.RequestUrl = Try(int.MaxValue, () => req.GetDisplayUrl()); e.UrlReferer = Try(int.MaxValue, () => req.Headers["Referer"].ToString()); e.UserHostAddress = Try(100, () => connFeature.RemoteIpAddress.ToString()); e.UserHostName = Try(100, () => Dns.GetHostEntry(connFeature.RemoteIpAddress).HostName); e.User = (UserHolder.Current ?? (IUserEntity)context.HttpContext.Items[SignumAuthenticationFilter.Signum_User_Key])?.ToLite() ?? e.User; e.QueryString = Try(int.MaxValue, () => req.QueryString.ToString()); e.Form = Try(int.MaxValue, () => Encoding.UTF8.GetString(body)); e.Session = null; }); } if (ExpectsJsonResult(context)) { var statusCode = GetStatus(context.Exception.GetType()); var ci = TranslateExceptionMessage(context.Exception) ? SignumCultureSelectorFilter.GetCurrentCulture?.Invoke(precontext) : null; using (ci == null ? null : CultureInfoUtils.ChangeBothCultures(ci)) { var error = new HttpError(context.Exception, IncludeErrorDetails(context.Exception)); var response = context.HttpContext.Response; response.StatusCode = (int)statusCode; response.ContentType = "application/json"; await response.WriteAsync(JsonConvert.SerializeObject(error, SignumServer.JsonSerializerSettings)); context.ExceptionHandled = true; } } } }
public static MList <EmailTemplateMessageEmbedded> CreateMessages(Func <EmailTemplateMessageEmbedded> func) { var list = new MList <EmailTemplateMessageEmbedded>(); foreach (var ci in CultureInfoLogic.ApplicationCultures) { using (CultureInfoUtils.ChangeBothCultures(ci)) { list.Add(func()); } } return(list); }
private static string GetFieldValues( [NotNull] IRow row, [NotNull] TableView filterHelper, [NotNull] IEnumerable <TableView> parentHelpers) { return(CultureInfoUtils.ExecuteUsing( CultureInfo.InvariantCulture, () => { var sb = new StringBuilder(); AppendFieldValues(row, sb, filterHelper, parentHelpers); return sb.ToString().Trim(); })); }
public static IEnumerable <T> ForEachCulture <T>(Func <CultureInfoEntity, T> func) { if (EntityToCultureInfo.Value.Count == 0) { throw new InvalidOperationException("No {0} found in the database".FormatWith(typeof(CultureInfoEntity).Name)); } foreach (var c in EntityToCultureInfo.Value.Where(a => a.Value.IsNeutralCulture)) { using (CultureInfoUtils.ChangeBothCultures(c.Value)) { yield return(func(c.Key)); } } }
public void ReportCurrentCulture() { Console.WriteLine(@"CurrentCulture:"); Console.WriteLine( CultureInfoUtils.GetCultureInfoDescription(CultureInfo.CurrentCulture)); Console.WriteLine(); Console.WriteLine(@"CurrentUICulture:"); Console.WriteLine( CultureInfoUtils.GetCultureInfoDescription(CultureInfo.CurrentUICulture)); Console.WriteLine(); Console.WriteLine(@"InstalledUICulture:"); Console.WriteLine( CultureInfoUtils.GetCultureInfoDescription(CultureInfo.InstalledUICulture)); Console.WriteLine(); Console.WriteLine(@"InvariantCulture:"); Console.WriteLine( CultureInfoUtils.GetCultureInfoDescription(CultureInfo.InvariantCulture)); }
internal SqlPreCommand GenerationScipt() { OnBeforeDatabaseAccess(); if (Generating == null) { return(null); } using (CultureInfoUtils.ChangeBothCultures(ForceCultureInfo)) using (ExecutionMode.Global()) { return(Generating .GetInvocationListTyped() .Select(e => e()) .Combine(Spacing.Triple)); } }
private static string LoadKDString(string description, string resourceID, string language, string systemType, params object[] args) { string format = ""; if (language == "zh-CN") { if ((args == null) || (args.Length <= 0)) { return(description); } return(string.Format(description, args)); } if ((language == null) || (language.Trim() == "")) { language = CultureInfoUtils.GetOSSelectLanguageLocaleCode(); } try { ResourceManager resManagerInstance = GetResManagerInstance(language, systemType); if (language.Equals(Thread.CurrentThread.CurrentUICulture.Name, StringComparison.InvariantCultureIgnoreCase) || (systemType.ToString() != resManagerInstance.BaseName)) { resManagerInstance = LoadResourceAssembly(language, systemType); if (HttpContext.Current != null) { CallContext.SetData("KINGDEE_K3_RESMANAGER", resManagerInstance); } } format = resManagerInstance.GetString(resourceID, new CultureInfo(language)); if (((format != null) && (args != null)) && (args.Length > 0)) { format = string.Format(CultureInfo.CurrentCulture, format, args); } } catch { } if ((format == null) || (format.Length == 0)) { format = (description.Trim().Length == 0) ? resourceID : description; } return(format); }
public static void Start(SchemaBuilder sb) { sb.Settings.AssertImplementedBy((EmailTemplateEntity e) => e.Attachments.First(), typeof(ImageAttachmentEntity)); sb.Include <ImageAttachmentEntity>() .WithQuery(() => s => new { Entity = s, s.Id, s.FileName, s.ContentId }); Validator.PropertyValidator((ImageAttachmentEntity e) => e.FileName).StaticPropertyValidation = ImageAttachmentFileName_StaticPropertyValidation; EmailTemplateLogic.FillAttachmentTokens.Register((ImageAttachmentEntity wa, EmailTemplateLogic.FillAttachmentTokenContext ctx) => { if (wa.FileName != null) { TextTemplateParser.Parse(wa.FileName, ctx.QueryDescription, ctx.ModelType).FillQueryTokens(ctx.QueryTokens); } }); EmailTemplateLogic.GenerateAttachment.Register((ImageAttachmentEntity a, EmailTemplateLogic.GenerateAttachmentContext ctx) => { using (CultureInfoUtils.ChangeBothCultures(ctx.Culture)) { var fileName = !a.FileName.HasText() ? a.File.FileName : GetTemplateString(a.FileName, ref a.FileNameNode, ctx); return(new List <EmailAttachmentEmbedded> { new EmailAttachmentEmbedded { File = new FilePathEmbedded(EmailFileType.Attachment, fileName, a.File.BinaryFile), Type = a.Type, ContentId = a.ContentId, } }); } }); }
private static DateTime GetDateTimeRelativeToNow( [CanBeNull] string maximumDateTimeRelativeToNow) { DateTime now = DateTime.Now; if (string.IsNullOrEmpty(maximumDateTimeRelativeToNow)) { return(now); } if (StringUtils.IsNullOrEmptyOrBlank(maximumDateTimeRelativeToNow)) { return(now); } TimeSpan timeSpan = CultureInfoUtils.ExecuteUsing( CultureInfo.InvariantCulture, () => TimeSpan.Parse(maximumDateTimeRelativeToNow)); return(now.Add(timeSpan)); }
public void UseTempCultureInfo() { Console.WriteLine(@"CurrentCulture:"); Console.WriteLine( CultureInfoUtils.GetCultureInfoDescription(CultureInfo.CurrentCulture)); Console.WriteLine(); const string tempCulture = "uk-UA"; using ( new CultureInfoUtils.TempCultureInfo(CultureInfo.GetCultureInfo(tempCulture))) { CultureInfo ci = Thread.CurrentThread.CurrentCulture; Console.WriteLine(@"TemporaryCulture:"); Console.WriteLine(CultureInfoUtils.GetCultureInfoDescription(ci)); } Console.WriteLine(); Console.WriteLine(@"CurrentCulture:"); Console.WriteLine( CultureInfoUtils.GetCultureInfoDescription(CultureInfo.CurrentCulture)); }
protected int ComputeHashCodeForCulture(string name) { return(CultureInfoUtils.FastHash(name)); }
static int Main(string[] args) { try { using (AuthLogic.Disable()) using (CultureInfoUtils.ChangeCulture("en")) using (CultureInfoUtils.ChangeCultureUI("en")) { var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); Configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json") .AddJsonFile($"appsettings.{env}.json", true) .AddUserSecrets <Program>(optional: true) .Build(); Starter.Start( Configuration.GetConnectionString("ConnectionString"), Configuration.GetValue <bool>("IsPostgres"), Configuration.GetConnectionString("AzureStorageConnectionString"), Configuration.GetValue <string>("BroadcastSecret"), Configuration.GetValue <string>("BroadcastUrls")); Console.WriteLine("..:: Welcome to Southwind Loading Application ::.."); SafeConsole.WriteLineColor(env == "live" ? ConsoleColor.Red : env == "test" ? ConsoleColor.Yellow : ConsoleColor.Gray, Connector.Current.ToString()); Console.WriteLine(); if (args.Any()) { switch (args.First().ToLower().Trim('-', '/')) { case "sql": SqlMigrationRunner.SqlMigrations(true); return(0); case "csharp": SouthwindMigrations.CSharpMigrations(true); return(0); case "load": Load(args.Skip(1).ToArray()); return(0); default: { SafeConsole.WriteLineColor(ConsoleColor.Red, "Unkwnown command " + args.First()); Console.WriteLine("Examples:"); Console.WriteLine(" sql: SQL Migrations"); Console.WriteLine(" csharp: C# Migrations"); Console.WriteLine(" load 1-4,7: Load processes 1 to 4 and 7"); return(-1); } } } //if(args.Any()) while (true) { Action?action = new ConsoleSwitch <string, Action> { { "N", Administrator.NewDatabase }, { "G", CodeGenerator.GenerateCodeConsole }, { "SQL", SqlMigrationRunner.SqlMigrations }, { "CS", () => SouthwindMigrations.CSharpMigrations(false), "C# Migrations" }, { "S", Administrator.Synchronize }, { "L", () => Load(null), "Load" }, }.Choose(); if (action == null) { return(0); } action(); } } } catch (Exception e) { SafeConsole.WriteColor(ConsoleColor.DarkRed, e.GetType().Name + ": "); SafeConsole.WriteLineColor(ConsoleColor.Red, e.Message); SafeConsole.WriteLineColor(ConsoleColor.DarkRed, e.StackTrace !.Indent(4)); return(-1); } }
static int Main(string[] args) { try { using (AuthLogic.Disable()) using (CultureInfoUtils.ChangeCulture("en")) using (CultureInfoUtils.ChangeCultureUI("en")) { DynamicLogicStarter.AssertRoslynIsPresent(); Starter.Start(UserConnections.Replace(Settings.Default.ConnectionString)); Console.WriteLine("..:: Welcome to Southwind Loading Application ::.."); Console.WriteLine("Database: {0}", Regex.Match(((SqlConnector)Connector.Current).ConnectionString, @"Initial Catalog\=(?<db>.*)\;").Groups["db"].Value); Console.WriteLine(); if (args.Any()) { switch (args.First().ToLower().Trim('-', '/')) { case "sql": SqlMigrationRunner.SqlMigrations(true); return(0); case "csharp": SouthwindMigrations.CSharpMigrations(true); return(0); case "load": Load(args.Skip(1).ToArray()); return(0); default: { SafeConsole.WriteLineColor(ConsoleColor.Red, "Unkwnown command " + args.First()); Console.WriteLine("Examples:"); Console.WriteLine(" sql: SQL Migrations"); Console.WriteLine(" csharp: C# Migrations"); Console.WriteLine(" load 1-4,7: Load processes 1 to 4 and 7"); return(-1); } } } //if(args.Any()) while (true) { Action action = new ConsoleSwitch <string, Action> { { "N", NewDatabase }, { "G", CodeGenerator.GenerateCodeConsole }, { "SQL", SqlMigrationRunner.SqlMigrations }, { "CS", () => SouthwindMigrations.CSharpMigrations(false), "C# Migrations" }, { "S", Synchronize }, { "L", () => Load(null), "Load" }, }.Choose(); if (action == null) { return(0); } action(); } } } catch (Exception e) { SafeConsole.WriteColor(ConsoleColor.DarkRed, e.GetType().Name + ": "); SafeConsole.WriteLineColor(ConsoleColor.Red, e.Message); SafeConsole.WriteLineColor(ConsoleColor.DarkRed, e.StackTrace.Indent(4)); return(-1); } }
private EmailMessageEntity CreateEmailMessageInternal(EmailFromEmbedded from, List <EmailOwnerRecipientData> recipients) { EmailMessageEntity email; try { var ci = this.cultureInfo ?? EmailTemplateLogic.GetCultureInfo?.Invoke(entity ?? model?.UntypedEntity as Entity) ?? recipients.Where(a => a.Kind == EmailRecipientKind.To).Select(a => a.OwnerData.CultureInfo).FirstOrDefault()?.ToCultureInfo() ?? EmailLogic.Configuration.DefaultCulture.ToCultureInfo(); email = new EmailMessageEntity { Target = entity?.ToLite() ?? (this.model !.UntypedEntity as Entity)?.ToLite(), Recipients = recipients.Select(r => new EmailRecipientEmbedded(r.OwnerData) { Kind = r.Kind }).ToMList(), From = from, IsBodyHtml = template.IsBodyHtml, EditableMessage = template.EditableMessage, Template = template.ToLite(), Attachments = template.Attachments.SelectMany(g => EmailTemplateLogic.GenerateAttachment.Invoke(g, new EmailTemplateLogic.GenerateAttachmentContext(this.qd, template, dicTokenColumn, currentRows, ci) { ModelType = template.Model?.ToType(), Model = model, Entity = entity, })).ToMList() }; EmailTemplateMessageEmbedded?message = template.GetCultureMessage(ci) ?? template.GetCultureMessage(ci.Parent) ?? template.GetCultureMessage(EmailLogic.Configuration.DefaultCulture.ToCultureInfo()) ?? template.GetCultureMessage(EmailLogic.Configuration.DefaultCulture.ToCultureInfo().Parent); if (message == null) { throw new InvalidOperationException("Message {0} does not have a message for CultureInfo {1} (or Default)".FormatWith(template, ci)); } using (CultureInfoUtils.ChangeBothCultures(ci)) { email.Subject = SubjectNode(message).Print( new TextTemplateParameters(entity, ci, dicTokenColumn, currentRows) { IsHtml = false, Model = model }); email.Body = new BigStringEmbedded(TextNode(message).Print( new TextTemplateParameters(entity, ci, dicTokenColumn, currentRows) { IsHtml = template.IsBodyHtml, Model = model, })); } } catch (Exception ex) { ex.Data["Template"] = this.template.ToLite(); ex.Data["Model"] = this.model; ex.Data["Entity"] = this.entity; throw; } return(email); }
public static byte[] CreateReport(this WordTemplateEntity template, ModifiableEntity model = null, ISystemWordTemplate systemWordTemplate = null, bool avoidConversion = false) { WordTemplatePermission.GenerateReport.AssertAuthorized(); Entity entity = null; if (template.SystemWordTemplate != null) { if (systemWordTemplate == null) { systemWordTemplate = SystemWordTemplateLogic.CreateDefaultSystemWordTemplate(template.SystemWordTemplate, model); } else if (template.SystemWordTemplate.ToType() != systemWordTemplate.GetType()) { throw new ArgumentException("systemWordTemplate should be a {0} instead of {1}".FormatWith(template.SystemWordTemplate.FullClassName, systemWordTemplate.GetType().FullName)); } } else { entity = model as Entity ?? throw new InvalidOperationException("Model should be an Entity"); } using (template.DisableAuthorization ? ExecutionMode.Global() : null) using (CultureInfoUtils.ChangeBothCultures(template.Culture.ToCultureInfo())) { QueryDescription qd = DynamicQueryManager.Current.QueryDescription(template.Query.ToQueryName()); var array = template.ProcessOpenXmlPackage(document => { Dump(document, "0.Original.txt"); var parser = new TemplateParser(document, qd, template.SystemWordTemplate.ToType(), template); parser.ParseDocument(); Dump(document, "1.Match.txt"); parser.CreateNodes(); Dump(document, "2.BaseNode.txt"); parser.AssertClean(); if (parser.Errors.Any()) { throw new InvalidOperationException("Error in template {0}:\r\n".FormatWith(template) + parser.Errors.ToString(e => e.Message, "\r\n")); } var renderer = new TemplateRenderer(document, qd, entity, template.Culture.ToCultureInfo(), systemWordTemplate, template); renderer.MakeQuery(); renderer.RenderNodes(); Dump(document, "3.Replaced.txt"); renderer.AssertClean(); FixDocument(document); Dump(document, "4.Fixed.txt"); if (template.WordTransformer != null) { Transformers.GetOrThrow(template.WordTransformer)(new WordContext { Template = template, Entity = entity, SystemWordTemplate = systemWordTemplate }, document); } }); if (!avoidConversion && template.WordConverter != null) { array = Converters.GetOrThrow(template.WordConverter)(new WordContext { Template = template, Entity = entity, SystemWordTemplate = systemWordTemplate }, array); } return(array); } }
Dictionary <string, string> ReadAllKeys(CultureInfo ci) { using (CultureInfoUtils.ChangeCultureUI(ci)) return(Enum.GetValues(MessageType).Cast <Enum>().ToDictionary(a => a.ToString(), a => a.NiceToString())); }
private string GetDump(Entity entity) { using (CultureInfoUtils.ChangeBothCultures(Schema.Current.ForceCultureInfo)) return(entity.Dump()); }
static int Main(string[] args) { try { using (AuthLogic.Disable()) using (CultureInfoUtils.ChangeCulture("en")) using (CultureInfoUtils.ChangeCultureUI("en")) { ConfigRoot = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json") .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", true) .AddUserSecrets <Program>().Build(); var connectionString = ConfigRoot.GetConnectionString("ConnectionString"); Starter.Start(connectionString); Console.WriteLine("..:: Welcome to Southwind Loading Application ::.."); Console.WriteLine("Database: {0}", Regex.Match(((SqlConnector)Connector.Current).ConnectionString, @"Initial Catalog\=(?<db>.*)\;").Groups["db"].Value); Console.WriteLine(); if (args.Any()) { switch (args.First().ToLower().Trim('-', '/')) { case "sql": SqlMigrationRunner.SqlMigrations(true); return(0); case "csharp": SouthwindMigrations.CSharpMigrations(true); return(0); case "load": Load(args.Skip(1).ToArray()); return(0); default: { SafeConsole.WriteLineColor(ConsoleColor.Red, "Unkwnown command " + args.First()); Console.WriteLine("Examples:"); Console.WriteLine(" sql: SQL Migrations"); Console.WriteLine(" csharp: C# Migrations"); Console.WriteLine(" load 1-4,7: Load processes 1 to 4 and 7"); return(-1); } } } //if(args.Any()) while (true) { Action action = new ConsoleSwitch <string, Action> { { "N", NewDatabase }, { "G", CodeGenerator.GenerateCodeConsole }, { "SQL", SqlMigrationRunner.SqlMigrations }, { "CS", () => SouthwindMigrations.CSharpMigrations(false), "C# Migrations" }, { "S", Synchronize }, { "L", () => Load(null), "Load" }, }.Choose(); if (action == null) { return(0); } action(); } } } catch (Exception e) { SafeConsole.WriteColor(ConsoleColor.DarkRed, e.GetType().Name + ": "); SafeConsole.WriteLineColor(ConsoleColor.Red, e.Message); SafeConsole.WriteLineColor(ConsoleColor.DarkRed, e.StackTrace.Indent(4)); return(-1); } }