Exemplo n.º 1
0
        /// <summary>
        /// Конструктор объекта приложения.
        /// </summary>
        public App()
        {
            // Глобальный обработчик неперехваченных исключений. 
            UnhandledException += Application_UnhandledException;

            // Стандартная инициализация Silverlight
            InitializeComponent();

            // Инициализация телефона
            InitializePhoneApplication();

            // Отображение сведений о профиле графики во время отладки.
            if (System.Diagnostics.Debugger.IsAttached)
            {
                // Отображение текущих счетчиков частоты смены кадров
                Application.Current.Host.Settings.EnableFrameRateCounter = true;

                // Отображение областей приложения, перерисовываемых в каждом кадре.
                //Application.Current.Host.Settings.EnableRedrawRegions = true;

                // Включение режима визуализации анализа нерабочего кода 
                // для отображения областей страницы, переданных в GPU, с цветным наложением.
                //Application.Current.Host.Settings.EnableCacheVisualization = true;

                // Отключите обнаружение простоя приложения, установив для свойства UserIdleDetectionMode
                // объекта PhoneApplicationService приложения значение Disabled.
                // Внимание! Используйте только в режиме отладки. Приложение, в котором отключено обнаружение бездействия пользователя, будет продолжать работать
                // и потреблять энергию батареи, когда телефон не будет использоваться.
                PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
            }

            mDictionary = Dictionary.Open(Dictionary.AppConnectionString);
            mVocabulary = Vocabulary.Open(Vocabulary.IsoConnectionString);
        }
Exemplo n.º 2
0
        public static Dictionary Open(string connectionString)
        {
            Dictionary self = new Dictionary(connectionString);
            if (!self.DatabaseExists())
            {
                self.CreateDatabase();
            }

            self.Upgrade();

            self.TotalWords = self.Words.Count();
            self.TotalTranslations = self.Translations.Count();
            self.Description = self.Info.FirstOrDefault();

            return self;
        }
Exemplo n.º 3
0
 public Word AddWord(Dictionary.Word dictWord, Dictionary dict, bool submit = true)
 {
     Word w = new Word { Text = dictWord.Text, SourceLang = dict.Description.SourceLanguage };
     foreach (Dictionary.Translation dt in dictWord.Translations)
     {
         Translation t = new Translation
             { Word = w, Text = dt.Text, TargetLang = dict.Description.TargetLanguage,
              ReverseMark = MarkValue.ToLearn, ForwardMark = MarkValue.ToLearn};
         Translations.InsertOnSubmit(t);
         w.Translations.Add(t);
     }
     Words.InsertOnSubmit(w);
     if (submit)
     {
         SubmitChanges();
     }
     return w;
 }
Exemplo n.º 4
0
        public bool StartNextTest()
        {
            Dictionary<MarkValue, List<int>> allIds = new Dictionary<MarkValue, List<int>>();
            int numTriedMarks = 0;
            while (true)
            {
                int random = mRand.Next(100);
                MarkValue mark = MarkValue.Unknown;
                if (random < 15) // 15%
                {
                    mark = MarkValue.AlmostLearned;
                }
                else if (random < 50) // 35%
                {
                    mark = MarkValue.WithHints;
                }
                else // 50%
                {
                    mark = MarkValue.ToLearn;
                }

                if (!allIds.ContainsKey(mark))
                {
                    var idQuery = from t in mVocabulary.Translations
                                  where t.ReverseMark == mark
                                  select t.ID;
                    allIds[mark] = idQuery.ToList();
                    numTriedMarks++;
                }

                if (allIds[mark].Count > 0)
                {
                    random = mRand.Next(allIds[mark].Count);

                    var tranQuery = from t in mVocabulary.Translations
                                    where t.WordID == random
                                    select t;

                    List<Vocabulary.Translation> trans = tranQuery.ToList();

                    if (trans.Count > 0)
                    {
                        CurrentTest = new ReverseTest(trans.First());
                        return true;
                    }
                    else
                    {
                        break;
                    }
                }
                else
                {
                    // try again unless there is nothing to learn
                    if (numTriedMarks == 3)
                    {
                        break;
                    }
                }
            }

            CurrentTest = null;
            return false;
        }
Exemplo n.º 5
0
        public void Import(FileStream fs, Dictionary dict)
        {
            mCancel = false;
            using (StreamReader stream = new StreamReader(fs, Encoding.Unicode))
            {
                string line = null;
                string word = null;
                List<string> translations = new List<string>();
                Info info = new Info();

                while ((line = stream.ReadLine()) != null)
                {
                    if (mCancel) break;

                    if (line.StartsWith("#"))
                    {
                        if (line.StartsWith("#INDEX_LANGUAGE"))
                        {
                            info.SourceLanguage = GetSubstringBetween(line, "\"");
                        }
                        else if (line.StartsWith("#CONTENTS_LANGUAGE"))
                        {
                            info.TargetLanguage = GetSubstringBetween(line, "\"");
                        }
                        else if (line.StartsWith("#NAME"))
                        {
                            info.Name = GetSubstringBetween(line, "\"");
                        }
                    }
                    else if (line.Length != 0 && !Char.IsWhiteSpace(line, 0))
                    {
                        word = line;
                    }
                    else if (line.Contains("[trn]"))
                    {
                        translations.Add(GetSubstringBetween(line, "[trn]", "[/trn]"));
                    }
                    else if (line.Trim().Length == 0)
                    {
                        Dictionary.Word w = dict.AddWord(word, translations, false);
                        if (w == null)
                        {
                            Debug.WriteLine("Importing failed on word '{0}'", word);
                            break;
                        }
                        info.WordCount++;
                        info.TranslationCount += translations.Count;

                        if (info.WordCount % 100 == 0)
                        {
                            dict.SubmitChanges();

                            info.Progress = (double) fs.Position / (double) fs.Length;
                            if (ProgressHandler != null)
                            {
                                ProgressHandler.Invoke(this, info);
                            }
                        }

                        translations.Clear();
                    }
                }
                dict.SubmitChanges();

                Dictionary.Information dictInfo = new Dictionary.Information();
                dictInfo.Name = info.Name;
                dictInfo.SourceLanguage = info.SourceLanguage;
                dictInfo.TargetLanguage = info.TargetLanguage;
                dictInfo.OriginalFormat = "dsl";
                dictInfo.OriginalFile = fs.Name;

                dict.Info.InsertOnSubmit(dictInfo);
                dict.SubmitChanges();
            }
        }
Exemplo n.º 6
0
 public DictViewModel(Dictionary dict, Vocabulary voc)
 {
     mDictionary = dict;
     mVocabulary = voc;
 }