using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Bowin.Common.Utility;
using EMIS.DataLogic.SystemDAL;
namespace EMIS.CommonLogic.SystemServices
{
public class ParameterServices : BaseServices, IParameterServices
{
public ParameterDAL ParameterDAL { get; set; }
///
///
///
///
///
///
public Nullable GetParameterValue(ViewModel.CF_ParameterType parameterType) where T : struct
{
var parameter = ParameterDAL.ParameterRepository.GetSingle(x => x.ParameterTypeID == (int)parameterType);
if (parameter == null || string.IsNullOrEmpty(parameter.Value)) return null;
T result;
if (parameter.Value.TryParseTo(out result))
{
return result;
}
return null;
}
///
///
///
///
///
public string GetParameterValue(ViewModel.CF_ParameterType parameterType)
{
var parameter = ParameterDAL.ParameterRepository.GetSingle(x => x.ParameterTypeID == (int)parameterType);
if (parameter == null || string.IsNullOrEmpty(parameter.Value)) return null;
return parameter.Value;
}
///
///
///
///
///
public void SaveTo(ViewModel.CF_ParameterType parameterType, object value)
{
var parameter = ParameterDAL.ParameterRepository.GetSingle(x => x.ParameterTypeID == (int)parameterType);
if (parameter == null)
{
parameter = new Entities.CF_Parameter();
parameter.ParameterID = Guid.NewGuid();
parameter.ParameterTypeID = (int)parameterType;
if (value != null)
{
parameter.Value = value.ToString();
}
else
{
parameter.Value = null;
}
this.SetNewStatus(parameter);
this.UnitOfWork.Add(parameter);
}
else
{
if (value != null)
{
parameter.Value = value.ToString();
}
else
{
parameter.Value = null;
}
this.SetModifyStatus(parameter);
}
this.UnitOfWork.Commit();
}
}
}