/// <summary> /// Restart Gwin Application /// </summary> public static void Restart() { GwinApp old_instance = GwinApp.instance; GwinApp.End(); GwinApp.Start(old_instance.TypeDBContext, old_instance.TypeBaseBLO, old_instance.FormApplication, old_instance.user); }
/// <summary> /// Change Application Language /// </summary> /// <param name="cultureInfo">CultureInfo Instance</param> public static void ChangeLanguage(CultureInfo cultureInfo) { GwinApp.instance.user.Language = Convert_CultureInfo_Language(cultureInfo); SetLanguage(cultureInfo); //[Role] Restart must be after Language change, for Set Application Name Title after // Initialize Form GwinApp.Restart(); }
/// <summary> /// Authentification /// </summary> private static void Login() { // Authentication fo Guest User // Change GuestUser by Current User if (GwinApp.Instance.user.Reference == nameof(User.Users.Guest)) { do { // Authentification LoginForm loginForm = new LoginForm(); loginForm.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; loginForm.ShowDialog(); } while (GwinApp.Instance.user.Reference == nameof(User.Users.Guest)); GwinApp.Restart(); } }
/// <summary> /// Set Language at the first Time, first GwinApp start /// </summary> /// <param name="cultureInfo">CultureInfo Instance</param> public static void SetLanguage(CultureInfo cultureInfo) { GwinApp.TestIf_Gwin_isStart(); // Must Delete All Entity Configuration, bacause it demande with language ConfigEntity.Despose(); // Set Date as Latin Date cultureInfo.DateTimeFormat.Calendar = new System.Globalization.GregorianCalendar(); // Change Gwin CultureInfo Instance GwinApp.Instance.CultureInfo = cultureInfo; // Change Thread CultureInfo Instance Thread.CurrentThread.CurrentCulture = cultureInfo; Thread.CurrentThread.CurrentUICulture = cultureInfo; // ReLoad Applicaton Interface instance.FormApplication.Reload(); }
/// <summary> /// /// </summary> /// <param name="AppMenu">Main Form application, /// it contrain the menu of application /// it is Mdi Form /// </param> /// <param name="user">Connected user, /// it can be null if the user is not yet connected /// </param> /// <param name="TypeDbContext"> /// Type of EntityFramework DbContext /// id used to create instance of GwinApp EntityBAO object /// </param> public static void Start(Type TypeDbContext, Type TypeBaseBLO, FormApplication AppMenu, User user) { // User must not be null CheckPramIsNull.CheckParam_is_NotNull(user, nameof(GwinApp), nameof(user)); // Lunch Loading Interface GwinApp.Loading_Start(); GwinApp.Loading_Status("Start Gwin Applicaton ..."); // Create GwinInstance to Authenticate GwinApp.Instance = new GwinApp(TypeDbContext, TypeBaseBLO, AppMenu, user); //Layer configuration : Initialize the dependency resolver DependencyResolver.Initialize(); // // Update Menu // // Change User Culture and Tread to do Update with User Language GwinApp.instance.CultureInfo = new CultureInfo(user.Language.ToString()); Thread.CurrentThread.CurrentCulture = GwinApp.instance.CultureInfo; Thread.CurrentThread.CurrentUICulture = GwinApp.instance.CultureInfo; // Update GwinApplicatio, after ModelConfiguration changes //[Update] // Must be befor Language Change, because SetLanguge Use MenuTable InstallApplicationGwinBLO installApplication = new InstallApplicationGwinBLO(TypeDbContext); installApplication.Update(); // Change Gwin Language if (AppMenu != null && user != null) { GwinApp.SetLanguage(GwinApp.Instance.CultureInfo); } // Load ApplicationName Instance IGwinBaseBLO ApplicationNameBLO = new GwinBaseBLO <ApplicationName>((DbContext)Activator.CreateInstance(instance.TypeDBContext)); List <object> ls_apps = ApplicationNameBLO.GetAll(); if (ls_apps != null && ls_apps.Count > 0) { GwinApp.instance.ApplicationName = (ApplicationName)ls_apps.First(); } else { ApplicationName applicationName = new ApplicationName(); applicationName.Name = new Entities.MultiLanguage.LocalizedString(); applicationName.Name.Current = "Gwin Application"; GwinApp.instance.ApplicationName = applicationName; } // Set Name Applicatoin in ApplicationMenu if (AppMenu != null) { AppMenu.Text = instance.ApplicationName.Name.Current; } // Close Loading Interface GwinApp.Loading_Close(); // Authentification Login(); }
/// <summary> /// End GwinApp /// </summary> public static void End() { GwinApp.instance = null; // Despose All Calculated Configuration ConfigEntity.Despose(); }