public void RegisterWlItemsFromDir(string directory, string[] watchlistExternalIds, int maxDegreeOfParallelism)
        {
            if (!Directory.Exists(directory))
            {
                throw new ProcessingException($"Directory does not exists {directory}");
            }

            var groupedPhotos = GetPhotosGroupedByExternalId(directory);

            var extendedData = new List <RegisterWlItemExtended>();

            foreach (var group in groupedPhotos)
            {
                var externalId             = group.Key;
                var photoPaths             = group.Select(photoWithExternalId => photoWithExternalId.PhotoPath).ToArray();
                var registerWlItemExtended = new RegisterWlItemExtended
                {
                    ExternalId           = externalId,
                    PhotoFiles           = photoPaths,
                    WatchlistExternalIds = watchlistExternalIds
                };
                extendedData.Add(registerWlItemExtended);
            }

            var actionBlock = CreateRegisterActionBlock(maxDegreeOfParallelism);

            PostDataToActionBlock(extendedData, actionBlock);

            WaitForRegistrationCompletion(actionBlock);
        }
Exemplo n.º 2
0
        protected virtual int OnExecute(CommandLineApplication app, IConsole console)
        {
            var data = new RegisterWlItemExtended
            {
                ExternalId           = ExternalId,
                PhotoFiles           = Photos,
                WatchlistExternalIds = WatchlistExternalIds
            };

            Manager.RegisterWlItem(data);
            return(Constants.EXIT_CODE_OK);
        }
        public void RegisterWlItem(RegisterWlItemExtended registerWlItemExtended)
        {
            var data = new RegisterWlItemData
            {
                ExternalId           = registerWlItemExtended.ExternalId,
                DisplayName          = registerWlItemExtended.DisplayName,
                FullName             = registerWlItemExtended.FullName,
                Note                 = registerWlItemExtended.Note,
                WatchlistExternalIds = registerWlItemExtended.WatchlistExternalIds
            };

            registerWlItemExtended.PhotoFiles.ToList().ForEach(pathToPhotoFile => data.ImageData.Add(new RegisterWlItemImageData
            {
                Data = File.ReadAllBytes(pathToPhotoFile),
                MIME = pathToPhotoFile.ToLower().EndsWith($".{Constants.PNG}") ? Constants.PNG_MIME_TYPE : Constants.JPEG_MIME_TYPE
            }));

            Repository.Register(data);

            Log.LogInformation($"WlItem registered. [{data.ExternalId}]");
        }