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); }
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}]"); }