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();
        }
Exemple #2
0
        /// <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);
        }