public ImageModelProfile() { CreateMap <ImageModel, ImageDataModel>() .ForMember(s => s.FullPath, o => o.MapFrom(d => d.FilePath)) .ForMember(s => s.CreatedDate, o => o.MapFrom(d => d.CreationTime)) .ForMember(s => s.DirectoryPath, o => o.MapFrom(d => d.DirectoryName)) .ForMember(s => s.DisplayName, o => o.MapFrom(d => d.DisplayName)) .ForMember(s => s.Extension, o => o.MapFrom(d => d.Extension)) .ForMember(s => s.FileName, o => o.MapFrom(d => d.FileName)) .ForMember(s => s.SortOrder, o => o.MapFrom(d => d.SortOrder)) .ReverseMap(); CreateMap <ImageModel, ImageProcessModel>() .ConstructUsing(x => new ImageProcessModel(x.UniqueId) { DirectoryPath = x.DirectoryName, Extension = x.Extension, FileName = x.FileName, FilePath = x.FilePath, FileSize = x.FileSize, SortOrder = x.SortOrder }) .ReverseMap() .ConstructUsing(x => ImageModel.CreateImageModel(x.FilePath)); CreateMap <UserConfigModel, UserConfigDataModel>() .ForMember(s => s.ImageDataModels, o => o.MapFrom(d => d.ImageModels)) .ForMember(s => s.OutputFileExtension, o => o.MapFrom(d => d.OutputFileExtension)) .ForMember(s => s.OutputDirectory, o => o.MapFrom(d => d.OutputDirectory)) .ReverseMap(); }
/// <summary> /// Adds the image to process queue. /// </summary> /// <param name="filePath">The file path.</param> /// <param name="eventMessageQueue">The event message queue.</param> /// <returns></returns> public bool AddImageToProcessQueue(string filePath, ref EventMessageQueue eventMessageQueue) { try { // Validate access and existence if (!File.Exists(filePath)) { eventMessageQueue.AddMessage($"{filePath} - A file with specified path does not exist"); return(false); } // Validate uniqueness if (_userConfig.ImageModels.Any(x => x.FilePath.Equals(filePath, StringComparison.CurrentCultureIgnoreCase))) { eventMessageQueue.AddMessage($"{filePath} - Is already added to the process queue."); return(false); } var model = ImageModel.CreateImageModel(filePath); var fi = new FileInfo(filePath); model.SortOrder = GetNextSortOrder(); model.FileName = fi.Name; model.CreationTime = fi.CreationTime; model.Extension = fi.Extension; model.DirectoryName = fi.DirectoryName; model.FileSize = fi.Length; model.Size = FileNameParser.GetFileSizeWithPrefix(model.FileSize); model.DisplayName = $"FileName: {model.FileName}, Size{model.Size}"; _userConfig.ImageModels.Add(model); RebuildSortIndex(); return(true); } catch (Exception ex) { Log.Error(ex, "AddImageToProcessQueue threw an exception", nameof(filePath)); eventMessageQueue.AddMessage(ex.Message); } return(false); }