Exemple #1
0
        //--------------------------------------------------------------------------
        public Word AddGroupWord(Group group, string word)
        {
            Word result = WordsService.Instance.GetWord(word);

            GroupsDao.AddGroupWord(group, result);
            return(result);
        }
Exemple #2
0
        //--------------------------------------------------------------------------
        public Group AddGroup(string group)
        {
            Group resultGroup = new Group()
            {
                Name = group
            };

            GroupsDao.Insert(ref resultGroup);
            return(resultGroup);
        }
Exemple #3
0
        //--------------------------------------------------------------------------
        public Group GetById(long groupId)
        {
            if (_groupCache.ContainsKey(groupId))
            {
                return(_groupCache[groupId]);
            }

            Group group = GroupsDao.GetGroupById(groupId);

            _groupCache[group.Id] = group;
            return(group);
        }
Exemple #4
0
        //--------------------------------------------------------------------------
        public List <Word> GetWords(List <Group> groups)
        {
            // TODO: we can change to GetWords and have a join query
            List <long> wordIds = GroupsDao.GetWordIds(groups);

            List <Word> words = new List <Word>();

            foreach (long wordId in wordIds)
            {
                words.Add(WordsService.Instance.GetWordById(wordId));
            }

            return(words);
        }
Exemple #5
0
        //--------------------------------------------------------------------------
        /// <summary>
        /// The function uses all information in SQL tables in the program mySQL and
        /// builds a new XML file containing all that information.
        /// The XML file describes all the books'information
        /// </summary>
        public void ExportDatabase(FileInfo filename)
        {
            Initialize();

            DataSet ds = new DataSet();

            ds.DataSetName = "books-concordance";
            DocumentsDao.FillDataSet(ds);
            WordsDao.FillDataSet(ds);
            ContainsDao.FillDataSet(ds);
            RelationsDao.FillDataSet(ds);
            GroupsDao.FillDataSet(ds);
            PhrasesDao.FillDataSet(ds);

            ds.WriteXml(filename.FullName);

            DocumentsService.Instance.ExportStorage(filename);
        }
Exemple #6
0
        //--------------------------------------------------------------------------
        private Group Insert(string name)
        {
            List <Group> groups = GroupsDao.Query(name);

            if (groups.Count > 0)
            {
                throw new Exception("a group with this name already exists!");
            }

            // check we have the minimal set of meta data
            Group group = new Group()
            {
                Name = name
            };

            GroupsDao.Insert(ref group);

            _groupCache[group.Id] = group;
            return(group);
        }
Exemple #7
0
        //--------------------------------------------------------------------------
        public void Import(XmlDocument document)
        {
            GlobalParamatersService.Delegate.OnDatabaseImportProgress(0);

            DatabaseConnectionService.Instance.SafeTransaction(_ => {
                XmlNodeList xmlGroupList =
                    document.DocumentElement.SelectNodes(".//group");
                XmlNodeList xmlGroupWordsList =
                    document.DocumentElement.SelectNodes(".//groups_words");

                int total     = xmlGroupList.Count + xmlGroupWordsList.Count;
                int processed = 0;

                foreach (XmlNode xmlGroup in xmlGroupList)
                {
                    Group group           = GroupsDao.ImportGroup(xmlGroup);
                    _groupCache[group.Id] = group;

                    processed++;
                    float percent = (float)processed / (float)total;
                    percent      *= 100;
                    GlobalParamatersService.Delegate.OnDatabaseImportProgress(
                        (int)percent);
                }

                foreach (XmlNode xmlGroupWord in xmlGroupWordsList)
                {
                    GroupsDao.ImportGroupWord(xmlGroupWord);

                    processed++;
                    float percent = (float)processed / (float)total;
                    percent      *= 100;
                    GlobalParamatersService.Delegate.OnDatabaseImportProgress(
                        (int)percent);
                }
            });
        }
Exemple #8
0
 //--------------------------------------------------------------------------
 public void DropTable()
 {
     GroupsDao.DropTable();
     _groupCache.Clear();
 }
Exemple #9
0
 //--------------------------------------------------------------------------
 public void CreateTable()
 {
     GroupsDao.CreateTable();
     _groupCache.Clear();
 }
Exemple #10
0
 //--------------------------------------------------------------------------
 public List <Group> Query(string name)
 {
     return(GroupsDao.Query(name));
 }
Exemple #11
0
 //--------------------------------------------------------------------------
 public List <Group> GetAll()
 {
     return(GroupsDao.GetAll());
 }
Exemple #12
0
 //--------------------------------------------------------------------------
 public bool RemoveGroup(Group group)
 {
     GroupsDao.DeleteAllGroupWords(group);
     return(GroupsDao.Delete(group));
 }
Exemple #13
0
 //--------------------------------------------------------------------------
 public Int64 GetCount()
 {
     return(GroupsDao.GetCount());
 }
Exemple #14
0
 //--------------------------------------------------------------------------
 public void RemoveGroupWord(Group group, Word word)
 {
     GroupsDao.DeleteGroupWord(group, word);
 }