Example #1
0
 public NewKeeper(CasEnvironment casEnvironment, IAuditRepository auditRepository)
 {
     _casEnvironment  = casEnvironment;
     _auditRepository = auditRepository;
     _filesSmartCore  = new FilesSmartCore(_casEnvironment);
     _apiProvider     = casEnvironment.ApiProvider;
 }
Example #2
0
        public void SmartCoreFileTest_InsertLinksForAnotherFiles()
        {
            var dbManager     = GetEnviroment();
            var fileSmartCore = new FilesSmartCore(dbManager);

            //Константа =999 для того что бы в тестах было проще искать в бд линки для удаления данных перед вставкой
            const int linkTypeId       = 999;
            const int directiveId1     = 7;
            const int directiveId2     = 8;
            int       directiveTypeId1 = SmartCoreType.Directive.ItemId;

            //Создаем линк с новым файлом
            var link1   = CreateItemFileLink(directiveId1, directiveTypeId1, linkTypeId);
            var fileId1 = fileSmartCore.SaveAttachedFile(link1);

            //Создаем линк с новым файлом(таким же как и в 1 линке) и новым parentId
            var link2 = CreateItemFileLink(directiveId2, directiveTypeId1, linkTypeId);

            UpdateFileLink(link2);            //Присваиваем другой файл для линка
            var fileId2 = fileSmartCore.SaveAttachedFile(link2);

            Assert.AreNotEqual(fileId1, fileId2, "Id файла не должны быть одинаковыми");

            var dsLinks = dbManager.Execute(ItemFileLinksQueries.GetSelectQuery(new[] { link1.ItemId, link2.ItemId }));

            Assert.AreEqual(2, dsLinks.Tables[0].Rows.Count, "Должно быть 2 линка");
            var getFirstLink  = ItemFileLinksQueries.Fill(dsLinks.Tables[0].Rows[0]);
            var getSecondLink = ItemFileLinksQueries.Fill(dsLinks.Tables[0].Rows[1]);

            Assert.AreNotEqual(getFirstLink.File.ItemId, getSecondLink.File.ItemId, "Id на файлы должны отличаться");
            Assert.AreEqual(fileId1, getFirstLink.File.ItemId, $"File Id первого линка должен быть равен {fileId1}");
            Assert.AreEqual(fileId2, getSecondLink.File.ItemId, $"File Id второго линка должен быть равен {fileId2}");
            Assert.AreEqual(linkTypeId, getFirstLink.LinkType, $"LinkType первого линка должен быть равен {linkTypeId}");
            Assert.AreEqual(linkTypeId, getSecondLink.LinkType, $"LinkType второго линка должен быть равен {linkTypeId}");
            Assert.AreEqual(directiveTypeId1, getFirstLink.ParentTypeId, $"ParentTypeId первого линка должен быть равен {directiveTypeId1}");
            Assert.AreEqual(directiveTypeId1, getSecondLink.ParentTypeId, $"ParentTypeId второго линка должен быть равен {directiveTypeId1}");
            Assert.AreEqual(directiveId1, getFirstLink.ParentId, $"ParentId первого линка должен быть равен {directiveId1}");
            Assert.AreEqual(directiveId2, getSecondLink.ParentId, $"ParentId второго линка должен быть равен {directiveId2}");

            var dsFiles1 = dbManager.Execute(AttachedFileQueries.GetSelectQueryByNameAndSize(link1.File.FileName, Convert.ToInt32(link1.File.FileSize)));
            var dsFiles2 = dbManager.Execute(AttachedFileQueries.GetSelectQueryByNameAndSize(link2.File.FileName, Convert.ToInt32(link2.File.FileSize)));

            Assert.AreEqual(1, dsFiles1.Tables[0].Rows.Count, $"Должен вернуть 1 файл {link1.File.FileName}");
            Assert.AreEqual(1, dsFiles2.Tables[0].Rows.Count, $"Должен вернуть 1 файл {link2.File.FileName}");

            fileSmartCore.DeleteAttachedFile(link1);
            fileSmartCore.DeleteAttachedFile(link2);

            dsLinks = dbManager.Execute(ItemFileLinksQueries.GetSelectQuery(new[] { link1.ItemId, link2.ItemId }));
            Assert.AreEqual(0, dsLinks.Tables[0].Rows.Count, "Должно быть 0 линков");
        }
Example #3
0
        public void SmartCoreFileTest_InsertLinksAndRemoveFileLinkForLastFile()
        {
            var dbManager     = GetEnviroment();
            var fileSmartCore = new FilesSmartCore(dbManager);

            //Константа =999 для того что бы в тестах было проще искать в бд линки для удаления данных перед вставкой
            const int linkTypeId       = 999;
            const int directiveId1     = 5;
            const int directiveId2     = 6;
            int       directiveTypeId1 = SmartCoreType.Directive.ItemId;

            //Создаем линк с новым файлом
            var link1   = CreateItemFileLink(directiveId1, directiveTypeId1, linkTypeId);
            var fileId1 = fileSmartCore.SaveAttachedFile(link1);

            //Создаем линк с новым файлом(таким же как и в 1 линке) и новым parentId
            var link2   = CreateItemFileLink(directiveId2, directiveTypeId1, linkTypeId);
            var fileId2 = fileSmartCore.SaveAttachedFile(link2);

            Assert.AreEqual(fileId1, fileId2, "Id файла должны быть одинаковыми");

            var dsLinks = dbManager.Execute(ItemFileLinksQueries.GetSelectQuery(new[] { link1.ItemId, link2.ItemId }));

            Assert.AreEqual(2, dsLinks.Tables[0].Rows.Count, "Должно быть 2 линка на 1 файл");

            //Удаляем 2й линк
            fileSmartCore.DeleteAttachedFile(link2);

            var dsFiles = dbManager.Execute(AttachedFileQueries.GetSelectQueryByNameAndSize(link1.File.FileName, Convert.ToInt32(link1.File.FileSize)));

            Assert.AreEqual(1, dsFiles.Tables[0].Rows.Count, "Файла должно быть");

            dsLinks = dbManager.Execute(ItemFileLinksQueries.GetSelectQuery(new[] { link1.ItemId, link2.ItemId }));
            Assert.AreEqual(1, dsLinks.Tables[0].Rows.Count, "Должно быть 1 линк");

            fileSmartCore.DeleteAttachedFile(link1);

            dsLinks = dbManager.Execute(ItemFileLinksQueries.GetSelectQuery(new[] { link1.ItemId, link2.ItemId }));
            Assert.AreEqual(0, dsLinks.Tables[0].Rows.Count, "Должно быть 0 линков");
        }
Example #4
0
 /// <summary>
 /// Сохраняет объекты в базе данных
 /// </summary>
 /// <param name="casEnvironment"></param>
 public Keeper(CasEnvironment casEnvironment, IAuditRepository auditRepository)
 {
     _casEnvironment  = casEnvironment;
     _auditRepository = auditRepository;
     _filesSmartCore  = new FilesSmartCore(_casEnvironment);
 }