private void ComputeObjectsFromFolder()
        {
            if (!VerifyWebConfigVariables())
            {
                return;
            }
            var emotionMapper = new MLMapper();

            var sourceFolder = ConfigurationManager.AppSettings["SourceFolder"].ToString();
            var saveFolder   = ConfigurationManager.AppSettings["SaveFolder"].ToString();

            var files = Directory.GetFiles(sourceFolder);

            foreach (var file in files)
            {
                string  lastFolderName = Path.GetFileName(Path.GetDirectoryName(file));
                InfoDTO dto            = new InfoDTO()
                {
                    Category = lastFolderName,
                    Image    = file
                };
                Console.WriteLine(string.Format("Processing {0}", file));

                Thread.Sleep(_pauseParameter);
                byte[]        imgdata     = System.IO.File.ReadAllBytes(file);
                ObjectInfoDTO objectsDTOs = _mlService.GetObjectsFromImage(imgdata);
            }
        }
        private void ComputeAllCharacteristicsFromFolder()
        {
            if (!VerifyWebConfigVariables())
            {
                return;
            }

            var emotionMapper = new MLMapper();
            var sourceFolder  = ConfigurationManager.AppSettings["SourceFolder"].ToString();
            var saveFolder    = ConfigurationManager.AppSettings["SaveFolder"].ToString();

            string[] dirs = Directory.GetDirectories(sourceFolder);
            foreach (var dir in dirs)
            {
                string[] files = Directory.GetFiles(dir);
                Parallel.ForEach(files, new ParallelOptions {
                    MaxDegreeOfParallelism = 4
                }, (file) =>
                {
                    var mlService         = new MLService(new ServiceProxyCognitiveAzure());
                    string lastFolderName = Path.GetFileName(Path.GetDirectoryName(file));
                    string fileName       = Path.GetFileName(file);
                    Console.WriteLine(string.Format("Processing {0}", file));
                    byte[] imgdata = System.IO.File.ReadAllBytes(file);
                    FaceEmotionDTO[] emotionDTOs = mlService.GetEmotionsFromImage(imgdata);

                    if (emotionDTOs != null && emotionDTOs.Count() > 0)
                    {
                        FaceInfoDTO[] faceInfo    = mlService.GetFacesFromImage(imgdata);
                        ObjectInfoDTO objectsDTOs = mlService.GetObjectsFromImage(imgdata);

                        var imageinfo = new ImageInfoDTO()
                        {
                            Emotions  = emotionDTOs,
                            Faces     = faceInfo,
                            Objects   = objectsDTOs,
                            Category  = lastFolderName,
                            ImageUrl  = fileName,
                            Anger     = emotionDTOs.Average(x => x.Scores != null ? x.Scores.Anger : 0),
                            Contempt  = emotionDTOs.Average(x => x.Scores != null ? x.Scores.Contempt : 0),
                            Disgust   = emotionDTOs.Average(x => x.Scores != null ? x.Scores.Disgust : 0),
                            Fear      = emotionDTOs.Average(x => x.Scores != null ? x.Scores.Fear : 0),
                            Happiness = emotionDTOs.Average(x => x.Scores != null ? x.Scores.Happiness : 0),
                            Neutral   = emotionDTOs.Average(x => x.Scores != null ? x.Scores.Neutral : 0),
                            Sadness   = emotionDTOs.Average(x => x.Scores != null ? x.Scores.Sadness : 0),
                            Surprise  = emotionDTOs.Average(x => x.Scores != null ? x.Scores.Surprise : 0)
                        };

                        if (imageinfo != null)
                        {
                            _emotionService.AddEmotion(imageinfo);
                        }
                        Thread.Sleep(_pauseParameter);
                    }
                }
                                 );
            }
        }