Exemplo n.º 1
0
        public async Task <List <SubtitleVM> > CalcSubtitlesVM(Voc voc)
        {
            List <SubtitleVM> subtitlesVM = new List <SubtitleVM>();
            var response = await httpService.PostAsync($"{url}/CalcSubtitlesVM", voc);

            if (response.Success)
            {
                try
                {
                    subtitlesVM = await Deserialize <List <SubtitleVM> >(response.HttpResponseMessage, defaultJsonSerializerOptions);
                }
                catch (Exception ex)
                {
                    subtitlesVM.Add(new SubtitleVM {
                        Exception = ex.Message
                    });
                }
            }
            else
            {
                subtitlesVM.Add(new SubtitleVM {
                    Exception = await response.GetBody()
                });
            }

            return(subtitlesVM);
        }
Exemplo n.º 2
0
        public async Task <PhraseVM> CreatePhrase(PhraseVM phraseVM)
        {
            var result = await appDbContext.Phrases.AddAsync(phraseVM.Phrase);

            foreach (string item in phraseVM.Phrase.Text.Split(' '))
            {
                Voc voc = await appDbContext.Vocs.FirstOrDefaultAsync(x => x.Text == item);

                if (voc != null)
                {
                    if (phraseVM.Phrase.VocsPhrases == null)
                    {
                        phraseVM.Phrase.VocsPhrases = new List <VocsPhrases>();
                    }
                    phraseVM.Phrase.VocsPhrases.Add(new VocsPhrases {
                        VocId = voc.Id
                    });
                }
            }

            await appDbContext.SaveChangesAsync();

            result.Entity.VocsPhrases = null;
            phraseVM.Phrase           = result.Entity;
            return(phraseVM);
        }
Exemplo n.º 3
0
        public async Task <ActionResult <VocVM> > CreateVoc(VocVM vocVM)
        {
            try
            {
                if (vocVM == null)
                {
                    return(BadRequest());
                }

                // Add custom model validation error
                Voc voc = await vocRepository.GetVocByname(vocVM.Voc);

                if (voc != null)
                {
                    ModelState.AddModelError("Name", $"Voc name: {vocVM.Voc.Text} already in use");
                    return(BadRequest(ModelState));
                }

                await vocRepository.CreateVoc(vocVM);

                return(CreatedAtAction(nameof(GetVoc),
                                       new { id = vocVM.Voc.Id }, vocVM));
            }
            catch (DbUpdateException Ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError,
                                  Ex.InnerException.Message));
            }
        }
Exemplo n.º 4
0
        public async void PlaySound(Voc v)
        {
            string searchString = "https://chinese.yabla.com/chinese-english-pinyin-dictionary.php?define=" + v.Character;

            try {
                HtmlWeb      web     = new HtmlWeb();
                HtmlDocument htmlDoc = web.Load(searchString);

                HtmlNodeCollection nodes = htmlDoc.DocumentNode.SelectNodes("//body/section/div/ul[@id='search_results']/li/div/span[@class='word']");
                if (nodes != null)
                {
                    foreach (HtmlNode node in nodes)
                    {
                        HtmlNodeCollection wordParse = node.SelectNodes(".//a");
                        string             word      = "";
                        foreach (HtmlNode singleParse in wordParse)
                        {
                            word += singleParse.InnerText;
                        }
                        if (word == v.Character)
                        {
                            await CrossMediaManager.Current.Play(node.SelectSingleNode(".//i").Attributes["data-audio_url"].Value);

                            break;
                        }
                    }
                }
            } catch { }
        }
Exemplo n.º 5
0
        public VocDataStore(string filePath_in)
        {
            FilePath = filePath_in;
            string wholeFile = System.IO.File.ReadAllText(FilePath);

            string[] lines = wholeFile.Split('\n');
            Vocs = new Voc[lines.Length];
            for (int i = 0; i < lines.Length; i++)
            {
                Vocs[i] = new Voc(lines[i]);
            }
            Changed = false;
        }
Exemplo n.º 6
0
        public async Task <ActionResult <List <SubtitleVM> > > CalcSubtitlesVM(Voc voc)
        {
            try
            {
                if (voc == null)
                {
                    return(BadRequest());
                }

                return(await subtitleRepository.CalcSubtitlesVM(voc));
            }
            catch (DbUpdateException Ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError,
                                  Ex.InnerException.Message));
            }
        }
Exemplo n.º 7
0
        public async Task SetPhrases()
        {
            foreach (Phrase phrase in appDbContext.Phrases)
            {
                foreach (string item in phrase.Text.Split(' '))
                {
                    Voc voc = await appDbContext.Vocs.FirstOrDefaultAsync(x => x.Text == item);

                    if (voc != null)
                    {
                        voc.VocsPhrases.Add(new VocsPhrases {
                            PhraseId = phrase.Id
                        });
                    }
                }
            }
        }
