diff --git a/ImageHandlingLibrary/Filing.cs b/ImageHandlingLibrary/Filing.cs index 1dbe12b..dce2329 100644 --- a/ImageHandlingLibrary/Filing.cs +++ b/ImageHandlingLibrary/Filing.cs @@ -1,13 +1,33 @@ -using System; +using ImageHandlingLibrary.InterFaces; +using System; using System.Collections.Generic; +using System.Drawing.Imaging; +using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Windows.Media.Imaging; namespace ImageHandlingLibrary { - public class Filing + public class Filing : IFiling { - + public BitmapImage ConvertFromDrawImage(System.Drawing.Image _image) + { + using (var ms = new MemoryStream()) + { + //System.Drawing.Image.FromFile(@"D:\CsharpDevelop\PictureHandlingProject\pictures\AgueroVillage.JPG").Save(ms, ImageFormat.Bmp); + _image.Save(ms, ImageFormat.Bmp); + ms.Seek(0, SeekOrigin.Begin); + + var bitmapImage = new BitmapImage(); + bitmapImage.BeginInit(); + bitmapImage.CacheOption = BitmapCacheOption.OnLoad; + bitmapImage.StreamSource = ms; + bitmapImage.EndInit(); + + return bitmapImage; + } + } } } diff --git a/ImageHandlingLibrary/ImageHandlingLibrary.csproj b/ImageHandlingLibrary/ImageHandlingLibrary.csproj index 7a03a1c..8294199 100644 --- a/ImageHandlingLibrary/ImageHandlingLibrary.csproj +++ b/ImageHandlingLibrary/ImageHandlingLibrary.csproj @@ -31,17 +31,21 @@ 4 + + + + diff --git a/ImageHandlingLibrary/InterFaces/IFiling.cs b/ImageHandlingLibrary/InterFaces/IFiling.cs new file mode 100644 index 0000000..e5b318f --- /dev/null +++ b/ImageHandlingLibrary/InterFaces/IFiling.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media.Imaging; + +namespace ImageHandlingLibrary.InterFaces +{ + public interface IFiling + { + BitmapImage ConvertFromDrawImage(Image _image); + } +} diff --git a/ImageHandlingUI/Bootstrapper.cs b/ImageHandlingUI/Bootstrapper.cs index c2072e1..5d576d3 100644 --- a/ImageHandlingUI/Bootstrapper.cs +++ b/ImageHandlingUI/Bootstrapper.cs @@ -1,4 +1,6 @@ using Caliburn.Micro; +using ImageHandlingLibrary; +using ImageHandlingLibrary.InterFaces; using ImageHandlingUI.ViewModels; using System; using System.Collections.Generic; @@ -29,12 +31,19 @@ namespace ImageHandlingUI .Singleton() .Singleton(); + _container + .PerRequest() + .PerRequest(); + GetType().Assembly.GetTypes() .Where(type => type.IsClass) .Where(type => type.Name.EndsWith("ViewModel")) .ToList() .ForEach(viewModelType => _container.RegisterPerRequest( viewModelType, viewModelType.ToString(), viewModelType)); + + + } // // implementing SimpleContainer (dependency injection system in Caliburn micro) diff --git a/ImageHandlingUI/ImageHandlingWPFUI.csproj b/ImageHandlingUI/ImageHandlingWPFUI.csproj index adc12a9..707eb45 100644 --- a/ImageHandlingUI/ImageHandlingWPFUI.csproj +++ b/ImageHandlingUI/ImageHandlingWPFUI.csproj @@ -112,5 +112,11 @@ + + + {cf1c98b6-5093-4b93-8b14-a0278b1af724} + ImageHandlingLibrary + + \ No newline at end of file diff --git a/ImageHandlingUI/ViewModels/ShellViewModel.cs b/ImageHandlingUI/ViewModels/ShellViewModel.cs index b74ece7..620d305 100644 --- a/ImageHandlingUI/ViewModels/ShellViewModel.cs +++ b/ImageHandlingUI/ViewModels/ShellViewModel.cs @@ -1,10 +1,12 @@ using Caliburn.Micro; +using ImageHandlingLibrary.InterFaces; using System; using System.Collections.Generic; using System.Drawing.Imaging; using System.IO; using System.Linq; using System.Text; +using System.Threading; using System.Threading.Tasks; using System.Windows.Controls; using System.Windows.Media; @@ -14,29 +16,21 @@ namespace ImageHandlingUI.ViewModels { public class ShellViewModel : Conductor { - public ShellViewModel() + private string _rootCatalog; + private readonly IRegistring _registring; + private readonly IFiling _filing; + private string initialFileName; + ImageSource _selectedImage = null; + + public ShellViewModel(IRegistring registring, IFiling filing) { - //using (var ms = new MemoryStream()) - //{ - // System.Drawing.Image.FromFile(@"D:\CsharpDevelop\PictureHandlingProject\pictures\AgueroVillage.JPG").Save(ms, ImageFormat.Bmp); - // ms.Seek(0, SeekOrigin.Begin); - - // var bitmapImage = new BitmapImage(); - // bitmapImage.BeginInit(); - // bitmapImage.CacheOption = BitmapCacheOption.OnLoad; - // bitmapImage.StreamSource = ms; - // bitmapImage.EndInit(); - - // _selectedImage = bitmapImage; - //} - - //_selectedImage = System.Drawing.Image.FromFile(@"D:\CsharpDevelop\PictureHandlingProject\pictures\AgueroVillage.JPG"); initialFileName = @"D:\CsharpDevelop\PictureHandlingProject\pictures\AgueroVillage.JPG"; - _selectedImage = ConvertFromDrawImage(System.Drawing.Image.FromFile(InitialFileName)); + _selectedImage = filing.ConvertFromDrawImage(System.Drawing.Image.FromFile(InitialFileName)); + _registring = registring; + _filing = filing; } - ImageSource _selectedImage = null; - private string initialFileName; + public ImageSource SelectedImage { @@ -50,22 +44,22 @@ namespace ImageHandlingUI.ViewModels public string InitialFileName { get => initialFileName; set => initialFileName = value; } - private static BitmapImage ConvertFromDrawImage(System.Drawing.Image _image) + + public string RootCatalog { - using (var ms = new MemoryStream()) - { - //System.Drawing.Image.FromFile(@"D:\CsharpDevelop\PictureHandlingProject\pictures\AgueroVillage.JPG").Save(ms, ImageFormat.Bmp); - _image.Save(ms, ImageFormat.Bmp); - ms.Seek(0, SeekOrigin.Begin); - - var bitmapImage = new BitmapImage(); - bitmapImage.BeginInit(); - bitmapImage.CacheOption = BitmapCacheOption.OnLoad; - bitmapImage.StreamSource = ms; - bitmapImage.EndInit(); - - return bitmapImage; + get { + _rootCatalog = _registring.GetRegistryRootDir(); + return _rootCatalog; } + set + { + if (value != _rootCatalog) + { + _registring.SetRegistryValues(value); + } + _rootCatalog = value; } } + + } }