private object GetValue(EPChangesetDetail row, string field) { if (row == null) { return(null); } var sourceField = row.With(_ => _.SourceField); if (string.IsNullOrEmpty(sourceField)) { return(null); } var valArr = row.With(_ => Details.Cache.GetValue(row, field) as byte[]). With(_ => PXDatabase.Deserialize(_)); if (valArr == null || valArr.Length == 0) { return(null); } var val = valArr[0]; var state = GetCurrentEntityType().With(_ => Caches[_].GetStateExt(null, sourceField) as PXFieldState); if (state == null) { return(null); } var intState = state as PXIntState; int intIndex; if (intState != null && intState.AllowedValues != null && (intIndex = Array.IndexOf(intState.AllowedValues, val)) > -1) { return(intState.AllowedLabels[intIndex]); } var stringState = state as PXStringState; int stringIndex; if (stringState != null && stringState.AllowedValues != null && (stringIndex = Array.IndexOf(stringState.AllowedValues, val)) > -1) { return(stringState.AllowedLabels[stringIndex]); } //TODO: need implement mask convertion return(val); }
private ReportNode ExtractReport(byte[] data) { var reports = PXDatabase.Deserialize(data); return(reports.Length == 0 ? null : (ReportNode)reports[0]); }