public async Task LoadSelectedVocWithNewSpec() { // load voc from server var voc = sSession.Get <Vocabulary>(IntToGuid <Vocabulary>(2)); await s.OnlySelectedVocs(sSession, voc.ToEnumerable()) .SendFrom(Side.Server, Scope.Voc); // добавлен словарь, шаблоны Assert.IsTrue(clSession.Query <Vocabulary>().Any(x => x.Id == voc.Id)); var clientWtIds = clSession.Query <WordTemplate>().Select(x => x.Id).ToList(); Assert.IsTrue(voc.WordTemplates.Select(x => x.Id).IsSubsetOf(clientWtIds)); var vocOnCLient = clSession.Query <Vocabulary>() .Where(v => v.Id == voc.Id) .ToList(); var l = new VocLoader(clSession); l.LoadOrUpdateVocs(vocOnCLient); // по каждому шаблону есть слово var clientWordTitles = GetWordTitles(); Assert.IsTrue(voc.WordTemplates.Select(x => x.Title).All(x => clientWordTitles.Contains(x))); // загружена специальность выбранного словаря var clientSpecIds = clSession.Query <Speciality>().Select(x => x.Id).ToList(); Assert.IsTrue(voc.Specialities.Select(x => x.Id).All(x => clientSpecIds.Contains(x))); }
public async Task LoadVoc_AddNewWt_SendVocScopeFromServer() { var l = new VocLoader(clSession); // load voc from server var voc = sSession.Get <Vocabulary>(IntToGuid <Vocabulary>(1)); await s.OnlySelectedVocs(sSession, voc.ToEnumerable()) .SendFrom(Side.Server, Scope.Voc); // добавляем шаблон в словарь на сервере voc.AddTemplates(new[] { "qwe" }); sSession.DoSave(voc); // загружаем новые шаблоны для установленных словарей var cWtCount = clSession.Query <WordTemplate>().Count(); var installedVocs = sSession.Query <Vocabulary>(); s = new Syncer(serverCon.ConnectionString, clientCon.ConnectionString, serverCon.ProviderName); await s.WithInstalledVocs(installedVocs) .SendFrom(Side.Server, Scope.Voc); new VocLoader(clSession).AfterSyncVocs(s.DeletedOnServerIdsPerType); Assert.AreEqual(cWtCount + 1, clSession.Query <WordTemplate>().Count()); }
public void Init() { l = new VocLoader(session); Load <Appointment>(); Load <Word>(); Load <Vocabulary>(); Load <WordTemplate>(); Load <Speciality>(); }
public void RemoveWordSaveVoc() { Load <Vocabulary>(); var l = new VocLoader(session); l.LoadOrUpdateVocs(voc[1]); var w = voc[1].Words.First(); voc[1].RemoveWord(w); w.OnDelete(); session.DoDelete(w); // или после session.DoSave(voc[1]); Assert.IsFalse(GetWordTitles().Any(x => x == w.Title)); }
public async Task LoadSelectedVocWithOldSpec() { var voc = sSession.Get <Vocabulary>(IntToGuid <Vocabulary>(2)); // на клиенте уже есть специальности словаря var specTitles = voc.Specialities.Select(x => x.Title); specTitles.ForAll(t => { clSession.DoSave(new Speciality(t)); }); // load voc from server await s.OnlySelectedVocs(sSession, voc.ToEnumerable()) .SendFrom(Side.Server, Scope.Voc); // после загрузки проверяем справочные сущности на совпадение var checker = new AfterSyncChecker(clSession); checker.CheckReferenceEntitiesAfterDownload(s.AddedOnServerIdsPerType); // добавлен словарь, шаблоны Assert.IsTrue(clSession.Query <Vocabulary>().Any(x => x.Id == voc.Id)); var clientWtIds = clSession.Query <WordTemplate>().Select(x => x.Id).ToList(); Assert.IsTrue(voc.WordTemplates.Select(x => x.Id).IsSubsetOf(clientWtIds)); var selectedSynced = clSession.Query <Vocabulary>() .Where(v => v.Id == voc.Id) .ToList(); var l = new VocLoader(clSession); l.LoadOrUpdateVocs(selectedSynced); // по каждому шаблону есть слово var clientWordTitles = GetWordTitles(); Assert.IsTrue(voc.WordTemplates.Select(x => x.Title).All(x => clientWordTitles.Contains(x))); // специальность выбранного словаря уже была с другим Ид, остается одна var clientSpecIds = clSession.Query <Speciality>().Select(x => x.Id).ToList(); Assert.IsTrue(voc.Specialities.Select(x => x.Id).All(x => clientSpecIds.Contains(x))); Assert.AreEqual(voc.Specialities.Count(), clientSpecIds.Count()); }
IEnumerator PlayCutsAudio() { float currTime = 0.0f; for (int i = 0; i < cs.getNoOfAudioClips(); i++) { yield return(new WaitForSeconds(cs.getAudioTime(i) - currTime)); currTime = cs.getAudioTime(i); //New runtime.voc loading VocLoader voc = new VocLoader(cs.getAudioClip(i), "VocClip_" + i); if (voc != null) { if (voc.Audio != null) { aud.clip = voc.Audio; //aud.clip = Resources.Load <AudioClip>(cs.getAudioClip(i)); aud.loop = false; aud.Play(); } } } }