public int AddNewLM(string guid, int categoryId, string title, string licenceKey, bool contentProtected, int calCount) { if (!Parent.CurrentUser.ConnectionString.ConnectionString.EndsWith(Helper.EmbeddedDbExtension)) { ConnectionStringStruct css = Parent.CurrentUser.ConnectionString; css.ConnectionString += @"\" + title.Replace(@"\", "_") + Helper.EmbeddedDbExtension; css.Typ = DatabaseType.MsSqlCe; Parent.CurrentUser.ConnectionString = css; } { //replace invalid filename characters ConnectionStringStruct css = Parent.CurrentUser.ConnectionString; css.ConnectionString = Helper.FilterInvalidFilenameCharacters(css.ConnectionString); Parent.CurrentUser.ConnectionString = css; } if (File.Exists(Parent.CurrentUser.ConnectionString.ConnectionString)) { int i = 1; while (File.Exists(Parent.CurrentUser.ConnectionString.ConnectionString.Replace(Helper.EmbeddedDbExtension, "_" + i + Helper.EmbeddedDbExtension))) { i++; } ConnectionStringStruct css = Parent.CurrentUser.ConnectionString; css.ConnectionString = css.ConnectionString.Replace(Helper.EmbeddedDbExtension, "_" + i + Helper.EmbeddedDbExtension); Parent.CurrentUser.ConnectionString = css; } if (!Directory.Exists(Path.GetDirectoryName(Parent.CurrentUser.ConnectionString.ConnectionString))) { Directory.CreateDirectory(Path.GetDirectoryName(Parent.CurrentUser.ConnectionString.ConnectionString)); } using (SqlCeEngine clientEngine = new SqlCeEngine("Data Source=" + Parent.CurrentUser.ConnectionString.ConnectionString)) { clientEngine.CreateDatabase(); clientEngine.Dispose(); } using (SqlCeCommand cmd = MSSQLCEConn.CreateCommand(Parent.CurrentUser)) { cmd.CommandText = Resources.MsSqlCeDbCreateScript; MSSQLCEConn.ExecuteNonQuery(cmd); } MSSQLCEConn.ApplyIndicesToDatabase(MSSQLCEConn.GetConnection(Parent.CurrentUser)); int cat_id; using (SqlCeCommand cmd = MSSQLCEConn.CreateCommand(Parent.CurrentUser)) { cmd.CommandText = "SELECT id FROM Categories WHERE global_id=@cat_id;"; cmd.Parameters.Add("@cat_id", categoryId); cat_id = MSSQLCEConn.ExecuteScalar <int>(cmd).Value; } using (SqlCeCommand cmd = MSSQLCEConn.CreateCommand(Parent.CurrentUser)) { cmd.CommandText = "INSERT INTO LearningModules (guid, title, categories_id, default_settings_id, allowed_settings_id, licence_key, content_protected, cal_count) " + "VALUES (@guid, @title, @cat_id, @dset, @aset, @lk, @cp, @cals); SELECT @@IDENTITY;"; cmd.Parameters.Add("@guid", guid); cmd.Parameters.Add("@title", title); cmd.Parameters.Add("@cat_id", cat_id); cmd.Parameters.Add("@lk", licenceKey); cmd.Parameters.Add("@cp", contentProtected); cmd.Parameters.Add("@cals", calCount); cmd.Parameters.Add("@dset", MsSqlCeSettingsConnector.CreateNewDefaultSettings(Parent)); cmd.Parameters.Add("@aset", MsSqlCeSettingsConnector.CreateNewAllowedSettings(Parent)); return(MSSQLCEConn.ExecuteScalar <int>(cmd).Value); } }