internal CustomLoanField(FieldDescriptor descriptor, Loan loan) : base(descriptor, loan) { }
static LoanFieldDescriptors() { // Use embedded resource file for built-in field mappings to save assembly space using (var stream = typeof(LoanFields).GetTypeInfo().Assembly.GetManifestResourceStream("EncompassRest.LoanFields.zip")) { using (var zip = new ZipArchive(stream)) { using (var jsonStream = zip.GetEntry("LoanFields.json").Open()) { using (var sr = new StreamReader(jsonStream)) { using (var jr = new JsonTextReader(sr)) { var loanFields = JsonHelper.DefaultPublicSerializer.Deserialize <List <StandardFieldInfo> >(jr); foreach (var loanField in loanFields) { var modelPath = loanField.ModelPath; var descriptor = new FieldDescriptor(loanField.FieldId, CreateModelPath(modelPath), modelPath, loanField.Description); FieldMappings.AddField(descriptor); } } } } using (var jsonStream = zip.GetEntry("VirtualFields.json").Open()) { using (var sr = new StreamReader(jsonStream)) { using (var jr = new JsonTextReader(sr)) { var virtualFields = JsonHelper.DefaultPublicSerializer.Deserialize <List <VirtualFieldInfo> >(jr); foreach (var virtualField in virtualFields) { var modelPath = $"Loan.VirtualFields['{virtualField.FieldId}']"; var descriptor = new NonStandardFieldDescriptor(virtualField.FieldId, CreateModelPath(modelPath), modelPath, virtualField.Description, virtualField.Format, virtualField.Options, true); FieldMappings.AddField(descriptor); } } } } using (var jsonStream = zip.GetEntry("LoanFieldPatterns.json").Open()) { using (var sr = new StreamReader(jsonStream)) { using (var jr = new JsonTextReader(sr)) { var loanFieldPatterns = JsonHelper.DefaultPublicSerializer.Deserialize <List <StandardFieldInfo> >(jr); foreach (var loanFieldPattern in loanFieldPatterns) { var modelPathPattern = loanFieldPattern.ModelPath; var descriptor = new FieldDescriptor(loanFieldPattern.FieldId, CreateModelPath(string.Format(modelPathPattern, 1)), modelPathPattern, loanFieldPattern.Description, true); FieldPatternMappings.AddField(descriptor); } } } } using (var jsonStream = zip.GetEntry("VirtualFieldPatterns.json").Open()) { using (var sr = new StreamReader(jsonStream)) { using (var jr = new JsonTextReader(sr)) { var virtualFieldPatterns = JsonHelper.DefaultPublicSerializer.Deserialize <List <VirtualFieldInfo> >(jr); foreach (var virtualFieldPattern in virtualFieldPatterns) { var modelPathPattern = $"Loan.VirtualFields['{virtualFieldPattern.FieldId}']"; var descriptor = new NonStandardFieldDescriptor(virtualFieldPattern.FieldId, CreateModelPath(string.Format(modelPathPattern, 1)), modelPathPattern, virtualFieldPattern.Description, virtualFieldPattern.Format, virtualFieldPattern.Options, true, true); FieldPatternMappings.AddField(descriptor); } } } } } } }
internal void AddField(FieldDescriptor descriptor) => (descriptor.Type == LoanFieldType.Virtual ? _virtualFields : _standardFields).TryAdd(descriptor.FieldId, descriptor);