Headless CMS and Content Managment Hub
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

55 lines
1.7 KiB

// ==========================================================================
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex UG (haftungsbeschraenkt)
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
using System;
using System.Globalization;
using System.Runtime.Serialization;
namespace Squidex.Infrastructure.Orleans
{
[Serializable]
public class GrainContext : ISerializable
{
public CultureInfo Culture { get; private set; }
public CultureInfo CultureUI { get; private set; }
private GrainContext()
{
}
protected GrainContext(SerializationInfo info, StreamingContext context)
{
Culture = CultureInfo.GetCultureInfo(info.GetString(nameof(Culture))!);
CultureUI = CultureInfo.GetCultureInfo(info.GetString(nameof(CultureUI))!);
}
public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue(nameof(Culture), Culture.Name);
info.AddValue(nameof(CultureUI), CultureUI.Name);
}
public static GrainContext Create()
{
return new GrainContext
{
Culture = CultureInfo.CurrentCulture,
CultureUI = CultureInfo.CurrentUICulture
};
}
public void Use()
{
if (Culture != null)
{
CultureInfo.CurrentCulture = Culture;
CultureInfo.CurrentUICulture = CultureUI;
}
}
}
}