/// <summary> /// Lấy về tên store thực hiện thao tác /// </summary> /// <param name="entity">Đối tượng cất</param> /// <returns>dvthang-20.04.2017</returns> public static string GetStoreByEntityState(object entity) { string strStore = string.Empty; Enummation.EditMode entityState = entity.GetValue <Enummation.EditMode>("EditMode"); switch (entityState) { case Enummation.EditMode.Add: strStore = GetStoreInsert(entity); break; case Enummation.EditMode.Edit: strStore = GetStoreUpdate(entity); break; case Enummation.EditMode.Delete: strStore = GetStoreDelete(entity); break; } return(strStore); }
/// <summary> /// Ánh xạ giá trị của object vào trong store /// </summary> /// <param name="_cmd"></param> /// <param name="entity">Object</param> /// Create by: dvthang:20.04.2017 public static void MappingObjectIntoStore(DbCommand _cmd, object entity) { if (_cmd.Parameters.Count > 0) { string userName = GetUserName(); string ipAddress = GetClientIP(); DateTime currentDate = DateTime.Now; Enummation.EditMode editMode = entity.GetValue <Enummation.EditMode>("EditMode"); string name = string.Empty; object value = null; int totalParams = _cmd.Parameters.Count; for (int i = 0; i < totalParams; i++) { name = _cmd.Parameters[i].ParameterName; if (!name.Equals("@RETURN_VALUE")) { name = name.Replace("@", ""); PropertyInfo pi = entity.GetType().GetProperty(name); if (pi != null && pi.CanWrite) { switch (name) { case Commonkey.CreatedDate: case Commonkey.ModifiedDate: if (editMode == Enummation.EditMode.Add || editMode == Enummation.EditMode.Duplicate) { _cmd.Parameters[i].Value = currentDate; } else { _cmd.Parameters[i].Value = currentDate; } break; case Commonkey.CreatedBy: case Commonkey.ModifiedBy: if (editMode == Enummation.EditMode.Add || editMode == Enummation.EditMode.Duplicate) { _cmd.Parameters[i].Value = userName; } else { _cmd.Parameters[i].Value = userName; } break; default: value = pi.GetValue(entity, null); if (value != null) { _cmd.Parameters[i].Value = value; } else { _cmd.Parameters[i].Value = DBNull.Value; } break; } } } } } }