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); }
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); }
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)); } }
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 { } }
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; }
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)); } }
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 }); } } } }
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); }
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(); }
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; }
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); }
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); }
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); }
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)); } }
/// <summary> /// /////////////////////////////////////////////////////////////////////////////////////////////////////////// /// </summary> public async Task <Voc> GetVocByname(Voc voc) { return(await appDbContext.Vocs.Where(n => n.Text == voc.Text && n.Id != voc.Id) .FirstOrDefaultAsync()); }
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); }