コード例 #1
0
 private static void ValidateTransferFindResult(TransferFindResult findResult)
 {
     s_helper.Check<StorageServerException>(findResult == null, Messages.DtoTransformer.s_errNullFindResults);
     var meta = findResult.Meta;
     var data = findResult.Data;
     s_helper.Check<StorageServerException>(meta == null, Messages.DtoTransformer.s_errNullFindResultsMeta);
     var invalidNumber = meta.Count < 0 || meta.Limit < 0 || meta.Offset < 0 || meta.Total < 0;
     var positiveMetaEmptyData = meta.Count > 0 && (data == null || data.Count == 0 || data.Count != meta.Count);
     var zeroMetaNonEmptyData = meta.Count == 0 && data != null && data.Count != 0;
     s_helper.Check<StorageServerException>(invalidNumber,
         Messages.DtoTransformer.s_errNegativeFindResultsMeta);
     s_helper.Check<StorageServerException>(positiveMetaEmptyData || zeroMetaNonEmptyData,
         Messages.DtoTransformer.s_errIncorrectFindResultsCount);
     s_helper.Check<StorageServerException>(meta.Count > meta.Total,
         Messages.DtoTransformer.s_errIncorrectFindResultsTotal);
 }
コード例 #2
0
        public FindResult GetFindResult(TransferFindResult findResult)
        {
#pragma warning disable CA1062
            ValidateTransferFindResult(findResult);
#pragma warning restore CA1062
            var records = new List<Record>();
            var recordExceptions = new List<RecordException>();
            if (findResult.Meta.Count != 0)
            {
                foreach (var transferRecord in findResult.Data)
                {
                    if (transferRecord.Version == null)
                    {
                        transferRecord.Version = 0;
                    }

                    try
                    {
                        var record = GetRecord(transferRecord);
                        records.Add(record);
                    }
#pragma warning disable CA1031
                    catch (System.Exception e)
#pragma warning restore CA1031
                    {
                        s_log.Warn(e);
                        recordExceptions.Add(new RecordException(Messages.DtoTransformer.s_errRecordParse,
                            JsonConvert.SerializeObject(transferRecord, _jsonSettings), e));
                    }
                }
            }

            var findResults = new FindResult(records, recordExceptions, findResult.Meta.Limit,
                findResult.Meta.Offset, findResult.Meta.Total, findResult.Meta.Count);
            return findResults;
        }