Exemple #1
0
 public static List<Guid> GetGuidListStatic(string sqlStatement) {
     DBConnect conn = new DBConnect();
     conn.Open();
     List<Guid> list = conn.GetGuidList(sqlStatement);
     conn.Close();
     return list;
 }
        public SQL_XML_IO_statuses CreateInitialDatapack()
        {

            EFDbContext.SaveChgs();
            RefTree.Clear();

            string path = FileService.GetMainDataDirectory()+"Resources\\InitialData.xml";

            XmlWriter xmlWriter = XmlWriter.Create(path,new XmlWriterSettings() {Encoding = Encoding.UTF8 });
            DBConnect dbconnect = new DBConnect();
            dbconnect.Open();

            xmlWriter.WriteStartDocument();
            xmlWriter.WriteStartElement(SQL_XML_IOSystem.StartElementName);
                xmlWriter.WriteAttributeString("version", Data_Versions.version_1_1.ToString());
                xmlWriter.WriteAttributeString("MainElement_Guid", Guid.NewGuid().ToString());
                xmlWriter.WriteAttributeString("MainElement_Name", "DataPack");

            logging = true;

            PathList = new List<string>();

            //
            schema.ClearRules();
            schema.GetTableByName(Language.TableName).DontProcessingBackwardReferences = true;
            //schema.GetTableByName(Language.TableName).DontProcessingField("FrequencyDictionary_id");
            //schema.GetTableByName(Dictionary.TableName).DontProcessing = true;
            //schema.GetTableByName(ProcessingWordsRules.TableName).DontProcessing = true;
            //schema.GetTableByName(Subtitles.TableName).DontProcessing = true;

            // upload the languages
            foreach(Language lang in ViewModelLocator.Instance.Languages)
            {
                SaveTable(xmlWriter,dbconnect,Language.TableName,lang.id);
            }

            // upload the LearningWordStrategy
            //schema.GetTableByName(LearningWordStrategy.TableName).GetFieldByName("")
            schema.GetTableByName(AppSetting.TableName).DontProcessing = true;
            schema.GetTableByName(LearningItem.TableName).DontProcessing = true;
            schema.GetTableByName(SubtitleItem.TableName).DontProcessing = true;
            foreach (LearningWordStrategy lws in EFDbContext.DataBase.LearningWordStrategy)
            {
                SaveTable(xmlWriter, dbconnect, LearningWordStrategy.TableName, lws.id);
            }

            xmlWriter.WriteEndDocument();
            xmlWriter.Close();


            // Save the 


            dbconnect.Close();


            return SQL_XML_IO_statuses.Ok;
        }
        public SQL_XML_IO_statuses DeleteLearningItem(LearningItem learningitem)
        {

            if (learningitem == null) return SQL_XML_IO_statuses.OtherError;

            RefTree.Clear();
            DBConnect dbconnect = new DBConnect();
            dbconnect.Open();

            //logging = true;
            //FindAllReferences_("LearningItems",learningitem.id);
            if(ViewModelLocator.Instance.AppSetting.CurrentLearningItem.id == learningitem.id)
            {
                ViewModelLocator.Instance.AppSetting.CurrentLearningItem = null;
            }
            EFDbContext.SaveChgs();

            // Rules
            schema.ClearRules();
            schema.GetTableByName(AppSetting.TableName).DontProcessing = true;
            schema.GetTableByName(Dictionary.TableName).DontProcessing = true;
            schema.GetTableByName(Language.TableName).DontProcessing = true;
            schema.GetTableByName(WordOfDictionary.TableName).DontProcessing = true;

            // optimization for speed
            DBConnect.Query query = new DBConnect.Query();
            query.sql = SQLqueries.Delete_Update_Subtitle_Items_Words;
            query.AddParameter("id", learningitem.id);
            dbconnect.ExecuteSQL(query);

            query.sql = SQLqueries.Delete_Subtitile_Items_Words;
            query.AddParameter("id", learningitem.id);
            dbconnect.ExecuteSQL(query);

            query.sql = SQLqueries.Delete_Subtitle_Items;
            query.AddParameter("id", learningitem.id);
            dbconnect.ExecuteSQL(query);


            PathList.Clear();
            DeleteTable(dbconnect,"LearningItems",learningitem.id,true);

            dbconnect.Close();
            ((IObjectContextAdapter)ViewModelLocator.Instance.DataBase).ObjectContext.Detach(learningitem);

            EFDbContext.SaveChgs();
            return SQL_XML_IO_statuses.Ok;
        }
Exemple #4
0
 public static bool ObjectExistStatic(string table_name,Guid id)
 {
     DBConnect conn = new DBConnect();
     conn.Open();
     bool res = conn.ObjectExist(table_name, id);
     conn.Close();
     return res;
 }
        public SQL_XML_IO_statuses Load(string path,out Guid guid)
        {
            RefTree.Clear();
            guid = Guid.Empty;
            FakeElements = new List<Ref>();
            if (!FileService.FileExists(path)) return SQL_XML_IO_statuses.NoFile;

            DBConnect dbconnect = new DBConnect();
            dbconnect.Open();

            using (XmlReader reader = XmlReader.Create(path))
            {

                int MaxElements = 1;
                XML_Element element;
                List<XML_Element> xml_elements = new List<XML_Element>();

                element = ReadElement(reader,Data_Versions.version_1_0,"xml");
                element = ReadElement(reader,Data_Versions.version_1_0,StartElementName);
               
                guid = new Guid(element.GetAttibute("MainElement_Guid"));
                string version_string = element.GetAttibute("version");
                if (version_string.Contains(".")) version_string = version_string.Replace(".0","");
                short VersionOfData = short.Parse(version_string);

                int Counter = 0;
                while (true)
                {
                    element = ReadElement(reader,VersionOfData);
                    if (element.Name == StartElementName) break;
                    AddToRefList(element.Name, Guid.Parse(element.guid), "", true);
                    xml_elements.Add(element);
                    Counter++;
                    if(Counter == MaxElements)
                    {
                        LoadElements(dbconnect,xml_elements,VersionOfData);
                        
                        xml_elements.Clear();
                        Counter = 0;
                    }
                }
                LoadElements(dbconnect,xml_elements,VersionOfData);
            }

            if (FakeElements.Count > 0)
            {
                foreach (var elm in FakeElements)
                {
                    dbconnect.ExecuteSQL("DELETE FROM ["+elm.tablename+"] WHERE id = '"+elm.guid+"'");
                }
            }

            dbconnect.Close();

            return SQL_XML_IO_statuses.Ok;
        }
        public SQL_XML_IO_statuses Save(string path, string table_name, Guid guid)
        {

            EFDbContext.SaveChgs();
            RefTree.Clear();

            XmlWriter xmlWriter = XmlWriter.Create(path,new XmlWriterSettings() {Encoding = Encoding.UTF8 });
            DBConnect dbconnect = new DBConnect();
            dbconnect.Open();

            xmlWriter.WriteStartDocument();
            xmlWriter.WriteStartElement(StartElementName);
                xmlWriter.WriteAttributeString("version", Data_Versions.version_1_1.ToString());
                xmlWriter.WriteAttributeString("MainElement_Guid", guid.ToString());
                xmlWriter.WriteAttributeString("MainElement_Name", table_name);

            logging = true;

            //PathList = null;
            PathList = new List<string>();
            
            SaveTable(xmlWriter,dbconnect,table_name,guid);

            dbconnect.Close();

            xmlWriter.WriteEndDocument();
            xmlWriter.Close();

            return SQL_XML_IO_statuses.Ok;

        }