Rich 4994f19997 Added getDRoUsagesByROIDsAndVersions and getRoUsagesByROIDsAndVersions to speed-up RO Value Update process.
Added logic to speed up RO Value Update Process.
Added logic to keep SvgImages from failing if the ImagePath is null.
2013-11-22 16:39:32 +00:00

247 lines
6.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using Csla;
using Csla.Data;
namespace VEPROMS.CSLA.Library
{
public partial class DROUsageInfoList
{
[Serializable()]
private class AffectedDROUsagesCriteria
{
public AffectedDROUsagesCriteria(int roDbID, string roid, string roDesc, string command, string userID, string versionList)
{
_RODbID = roDbID;
_ROID = roid;
_RODesc = roDesc;
_Command = command;
_UserID = userID;
_VersionList = versionList;
}
private string _VersionList;
public string VersionList
{
get { return _VersionList; }
set { _VersionList = value; }
}
private int _RODbID;
public int RODbID
{
get { return _RODbID; }
set { _RODbID = value; }
}
private string _ROID;
public string ROID
{
get { return _ROID; }
set { _ROID = value; }
}
private string _RODesc;
public string RODesc
{
get { return _RODesc; }
set { _RODesc = value; }
}
private string _Command;
public string Command
{
get { return _Command; }
set { _Command = value; }
}
private string _UserID;
public string UserID
{
get { return _UserID; }
set { _UserID = value; }
}
}
public static DROUsageInfoList GetAffected(int roDbID, string roid, string roDesc, string command, string versionList)
{
try
{
DROUsageInfoList tmp = DataPortal.Fetch<DROUsageInfoList>(new AffectedDROUsagesCriteria(roDbID, roid, roDesc, command, Volian.Base.Library.VlnSettings.UserID, versionList));
DROUsageInfo.AddList(tmp);
tmp.AddEvents();
return tmp;
}
catch (Exception ex)
{
throw new DbCslaException("Error on DROUsageInfoList.GetAffected", ex);
}
}
private void DataPortal_Fetch(AffectedDROUsagesCriteria criteria)
{
this.RaiseListChangedEvents = false;
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsageInfoList.DataPortal_FetchAffected", GetHashCode());
try
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "getAffectedDRoUsages";
cm.Parameters.AddWithValue("@RODbID", criteria.RODbID);
cm.Parameters.AddWithValue("@ROID", criteria.ROID);
cm.Parameters.AddWithValue("@RODesc", criteria.RODesc);
cm.Parameters.AddWithValue("@Command", criteria.Command);
cm.Parameters.AddWithValue("@UserID", criteria.UserID);
cm.Parameters.AddWithValue("@VersionList", criteria.VersionList);
cm.CommandTimeout = Database.DefaultTimeout;
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
{
IsReadOnly = false;
while (dr.Read())
this.Add(new DROUsageInfo(dr));
IsReadOnly = true;
}
}
}
}
catch (Exception ex)
{
if (_MyLog.IsErrorEnabled) _MyLog.Error("DROUsageInfoList.DataPortal_FetchAffected", ex);
throw new DbCslaException("DROUsageInfoList.DataPortal_Fetch", ex);
}
this.RaiseListChangedEvents = true;
}
[Serializable()]
private class GetDROUsagesByROIDsCriteria
{
public GetDROUsagesByROIDsCriteria(string roids)
{
_ROIDs = roids;
}
private string _ROIDs;
public string ROIDs
{
get { return _ROIDs; }
set { _ROIDs = value; }
}
}
public static DROUsageInfoList GetDROUsagesByROIDs(string roids)
{
try
{
DROUsageInfoList tmp = DataPortal.Fetch<DROUsageInfoList>(new GetDROUsagesByROIDsCriteria(roids));
DROUsageInfo.AddList(tmp);
tmp.AddEvents();
return tmp;
}
catch (Exception ex)
{
throw new DbCslaException("Error on DROUsageInfoList.GetAffected", ex);
}
}
private void DataPortal_Fetch(GetDROUsagesByROIDsCriteria criteria)
{
this.RaiseListChangedEvents = false;
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsageInfoList.DataPortal_FetchByROIDs", GetHashCode());
try
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "getDRoUsagesByROIDs";
cm.Parameters.AddWithValue("@ROIDs", criteria.ROIDs);
cm.CommandTimeout = Database.DefaultTimeout;
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
{
IsReadOnly = false;
while (dr.Read())
this.Add(new DROUsageInfo(dr));
IsReadOnly = true;
}
}
}
}
catch (Exception ex)
{
if (_MyLog.IsErrorEnabled) _MyLog.Error("DROUsageInfoList.DataPortal_FetchByROIDs", ex);
throw new DbCslaException("DROUsageInfoList.DataPortal_FetchByROIDs", ex);
}
this.RaiseListChangedEvents = true;
}
[Serializable()]
private class GetDROUsagesByROIDsAndVersionsCriteria
{
public GetDROUsagesByROIDsAndVersionsCriteria(string roids,string versions)
{
_ROIDs = roids;
_Versions = versions;
}
private string _ROIDs;
public string ROIDs
{
get { return _ROIDs; }
set { _ROIDs = value; }
}
private string _Versions;
public string Versions
{
get { return _Versions; }
set { _Versions = value; }
}
}
public static DROUsageInfoList GetDROUsagesByROIDsAndVersions(string roids,string versions)
{
try
{
DROUsageInfoList tmp = DataPortal.Fetch<DROUsageInfoList>(new GetDROUsagesByROIDsAndVersionsCriteria(roids,versions));
DROUsageInfo.AddList(tmp);
tmp.AddEvents();
return tmp;
}
catch (Exception ex)
{
throw new DbCslaException("Error on DROUsageInfoList.GetDROUsagesByROIDsAndVersions", ex);
}
}
private void DataPortal_Fetch(GetDROUsagesByROIDsAndVersionsCriteria criteria)
{
this.RaiseListChangedEvents = false;
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DROUsageInfoList.DataPortal_FetchByROIDsAndVersions", GetHashCode());
try
{
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
{
using (SqlCommand cm = cn.CreateCommand())
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "getDRoUsagesByROIDsAndVersions";
cm.Parameters.AddWithValue("@ROIDs", criteria.ROIDs);
cm.Parameters.AddWithValue("@Versions", criteria.Versions);
cm.CommandTimeout = Database.DefaultTimeout;
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
{
IsReadOnly = false;
while (dr.Read())
this.Add(new DROUsageInfo(dr));
IsReadOnly = true;
}
}
}
}
catch (Exception ex)
{
if (_MyLog.IsErrorEnabled) _MyLog.Error("DROUsageInfoList.DataPortal_FetchByROIDsAndVersions", ex);
throw new DbCslaException("DROUsageInfoList.DataPortal_FetchByROIDsAndVersions", ex);
}
this.RaiseListChangedEvents = true;
}
}
}