DI implementation started with registry class and filing class

This commit is contained in:
2020-07-30 23:22:38 +02:00
parent d790cb96d4
commit 786abe6962
6 changed files with 84 additions and 36 deletions

View File

@ -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;
}
}
}
}

View File

@ -31,17 +31,21 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="PresentationCore" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="Filing.cs" />
<Compile Include="InterFaces\IFiling.cs" />
<Compile Include="InterFaces\IRegistring.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Registring.cs" />

View File

@ -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);
}
}

View File

@ -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<IWindowManager, WindowManager>()
.Singleton<IEventAggregator, EventAggregator>();
_container
.PerRequest<IRegistring, Registring>()
.PerRequest<IFiling, Filing>();
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)

View File

@ -112,5 +112,11 @@
<ItemGroup>
<Folder Include="Models\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ImageHandlingLibrary\ImageHandlingLibrary.csproj">
<Project>{cf1c98b6-5093-4b93-8b14-a0278b1af724}</Project>
<Name>ImageHandlingLibrary</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@ -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<object>
{
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)
{
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();
public string RootCatalog
{
get {
_rootCatalog = _registring.GetRegistryRootDir();
return _rootCatalog;
}
set
{
if (value != _rootCatalog)
{
_registring.SetRegistryValues(value);
}
_rootCatalog = value; }
}
return bitmapImage;
}
}
}
}