コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public bool Logout()
        {
            Common.UnregisterUserInformation();
            ApplicationContextManager.UnregisterMessageLoader();
            Common.CurrentDatabase = null;

            ImageCache.ReleaseInstance();
            ProgramScreenCache.ReleaseInstance();
            InternalScreenCache.ReleaseIntance();
            DatabaseScreenCache.ReleaseInstance();
            return(true);
        }
コード例 #2
0
        /// <summary>
        /// Login operation
        /// </summary>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <returns>Return true if login complete. Otherwise return false.</returns>
        public bool Login(NZString username, NZString password)
        {
            ConfigurationController prc           = new ConfigurationController();
            UserValidator           userValidator = new UserValidator();
            ErrorItem errorItem = null;

            //== Load last database configuration.
            Map <string, string> mapConfig  = prc.LoadConfiguration();
            DatabaseCredential   credential = new DatabaseCredential();

            credential.Provider     = (DatabaseProvider)Enum.Parse(typeof(DatabaseProvider), mapConfig[ConfigurationController.S_KEY_PROVIDER_NAME].Value);
            credential.ServerName   = mapConfig[ConfigurationController.S_KEY_SERVER_NAME].Value;
            credential.DatabaseName = mapConfig[ConfigurationController.S_KEY_DATABASE_NAME].Value;
            credential.Username     = mapConfig[ConfigurationController.S_KEY_USERNAME].Value;
            credential.Password     = mapConfig[ConfigurationController.S_KEY_PASSWORD].Value;

            credential.ConnectionTimeout = mapConfig[ConfigurationController.S_KEY_CONNECTION_TIMEOUT].Value;


            int iCommandTimeout = 0;

            if (Int32.TryParse(mapConfig[ConfigurationController.S_KEY_COMMAND_TIMEOUT].Value, out iCommandTimeout))
            {
                Database.m_iDefaultCommandTimeout = iCommandTimeout;
            }
            else
            {
                Database.m_iDefaultCommandTimeout = 30;
            }

            //== Test database connection ans register current database.
            errorItem = DatabaseManager.TestConnection(credential);
            if (errorItem == null)
            {
                // Initialize DAO Factory.
                SystemMaintenance.DAO.DAOFactory.SetProvider(credential.Provider);

                // Register current database.
                Common.RegisterCurrentDatabase(DatabaseManager.CreateDatabase(credential));

                // Register message loader.
                ApplicationContextManager.RegisterMessageLoader(new DBMessageLoader(Common.CurrentDatabase));
            }
            else
            {
                MessageBox.Show(errorItem.Message.MessageDescription, null, MessageBoxButtons.OK, MessageBoxIcon.Error);
                // Release current database.
                Common.UnregisterUserInformation();
                return(false);
            }


            userValidator.ValidateLogin(username, password);

            // Singin user information session.
            UserBIZ userBiz = new UserBIZ();
            UserDTO userDTO = userBiz.LoadUser(username);

            userBiz.RegisterMachine(username);

            UserInfo userInfo = new UserInfo();

            userInfo.DateFormat       = (eDateFormat)userDTO.DATE_FORMAT.StrongValue;
            userInfo.LanguageCD.Value = userDTO.LANG_CD.Value;
            userInfo.LastLogin.Value  = DateTime.Now;
            userInfo.UserCD.Value     = userDTO.USER_ACCOUNT.Value;
            userInfo.Username.Value   = userDTO.FULL_NAME.Value;
            userInfo.Machine.Value    = Environment.MachineName;
            userInfo.GroupCode.Value  = userDTO.GROUP_CD.Value;
            Common.RegisterUserInformation(userInfo);

            // Store last user login.
            IniFile ini = new IniFile(System.IO.Path.Combine(Application.StartupPath, Common.CONFIG_FILENAME));

            ini.Write(S_SECTION, S_USER, username.StrongValue);
            ini.Dispose();

            return(true);
        }