Пример #1
0
        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);
        }
Пример #2
0
        private ReportNode ExtractReport(byte[] data)
        {
            var reports = PXDatabase.Deserialize(data);

            return(reports.Length == 0 ? null : (ReportNode)reports[0]);
        }