|
using System;
using System.IO;
using CBR.Core.Files;
using CBR.Core.Models;
using CBR.Core.Helpers;
namespace CBR.Core.Services
{
public class BookServiceFactory
{
#region ----------------SINGLETON----------------
public static readonly BookServiceFactory Instance = new BookServiceFactory();
/// <summary>
/// Private constructor for singleton pattern
/// </summary>
private BookServiceFactory()
{
}
#endregion
public BookServiceBase GetService(Book bk)
{
if (bk == null)
return new BookServiceBase();
else
return GetService(bk.FilePath);
}
public BookServiceBase GetService(string filePath)
{
return (BookServiceBase)Activator.CreateInstance(
FileService.Instance.FindBookFilterByExt(Path.GetExtension(filePath)).Service
);
}
//public ViewModelBase GetViewModel(Book bk)
//{
// try
// {
// return GetViewModel(bk.FilePath);
// }
// catch (Exception err)
// {
// ExceptionHelper.Manage("BookServiceFactory:GetViewModel", err);
// return null;
// }
//}
//public ViewModelBase GetViewModel(string filePath)
//{
// FileExtension fe = FileExtensionManager.Instance.FindBookFilterByExt(Path.GetExtension(filePath));
// if (fe != null)
// return (ViewModelBase)new ReflectionHelper().CreateInstance(fe.ViewModel);
// else
// return null;
//}
public string GetViewModel(Book bk)
{
try
{
return GetViewModel(bk.FilePath);
}
catch (Exception err)
{
ExceptionHelper.Manage("BookServiceFactory:GetViewModel", err);
return string.Empty;
}
}
public string GetViewModel(string filePath)
{
FileExtension fe = FileService.Instance.FindBookFilterByExt(Path.GetExtension(filePath));
if (fe != null)
return fe.ViewModel;
else
return string.Empty;
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
WPF and MVVM fan, I practice C # in all its forms from the beginning of the NET Framework without mentioning C ++ / MFC and other software packages such as databases, ASP, WCF, Web & Windows services, Application, and now Core and UWP.
In my wasted hours, I am guilty of having fathered C.B.R. and its cousins C.B.R. for WinRT and UWP on the Windows store.
But apart from that, I am a great handyman ... the house, a rocket stove to heat the jacuzzi and the last one: a wood oven for pizza, bread, and everything that goes inside
https://guillaumewaser.wordpress.com/
https://fouretcompagnie.wordpress.com/