protected void SerializeOther(IJsonWriter writer, OtherModel model, String discriminator, CalculationTicket ticket) { this.AddDiscriminatorIfAny(writer, discriminator); this.expressionWriter.SerializeOnceResolved(model.Benchmark, JsonNames.Benchmark, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.Base, JsonNames.Base, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.BaseActive, JsonNames.BaseActive, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.Overlay, JsonNames.Overlay, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.PortfolioAdjustment, JsonNames.PortfolioAdjustment, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.PortfolioScaled, JsonNames.PortfolioScaled, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.TrueExposure, JsonNames.TrueExposure, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.TrueActive, JsonNames.TrueActive, writer, ticket); writer.WriteArray(model.BasketCountries, JsonNames.BasketCountries, basketCountry => { writer.Write(delegate { this.SerializeBasketCountry(writer, basketCountry, JsonNames.BasketCountry, ticket); }); }); writer.WriteArray(model.UnsavedBasketCountries, JsonNames.UnsavedBasketCountries, unsavedBasketCountry => { writer.Write(delegate { this.SerializeUnsavedBasketCountry(writer, unsavedBasketCountry, JsonNames.UnsavedBasketCountry, ticket); }); }); }
public void SerializeRoot(RootModel root, CalculationTicket ticket, IJsonWriter writer) { writer.Write(JsonNames.LatestBaseChangeset, delegate { this.SerializeLatestBaseChangeset(root.LatestBaseChangeset, writer); }); writer.Write(JsonNames.LatestPortfolioTargetChangeset, delegate { this.SerializeLatestPortfolioTargetChangeset(root.LatestPortfolioTargetChangeset, writer); }); writer.Write(root.Core.TargetingTypeGroup.Id, JsonNames.TargetingTypeGroupId); writer.Write(root.Core.Basket.Id, JsonNames.BasketId); writer.Write(root.BenchmarkDate, JsonNames.BenchmarkDate); writer.WriteArray(root.Core.Securities, JsonNames.Securities, security => { writer.Write(delegate { this.SerializeItem(security, ticket, writer); }); }); writer.WriteArray(root.Core.Portfolios, JsonNames.Portfolios, portfolio => { writer.Write(delegate { this.SerializePortfolio(portfolio, writer, ticket); }); }); this.expressionSerializer.SerializeOnceResolved(root.Core.BaseTotal, JsonNames.BaseTotal, writer, ticket); }
public void SerializeException(Exception exception, ExceptionToJsonSerializerOptions options, IJsonWriter writer) { writer.Write(exception.Message, "message"); if (options.IncludeType) { writer.Write(exception.GetType().Name, "type"); } if (options.IncludeStackTrace) { var lines = (exception.StackTrace ?? String.Empty).Split('\n').Select(x => x.Trim()).ToArray(); writer.WriteArray(lines, "stack", line => { writer.Write(line); }); } if (options.IncludeInnerExceptions) { if (exception.InnerException != null) { writer.Write("inner", delegate { this.SerializeException(exception.InnerException, options, writer); }); } else { writer.WriteNull("inner"); } } }
public void Serialize(RootModel root, IJsonWriter writer) { writer.WriteArray(root.GetGroups(), "groups", group => { writer.Write(delegate { this.Serialize(group, writer); }); }); }
protected void Serialize(String message, IEnumerable <IValidationIssue> issues, IJsonWriter writer) { writer.Write(message, JsonNames.Message); writer.WriteArray(issues, JsonNames.Issues, issue => { writer.Write(delegate { this.SerializeValidationIssueOnceResolved(issue, writer); }); }); }
public void SerializeTargetingType(TargetingTypeModel targeting, IJsonWriter writer) { writer.Write(targeting.Id, "id"); writer.Write(targeting.Name, "name"); writer.WriteArray(targeting.Portfolios, "portfolios", portfolio => { writer.Write(delegate { this.SerializePortfolio(portfolio, writer); }); }); }
public void Serialize(TargetingGroupModel group, IJsonWriter writer) { writer.Write(group.TargetingGroupId, "id"); writer.Write(group.TargetingGroupName, "name"); writer.WriteArray(group.GetBaskets(), "baskets", basket => { writer.Write(delegate { this.Serialize(basket, writer); }); }); }
public void SerializeValidationIssuesIfAny(IEnumerable <IValidationIssue> issues, IJsonWriter writer) { if (issues.Any()) { writer.WriteArray(issues, JsonNames.Issues, issue => { writer.Write(delegate { this.SerializeValidationIssueOnceResolved(issue, writer); }); }); } }
public void Write(IJsonWriter writer) { switch (JsonType) { case JsonType.Null: writer.WriteNull(); break; case JsonType.Boolean: writer.WriteBoolean(AsBool()); break; case JsonType.String: writer.WriteString(_string); break; case JsonType.Number: if (_long.HasValue) { writer.WriteLong(_long.Value); } else { writer.WriteReal(_real.GetValueOrDefault()); } break; case JsonType.Object: writer.WriteObject(this); break; case JsonType.Array: writer.WriteArray(this); break; } }
public void SerializeItem(SecurityModel item, CalculationTicket ticket, IJsonWriter writer) { writer.Write("security", delegate { this.securitySerializer.SerializeSecurityOnceResolved(item.Security, writer); }); this.expressionSerializer.SerializeEditable(item.Base, JsonNames.Base, writer); this.expressionSerializer.Serialize(item.Benchmark, JsonNames.Benchmark, writer, ticket); writer.WriteArray(item.PortfolioTargets, JsonNames.PortfolioTargets, portfolioTarget => { writer.Write(delegate { this.SerializePortfolioTarget(item.Base, portfolioTarget, writer); }); }); }
protected void SerializeGlobe(IJsonWriter writer, GlobeModel root, CalculationTicket ticket) { this.expressionWriter.SerializeOnceResolved(root.Benchmark, JsonNames.Benchmark, writer, ticket); this.expressionWriter.SerializeOnceResolved(root.Overlay, JsonNames.Overlay, writer, ticket); this.expressionWriter.SerializeOnceResolved(root.Base, JsonNames.Base, writer, ticket); this.expressionWriter.SerializeOnceResolved(root.PortfolioAdjustment, JsonNames.PortfolioAdjustment, writer, ticket); this.expressionWriter.SerializeOnceResolved(root.PortfolioScaled, JsonNames.PortfolioScaled, writer, ticket); this.expressionWriter.SerializeOnceResolved(root.TrueExposure, JsonNames.TrueExposure, writer, ticket); this.expressionWriter.SerializeOnceResolved(root.TrueActive, JsonNames.TrueActive, writer, ticket); writer.WriteArray(root.Residents, JsonNames.Residents, resident => { writer.Write(delegate { resident.Accept(new IBreakdownModelResident_Resolver(this, writer, ticket)); }); }); }
private void SerializeList(object obj, PdListBase pdList, IJsonWriter jsonWriter) { var list = pdList.PropertyFabric.GetValue <IList>(obj); if (list == null) { jsonWriter.Write(pdList.NodeName, null); } else { using (var jw = jsonWriter.WriteArray(pdList.NodeName)) { foreach (var itm in list) { SerializeListItem(pdList, itm, null, jw); } } } }
private void SerializeDict(object obj, PdDictionary pdDict, IJsonWriter jsonWriter) { var dict = pdDict.PropertyFabric.GetValue <IDictionary>(obj); if (dict == null) { jsonWriter.Write(pdDict.NodeName, null); } else { using (var jw = jsonWriter.WriteArray(pdDict.NodeName)) { foreach (var key in dict.Keys) { var keyStr = pdDict.KeyFabric.GetValueAsString(key); SerializeListItem(pdDict, dict[key], keyStr, jw); } } } }
protected void SerializeOverlay(Overlaying.RootModel overlay, IJsonWriter writer, CalculationTicket ticket) { writer.WriteArray(overlay.Items, JsonNames.Items, item => { writer.Write(delegate { #warning set up a special object for JSON property names in order not to confuse them with string values writer.Write(JsonNames.Portfolio, delegate { this.portfolioSerializer.SerializeBottomUpPortfolio(item.BottomUpPortfolio, writer); }); this.expressionWriter.SerializeOnceResolved( item.OverlayFactor, JsonNames.OverlayFactor, writer, ticket ); }); }); }
protected void SerializeRegion(IJsonWriter writer, RegionModel model, String discriminator, CalculationTicket ticket) { this.AddDiscriminatorIfAny(writer, discriminator); writer.Write(model.Name, JsonNames.Name); this.expressionWriter.SerializeOnceResolved(model.Benchmark, JsonNames.Benchmark, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.Base, JsonNames.Base, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.BaseActive, JsonNames.BaseActive, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.Overlay, JsonNames.Overlay, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.PortfolioAdjustment, JsonNames.PortfolioAdjustment, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.PortfolioScaled, JsonNames.PortfolioScaled, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.TrueExposure, JsonNames.TrueExposure, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.TrueActive, JsonNames.TrueActive, writer, ticket); writer.WriteArray(model.Residents, JsonNames.Residents, resident => { writer.Write(delegate { resident.Accept(new IRegionModelResident_Resolver(this, writer, ticket)); }); }); }
protected void SerializeBasketRegion(IJsonWriter writer, BasketRegionModel model, String discriminator, CalculationTicket ticket) { this.AddDiscriminatorIfAny(writer, discriminator); writer.Write(model.Basket.Id, JsonNames.BasketId); writer.Write(model.Basket.Name, JsonNames.Name); this.expressionWriter.SerializeOnceResolved(model.Benchmark, JsonNames.Benchmark, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.Base, JsonNames.Base, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.BaseActive, JsonNames.BaseActive, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.Overlay, JsonNames.Overlay, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.PortfolioAdjustment, JsonNames.PortfolioAdjustment, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.PortfolioScaled, JsonNames.PortfolioScaled, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.TrueExposure, JsonNames.TrueExposure, writer, ticket); this.expressionWriter.SerializeOnceResolved(model.TrueActive, JsonNames.TrueActive, writer, ticket); writer.WriteArray(model.Countries, JsonNames.Countries, country => { writer.Write(delegate { this.SerializeCountry(writer, country.Country); this.expressionWriter.SerializeOnceResolved(country.Benchmark, JsonNames.Benchmark, writer, ticket); this.expressionWriter.SerializeOnceResolved(country.Overlay, JsonNames.Overlay, writer, ticket); }); }); }