public IActionResult CreateImageProcessingConfigWithImage([FromBody] ImageProcessingConfigWithImageForCreationDto imageProcessingConfig)
        {
            var neuralNetworkFromRepo = _mlpRepository.GetNeuralNetwork(imageProcessingConfig.NeuralNetworkId);

            if (neuralNetworkFromRepo == null)
            {
                return(NotFound("Red no encontrada"));
            }

            ImageProcessing.MLP mlp         = new ImageProcessing.MLP();
            var imageProcessingConfigValues = mlp.GetImageProcessingConfig(imageProcessingConfig.Image);

            var imageProcessingConfigForCreation = Mapper.Map <ImageProcessingConfigForCreationDto>(imageProcessingConfig)
                                                   .Map(imageProcessingConfigValues);

            var imageProcessingConfigEntity = Mapper.Map <ImageProcessingConfig>(imageProcessingConfigForCreation);

            _mlpRepository.AddImageProcessingConfig(imageProcessingConfigEntity);
            if (!_mlpRepository.Save())
            {
                throw new Exception("Creating a Image Processing Config failed on save.");
            }

            var imageProcessingConfigToReturn = Mapper.Map <ImageProcessingConfigDto>(imageProcessingConfigEntity);

            //var links = CreateLinksForNeuralNetwork(neuralNetworkToReturn.Id);
            return(CreatedAtRoute("GetImageProcessingConfig", new { id = imageProcessingConfigToReturn.Id }, imageProcessingConfigToReturn));
        }
        public IActionResult GetImageProcessed(Guid neuralNetworkId, [FromBody] ImageDto image)
        {
            var neuralNetworkFromRepo = _mlpRepository.GetFullNeuralNetwork(neuralNetworkId);

            if (neuralNetworkFromRepo == null)
            {
                return(NotFound("Red no encontrada"));
            }

            var imageProcessingConfigActiveFromRepo = _mlpRepository.GetActiveImageProcessingConfigByNeuralNetwork(neuralNetworkId);

            ImageProcessing.MLP mlp   = new ImageProcessing.MLP();
            List <double>       input = mlp.ProcessImageMLP(image, imageProcessingConfigActiveFromRepo);

            //b.("");
            return(Ok(MultiLayerPerceptron.GetNetworkPrediction(neuralNetworkFromRepo, input)));
        }
        public IActionResult GetImageProcessedRasp(Guid neuralNetworkId, [FromBody] ImageRaspDto image)
        {
            var neuralNetworkFromRepo = _mlpRepository.GetFullNeuralNetwork(neuralNetworkId);

            if (neuralNetworkFromRepo == null)
            {
                return(NotFound("Red no encontrada"));
            }

            var imageProcessingConfigActiveFromRepo = _mlpRepository.GetActiveImageProcessingConfigByNeuralNetwork(neuralNetworkId);

            ImageProcessing.MLP mlp = new ImageProcessing.MLP();
            WriteFilesHelper.WriteImageFromBytes(WriteFilesHelper.GetStartupFolder(), "Test.bmp", Convert.FromBase64String(image.ImageBase64WithMetadata));
            List <double> input = mlp.ProcessLocalImageMLP(WriteFilesHelper.GetLocalRaspImage(), imageProcessingConfigActiveFromRepo);

            //b.("");
            return(Ok(MultiLayerPerceptron.GetNetworkPrediction(neuralNetworkFromRepo, input)));
        }