Exemplo n.º 8
0
        private async Task MessageReceivedAsync(IDialogContext context, IAwaitable <object> result)
        {
            //Voc.inited_rwl.EnterReadLock();
            //Voc.inited_rwl.ExitReadLock();
            using (var lk = await Voc.inited_rwl.WriterLockAsync())
            {
                bool inited = Voc.inited;
                if (!inited)
                {
                    Init();
                    Voc.inited = true;
                }
            }
            var activity = await result as Activity;

            // calculate something for us to return
            int length = (activity.Text ?? string.Empty).Length;

            // return our reply to the user
            //Voc.Show2(activity.Text);
            //string res = "";
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.AppendLine($"{activity.Text}");
            sb.AppendLine(new string('-', 20));
            foreach (var x in Voc.Show(activity.Text))
            {
                //res += x+" ";
                sb.AppendLine($"{x.Item2}");
                sb.AppendLine($"    {x.Item1}");
                //await context.PostAsync(x);
            }
            var s = sb.ToString().Replace("\n", "<br/>") /*.Replace("(",System.Web.HttpUtility.HtmlEncode("("))*//*.Replace(")","\\)").Replace("[","\\[").Replace("]","\\]")*/;

            //s = System.Web.HttpUtility.UrlEncode(s);
            System.Diagnostics.Trace.WriteLine(s);
            await context.PostAsync(s);

            //await context.PostAsync($"You sent {activity.Text} which is {res} !");
            //await context.PostAsync(HttpRuntime.AppDomainAppPath + "db\\");

            //await context.PostAsync($"You sent {activity.Text} which is {activity.Text} ");

            context.Wait(MessageReceivedAsync);
        }
Exemplo n.º 9
0
        public void SetNextVoc()
        {
            Voc v = Session.GetNext();

            if (v == null)
            {
                Character         = "✓";
                PinYin            = "Congrats!";
                Translation       = "You're done with this session! Repeat?";
                SessionOver       = CharacterVisible = PinYinVisible = TranslationVisible = true;
                NextButtonVisible = false;
                StarredText       = "";
                Progress          = Session.GetProgress();
                return;
            }
            Character   = v.Character;
            Translation = v.Translation;
            PinYin      = v.PinYin;
            switch (Character.Length)
            {
            case 0:
            case 1:
            case 2:
                CharacterSize = 120;
                break;

            case 3:
                CharacterSize = 100;
                break;

            case 4:
                CharacterSize = 80;
                break;
            }
            if (v.IsStarred(Session.GetMode()))
            {
                StarredText = "★";
            }
            else
            {
                StarredText = "☆";
            }
            Progress = Session.GetProgress();
        }
Exemplo n.º 10
0
        public void OnPost()
        {
            //System.Text.StringBuilder sb = new System.Text.StringBuilder();
            //sb.AppendLine($"{activity.Text}");
            //sb.AppendLine(new string('-', 20));
            Message.Clear();
            foreach (var x in Voc.Show(Query))
            {
                //res += x+" ";
                //sb.AppendLine($"{x.Item2}");
                //sb.AppendLine($"    {x.Item1}");
                Message.Add(new Tuple <string, string>($"{x.Item2}", $"{x.Item1}"));
                //await context.PostAsync(x);
            }
            //var s = sb.ToString().Replace("\n", "<br />");
            /*.Replace("(",System.Web.HttpUtility.HtmlEncode("("))*//*.Replace(")","\\)").Replace("[","\\[").Replace("]","\\]")*/

            //Message = s;
        }
Exemplo n.º 11
0
        async Task <List <Subtitle> > GetSubtitles(Voc voc)
        {
            List <VocSubtitle> vocSubtitles = await appDbContext.VocsSubtitless.Where(x => x.VocId == voc.Id).ToListAsync();

            List <Subtitle> subtitles = new List <Subtitle>();

            foreach (var vocSubtitle in vocSubtitles)
            {
                var subtitle = await appDbContext.Subtitles.Include(x => x.Movie).FirstOrDefaultAsync(x => x.Id == vocSubtitle.SubtitleId);

                subtitle.Text            = subtitle.Text.Replace(voc.Text, $"<mark>{voc.Text}</mark>");
                subtitle.Movie.Text      = null;
                subtitle.Movie.Subtitles = null;
                subtitle.VocSubtitles    = null;
                subtitles.Add(subtitle);
            }

            return(subtitles);
        }
Exemplo n.º 12
0
        public async Task <VocVM> UpdateVoc(VocVM vocVM)
        {
            Voc result = await appDbContext.Vocs
                         .FirstOrDefaultAsync(e => e.Id == vocVM.Voc.Id);

            if (result != null)
            {
                appDbContext.Entry(result).State = EntityState.Detached;
                result = mapper.Map(vocVM.Voc, result);
                appDbContext.Entry(result).State = EntityState.Modified;

                await appDbContext.SaveChangesAsync();

                return(new VocVM {
                    Voc = result
                });
            }

            return(null);
        }
