/// <summary> /// Loads the dictionary. /// </summary> /// <param name="filename">The filename.</param> /// <remarks>Documented by Dev05, 2007-08-08</remarks> public void LoadDictionary(string filename) { this.filename = filename; if (dictionary != null) dictionary.Dispose(); try { ConnectionStringStruct css = new ConnectionStringStruct(DatabaseType.MsSqlCe, filename); MLifter.DAL.Interfaces.IUser user = UserFactory.Create((GetLoginInformation)MLifter.Controls.LoginForm.OpenLoginForm, css, (DataAccessErrorDelegate)delegate { return; }, this); css.LmId = User.GetIdOfLearningModule(filename, user); user.ConnectionString = css; dictionary = user.Open(); //fetch all cards dictionary.PreloadCardCache(); cards = dictionary.Cards.Cards; } catch (IOException) { TaskDialog.MessageBox(Resources.DIC_ERROR_LOADING_LOCKED_CAPTION, Resources.DIC_ERROR_LOADING_LOCKED_CAPTION, String.Format(Resources.DIC_ERROR_LOADING_LOCKED_TEXT, filename), TaskDialogButtons.OK, TaskDialogIcons.Error); throw; } catch (ProtectedLearningModuleException) { TaskDialog.MessageBox(Resources.DIC_ERROR_LOADING_PROTECTED_CAPTION, Resources.DIC_ERROR_LOADING_PROTECTED_CAPTION, Resources.DIC_ERROR_LOADING_PROTECTED_TEXT, TaskDialogButtons.OK, TaskDialogIcons.Error); throw; } catch (Exception exp) { Trace.WriteLine("Exception in LoadDictionary: " + exp.ToString()); TaskDialog.MessageBox(Resources.DIC_ERROR_LOADING_CAPTION, Resources.DIC_ERROR_LOADING_CAPTION, String.Format(Resources.DIC_ERROR_LOADING_TEXT, filename), TaskDialogButtons.OK, TaskDialogIcons.Error); throw; //rethrow exception to notify the caller } }