Beispiel #1
0
        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)));
        }
Beispiel #2
0
        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());
        }
Beispiel #3
0
        public void Init()
        {
            l = new VocLoader(session);

            Load <Appointment>();
            Load <Word>();
            Load <Vocabulary>();
            Load <WordTemplate>();
            Load <Speciality>();
        }
Beispiel #4
0
        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));
        }
Beispiel #5
0
        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());
        }
Beispiel #6
0
    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();
                }
            }
        }
    }