Exemplo n.º 13
0
        public async Task <List <SubtitleVM> > CalcSubtitlesVM(Voc voc)
        {
            List <Subtitle> subtitles = await appDbContext.Subtitles
                                        .Where(x => x.Text.Contains(" " + voc.Text + " "))
                                        .OrderBy(x => x.Rank)
                                        .ToListAsync();

            List <SubtitleVM> subtitlesVM = new List <SubtitleVM>();

            foreach (var subtitle in subtitles)
            {
                subtitle.Movie = await appDbContext.Movies.FirstOrDefaultAsync(x => x.Id == subtitle.MovieId);

                subtitle.Movie.Text      = "";
                subtitle.Movie.Subtitles = null;

                subtitlesVM.Add(new SubtitleVM {
                    Subtitle = subtitle
                });
            }

            return(subtitlesVM);
        }
Exemplo n.º 14
0
        public async Task <ActionResult <VocVM> > UpdateVoc(int id, VocVM vocVM)
        {
            try
            {
                if (id != vocVM.Voc.Id)
                {
                    return(BadRequest("Voc ID mismatch"));
                }

                // Add custom model validation error
                Voc voc = await vocRepository.GetVocByname(vocVM.Voc);

                if (voc != null)
                {
                    ModelState.AddModelError("Name", $"Voc name: {vocVM.Voc.Text} already in use");
                    return(BadRequest(ModelState));
                }

                var vocToUpdate = await vocRepository.GetVoc(id);

                if (vocToUpdate == null)
                {
                    return(NotFound($"Voc with Id = {id} not found"));
                }

                await vocRepository.UpdateVoc(vocVM);

                return(CreatedAtAction(nameof(GetVoc), new { id = vocVM.Voc.Id }, vocVM));
            }

            catch (DbUpdateException Ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError,
                                  Ex.InnerException.Message));
            }
        }
Exemplo n.º 15
0
 /// <summary>
 /// ///////////////////////////////////////////////////////////////////////////////////////////////////////////
 /// </summary>
 public async Task <Voc> GetVocByname(Voc voc)
 {
     return(await appDbContext.Vocs.Where(n => n.Text == voc.Text && n.Id != voc.Id)
            .FirstOrDefaultAsync());
 }
Exemplo n.º 16
0
        private void Init()
        {
            int data_version = 18;

            //await Voc.InitAsync();

            if (!SaveAndLoad.FileExists("setting.txt"))
            {
                SaveAndLoad.SaveText("setting.txt", "");
            }

            Voc.setting = Voc.GetDoc("setting", false);

            if (!Voc.setting.exists("website"))
            {
                Voc.setting.add("website", "http://joe59491.azurewebsites.net");
            }
            if (!Voc.setting.exists("sound_url"))
            {
                Voc.setting.add("sound_url", "http://dictionary.reference.com/browse/");
            }
            if (!Voc.setting.exists("sound_url2"))
            {
                Voc.setting.add("sound_url2", "http://static.sfdict.com/staticrep/dictaudio");
            }
            if (!Voc.setting.exists("sound_type"))
            {
                Voc.setting.add("sound_type", ".mp3");
            }
            if (!Voc.setting.exists("data_version"))
            {
                Voc.setting.add("data_version", "0");
            }
            Voc.SavingSetting();

            if (!SaveAndLoad.FileExists("favorite.txt"))
            {
                SaveAndLoad.SaveText("favorite.txt", "");
            }
            Voc.favorite = Voc.GetDoc("favorite", false);
            if (!SaveAndLoad.FileExists("words.txt") || int.Parse(Voc.setting["data_version"]) < data_version)
            {
                Voc.DumpAppFile("words.txt");
            }
            if (!SaveAndLoad.FileExists("root.txt") || int.Parse(Voc.setting["data_version"]) < data_version)
            {
                Voc.DumpAppFile("root.txt");
            }
            if (!SaveAndLoad.FileExists("prefix.txt") || int.Parse(Voc.setting["data_version"]) < data_version)
            {
                Voc.DumpAppFile("prefix.txt");
            }
            if (!SaveAndLoad.FileExists("suffix.txt") || int.Parse(Voc.setting["data_version"]) < data_version)
            {
                Voc.DumpAppFile("suffix.txt");
            }
            if (!SaveAndLoad.FileExists("note.txt") || int.Parse(Voc.setting["data_version"]) < data_version)
            {
                Voc.DumpAppFile("note.txt");
            }
            if (int.Parse(Voc.setting["data_version"]) < data_version)
            {
                Voc.setting["data_version"] = data_version.ToString();
            }

            Voc.words = Voc.GetDoc("words", true);
            var tmp = Voc.words.val("apple");

            foreach (var x in Voc.words.data)
            {
                var y = x;
            }

            Voc.root = Voc.GetDoc("root", true);

            Voc.prefix = Voc.GetDoc("prefix", true);

            Voc.suffix = Voc.GetDoc("suffix", true);

            Voc.note = Voc.GetDoc("note", true);
        }