Merge pull request 'C2017-031 Extend Copy / Paste Replace Functionality for Enhanced Background Steps' (#414) from C2017-031 into Development
Code changes look good. OK for testing phase.
This commit is contained in:
@@ -1942,16 +1942,63 @@ namespace VEPROMS.CSLA.Library
|
||||
using (Item ii = this.Get())
|
||||
{
|
||||
ProcedureConfig sc = this.MyConfig as ProcedureConfig;
|
||||
sc.AddEnhancedDocument(enhtype, enhii.ItemID);
|
||||
sc.SaveEnhancedDocuments();
|
||||
ii.MyContent.Config = sc.ToString();
|
||||
ii.Save();
|
||||
RefreshConfig();
|
||||
sc.AddEnhancedDocument(enhtype, enhii.ItemID);
|
||||
sc.SaveEnhancedDocuments();
|
||||
ii.MyContent.Config = sc.ToString();
|
||||
ii.Save();
|
||||
RefreshConfig();
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region DataPortal
|
||||
// C2017-031: Support for paste/replace an enhanced step
|
||||
private void DataPortal_Fetch(PastingPartEnhancedCriteria criteria)
|
||||
{
|
||||
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.DataPortal_Fetch", GetHashCode());
|
||||
try
|
||||
{
|
||||
using (SqlConnection cn = Database.VEPROMS_SqlConnection)
|
||||
{
|
||||
Csla.ApplicationContext.LocalContext["cn"] = cn;
|
||||
using (SqlCommand cm = cn.CreateCommand())
|
||||
{
|
||||
cm.CommandType = CommandType.StoredProcedure;
|
||||
cm.Parameters.AddWithValue("@StartItemID", criteria.StartItemID); // copy children
|
||||
cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); //copy to
|
||||
cm.Parameters.AddWithValue("@Type", criteria.Type);
|
||||
cm.Parameters.AddWithValue("@DTS", criteria.DTS);
|
||||
cm.Parameters.AddWithValue("@UserID", criteria.UserID);
|
||||
SqlParameter param_ContentID = new SqlParameter("@NewItemID", SqlDbType.Int);
|
||||
param_ContentID.Direction = ParameterDirection.Output;
|
||||
cm.Parameters.Add(param_ContentID);
|
||||
cm.CommandText = "PasteItemEnhancedReplace";
|
||||
cm.CommandTimeout = Database.DefaultTimeout;
|
||||
using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
|
||||
{
|
||||
if (!dr.Read())
|
||||
{
|
||||
_ErrorMessage = "No Record Found";
|
||||
return;
|
||||
}
|
||||
ReadData(dr);
|
||||
}
|
||||
}
|
||||
// removing of item only needed for local data portal
|
||||
if (Csla.ApplicationContext.ExecutionLocation == Csla.ApplicationContext.ExecutionLocations.Client)
|
||||
Csla.ApplicationContext.LocalContext.Remove("cn");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (!ex.Message.Contains("This step has been deleted") && !ex.Message.Contains("This current step has been deleted in another session"))
|
||||
{
|
||||
if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemInfo.DataPortal_Fetch", ex);
|
||||
}
|
||||
_ErrorMessage = ex.Message;
|
||||
throw new DbCslaException("ItemInfo.DataPortal_Fetch", ex);
|
||||
}
|
||||
}
|
||||
private void DataPortal_Fetch(PastingPartCriteria criteria)
|
||||
{
|
||||
if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.DataPortal_Fetch", GetHashCode());
|
||||
@@ -2073,9 +2120,72 @@ namespace VEPROMS.CSLA.Library
|
||||
throw new DbCslaException("ItemInfo.DataPortal_Fetch", ex);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#region PastingPartEnhancedCriteria
|
||||
// C2017-031: Support for paste/replace an enhanced step
|
||||
[Serializable()]
|
||||
public class PastingPartEnhancedCriteria
|
||||
{
|
||||
#region Properties
|
||||
private int _StartItemID;
|
||||
public int StartItemID
|
||||
{
|
||||
get { return _StartItemID; }
|
||||
set { _StartItemID = value; }
|
||||
}
|
||||
private int _ItemID; // paste relative to this itemid
|
||||
public int ItemID
|
||||
{
|
||||
get { return _ItemID; }
|
||||
set { _ItemID = value; }
|
||||
}
|
||||
private EAddpingPart _AddType;
|
||||
public EAddpingPart AddType
|
||||
{
|
||||
get { return _AddType; }
|
||||
set { _AddType = value; }
|
||||
}
|
||||
private int? _FromType = null;
|
||||
public int? FromType
|
||||
{
|
||||
get { return _FromType; }
|
||||
set { _FromType = value; }
|
||||
}
|
||||
private int? _Type = null;
|
||||
public int? Type
|
||||
{
|
||||
get { return _Type; }
|
||||
set { _Type = value; }
|
||||
}
|
||||
private DateTime _DTS;
|
||||
public DateTime DTS
|
||||
{
|
||||
get { return _DTS; }
|
||||
set { _DTS = value; }
|
||||
}
|
||||
private string _UserID;
|
||||
public string UserID
|
||||
{
|
||||
get { return _UserID; }
|
||||
set { _UserID = value; }
|
||||
}
|
||||
#endregion
|
||||
#region Constructor
|
||||
public PastingPartEnhancedCriteria(int startItemid, int itemID, EAddpingPart addType, int? type, int? fromType, DateTime dts, string userID)
|
||||
{
|
||||
_StartItemID = startItemid;
|
||||
_ItemID = itemID;
|
||||
_AddType = addType;
|
||||
_Type = type;
|
||||
_FromType = fromType;
|
||||
_DTS = dts;
|
||||
_UserID = userID;
|
||||
}
|
||||
#endregion
|
||||
#region PastingPartCriteria
|
||||
[Serializable()]
|
||||
}
|
||||
#endregion
|
||||
#region PastingPartCriteria
|
||||
[Serializable()]
|
||||
public class PastingPartCriteria
|
||||
{
|
||||
#region Properties
|
||||
@@ -2364,6 +2474,14 @@ namespace VEPROMS.CSLA.Library
|
||||
_MyPrevious = null; // Reset list so that the next line gets a new list
|
||||
if (MyPrevious != null) MyPrevious.RefreshNextItems(); // Update List for new value
|
||||
}
|
||||
// C2017-031: Support for paste/replace an enhanced step
|
||||
internal static ItemInfo CopyPasteReplaceEnhancedItemInfoFetch(int copyStartID, ItemInfo itemInfo)
|
||||
{
|
||||
ItemInfo tmp = null;
|
||||
tmp = DataPortal.Fetch<StepInfo>(new ItemInfo.PastingPartEnhancedCriteria(copyStartID, itemInfo.ItemID, ItemInfo.EAddpingPart.Replace, itemInfo.MyContent.Type, itemInfo.MyContent.Type, DateTime.Now, Volian.Base.Library.VlnSettings.UserID));
|
||||
AddToCache(tmp);
|
||||
return tmp;
|
||||
}
|
||||
internal static ItemInfo CopyPasteReplaceItemInfoFetch(int copyStartID, ItemInfo itemInfo) // int itemID, int? type, int? fromType)
|
||||
{
|
||||
ItemInfo tmp = null;
|
||||
@@ -2525,8 +2643,16 @@ namespace VEPROMS.CSLA.Library
|
||||
ItemInfo newItemInfo = null;
|
||||
try
|
||||
{
|
||||
newItemInfo = ItemInfo.CopyPasteReplaceItemInfoFetch(copyStartID, itemInfo); //itemInfo.ItemID, itemInfo.MyContent.Type, itemInfo.MyContent.Type);
|
||||
if (newItemInfo == null) return null;
|
||||
// C2017-031: Support for paste/replace an enhanced step, if this is replacing enhanced, do a specific query
|
||||
if (itemInfo.IsEnhancedStep)
|
||||
{
|
||||
newItemInfo = ItemInfo.CopyPasteReplaceEnhancedItemInfoFetch(copyStartID, itemInfo);
|
||||
if (newItemInfo == null) return null;
|
||||
}
|
||||
else
|
||||
{
|
||||
newItemInfo = ItemInfo.CopyPasteReplaceItemInfoFetch(copyStartID, itemInfo); if (newItemInfo == null) return null;
|
||||
}
|
||||
}
|
||||
catch (Exception ex1)
|
||||
{
|
||||
|
Reference in New Issue
Block a user