コード例 #1
0
        public void ReadImageFileIndexReturnsOnlyFilesNotAlreadyImported()
        {
            var indexedLocation = "indexedLocation";
            var id           = "1";
            var importedFile = new ImageFileIndexStructure()
            {
                Id = "1"
            };

            var moqImageResponse = new ImageFileIndexResponse()
            {
            };

            moqImageResponse.Files.Add(importedFile);
            var moqProjectResponse = new ProjectResponse()
            {
                Project = new ProjectStructure()
                {
                    Id = ObjectId.GenerateNewId().ToString()
                }
            };

            moqProjectResponse.Project.SmallFileIds.Add(importedFile.Id);

            MockMakerClient.Setup(x => x.ReadImageFileIndex(It.IsAny <string>())).Returns(moqImageResponse);
            MockMakerClient.Setup(x => x.ReadProject(It.IsAny <string>())).Returns(moqProjectResponse);

            var model = new ImageFileIndexModel();

            model.ReadImageFileIndex(MockMakerClient.Object, indexedLocation, id);
            Assert.AreEqual(0, model.Files.Count);
        }
コード例 #2
0
        public void ReadImageFileIndexReturnsOneFilesIfOneInCollection()
        {
            var indexedLocation = "indexedLocation";
            var id           = "1";
            var importedFile = new ImageFileIndexStructure()
            {
                Id = "1"
            };

            var moqImageResponse   = new ImageFileIndexResponse();
            var moqProjectResponse = new ProjectResponse()
            {
                Project = new ProjectStructure()
            };

            moqImageResponse.Files.Add(importedFile);

            MockMakerClient.Setup(x => x.ReadImageFileIndex(It.IsAny <string>())).Returns(moqImageResponse);
            MockMakerClient.Setup(x => x.ReadProject(It.IsAny <string>())).Returns(moqProjectResponse);

            var model = new ImageFileIndexModel();

            model.ReadImageFileIndex(MockMakerClient.Object, indexedLocation, id);
            Assert.AreEqual(1, model.Files.Count);
        }
コード例 #3
0
        public EdgeDetectionResponse GetEdgeCoordinates(string id, ImageFileIndexStructure master, int threshold)
        {
            var request = new EdgeDetectionRequest()
            {
                Id = id, Master = master, Threshold = threshold
            };
            var response = new EdgeDetectionService.EdgeDetection().GetEdgeCoordinates(request);

            return(response);
        }
コード例 #4
0
        public MasterImageColourResponse ReadMasterFileColours(ImageFileIndexStructure file, int height, int width)
        {
            var request = new MasterImageColourRequest()
            {
                Master = file
            };
            var response = new ImageMosaicService.ImageMosaic().GetMasterImageAverageColours(request, height, width);

            return(response);
        }
コード例 #5
0
        public void ConvertEmptyImageFileIndexStructureReturnsEmptyModel()
        {
            var imageFile = new ImageFileIndexStructure();
            var model     = new TileTableModel(imageFile);

            Assert.IsTrue(String.IsNullOrEmpty(model.Id));
            Assert.IsTrue(String.IsNullOrEmpty(model.FileName));
            Assert.IsTrue(String.IsNullOrEmpty(model.FilePath));
            Assert.IsTrue(String.IsNullOrEmpty(model.AverageColour));
            Assert.IsTrue(String.IsNullOrEmpty(model.LastWriteTime));
        }
コード例 #6
0
 public TileTableModel(ImageFileIndexStructure imageFile)
 {
     Id            = imageFile.Id;
     FileName      = imageFile.FileName;
     FilePath      = imageFile.FilePath;
     LastWriteTime = imageFile.LastWriteTime;
     if (imageFile.Data != null)
     {
         var colour = Color.FromArgb(imageFile.Data.AverageWhole);
         AverageColour  = colour.ToHex();
         StandardColour = new FileColourModel().FindClosestColour(colour).ToHex();
     }
 }
コード例 #7
0
        public void GetMasterImageAverageColoursReturnsColourList()
        {
            var master = new ImageFileIndexStructure()
            {
                Id       = ObjectId.GenerateNewId().ToString(),
                FileName = Path.GetFileName(sourceFile),
                FilePath = sourceFile
            };
            var request = new MasterImageColourRequest()
            {
                Master = master
            };
            var response = new ImageMosaic().GetMasterImageAverageColours(request);

            Assert.AreNotEqual(0, response.AverageTileARGB.ToList().Count);
        }
コード例 #8
0
        public void ConvertImageFileIndexStructureConvertEmptyAverageWholeToBlackHex()
        {
            var imageFile = new ImageFileIndexStructure()
            {
                Id            = ObjectId.GenerateNewId().ToString(),
                FileName      = "FileName",
                FilePath      = "FilePath\\FileName.png",
                LastWriteTime = DateTime.Now.ToString(),
                Data          = new Metadata()
                {
                }
            };
            var model = new TileTableModel(imageFile);

            Assert.AreEqual(Color.Black.ToHex(), model.AverageColour);
        }
コード例 #9
0
 public async Task AnalyseNewFiles(FileInfo x)
 {
     var data    = GenerateMetaData(x);
     var request = new ImageFileIndexStructure()
     {
         Id            = ObjectId.GenerateNewId().ToString(),
         FileName      = x.Name,
         FilePath      = x.FullName,
         LastWriteTime = x.LastWriteTime.ToString(),
         Data          = new Metadata()
         {
             AverageBL    = data.AverageBL.ToArgb(),
             AverageBR    = data.AverageBR.ToArgb(),
             AverageTL    = data.AverageTL.ToArgb(),
             AverageTR    = data.AverageTR.ToArgb(),
             AverageWhole = data.AverageWhole.ToArgb()
         }
     };
     var response = new MongoImageFileIndex().Insert(database, request);
 }
コード例 #10
0
        public ImageFileResponse Insert(IMongoDatabase db, ImageFileIndexStructure request)
        {
            var collection = db.GetCollection <ImageFileIndexStructure>("ImageFileIndex");

            // add further checks to make sure no part of object is empty
            if (String.IsNullOrEmpty(request.Id))
            {
                return(new ImageFileResponse()
                {
                    Error = "Id cannot be null or empty"
                });
            }
            var result = collection.ReplaceOne(x => x.Id.Equals(request.Id), request, new UpdateOptions {
                IsUpsert = true
            });

            return(new ImageFileResponse()
            {
                File = request
            });
        }
コード例 #11
0
        public ImageMosaicResponse Generate(string id, IList <ImageFileIndexStructure> tiles, ImageFileIndexStructure master, bool random, int width, int height, bool colourBlended, bool enhanced, int enhancedThreshold, bool edgeDetection, List <PixelCoordinates> edges)
        {
            var request = new ImageMosaicRequest()
            {
                Id       = id, Master = master, Random = random, TileWidth = width, TileHeight = height, ColourBlended = colourBlended,
                Enhanced = enhanced, EnhancedThreshold = enhancedThreshold, EdgeDetection = edgeDetection
            };

            request.Tiles.AddRange(tiles);
            request.Edges.AddRange(edges);
            var response = new ImageMosaicService.ImageMosaic().Generate(request);

            return(response);
        }