protected override JsonObject SerializeItem(BaseItem item, IServerConfigurationManager options, ILibraryManager libraryManager) { var output = new JsonExtra() { id = item.InternalId, title = item.Name ?? string.Empty, sorttitle = item.SortName ?? string.Empty, // dateadded = item.DateCreated.LocalDateTime, communityrating = item.CommunityRating, tagline = item.Tagline ?? string.Empty, overview = item.Overview ?? string.Empty, releasedate = item.PremiereDate.HasValue ? item.PremiereDate.Value.LocalDateTime : new DateTime?(), year = item.ProductionYear, parentalrating = item.OfficialRating ?? string.Empty, customrating = item.CustomRating ?? string.Empty, // threedformat lockdata = item.IsLocked, genres = item.Genres, studios = item.Studios, tags = item.Tags, }; AddPeople(item, output, libraryManager); return(output); }
public IEnumerable <XScanClass> GetScans() { foreach (var hdr in ScanHeaders) { XScanClass scancls = new XScanClass(); scancls.Scan = Scans[hdr.ParentId]; scancls.Planet = scancls.Scan.Flags.HasFlag(XScan.ScanFlags.IsPlanet) ? Planets[scancls.Scan.PlanetScanId] : default; scancls.Atmosphere = scancls.Planet.HasAtmosphere ? Atmospheres[scancls.Planet.AtmosphereId] : default; scancls.Materials = scancls.Planet.HasMaterials ? Materials[scancls.Planet.MaterialsId] : default; scancls.Star = scancls.Scan.Flags.HasFlag(XScan.ScanFlags.IsStar) ? Stars[scancls.Scan.StarScanId] : default; scancls.Parents = scancls.Scan.Flags.HasFlag(XScan.ScanFlags.HasParents) ? ParentSets[scancls.Scan.ParentSetId] : default; scancls.ScanBase = ScanBases[scancls.Scan.ParentId]; scancls.Body = Bodies[scancls.Scan.BodyId]; scancls.System = Systems[scancls.Body.ParentId]; scancls.CustomBodyName = BodyCustomNames.ContainsKey(scancls.Body.Id) ? BodyCustomNames[scancls.Body.Id] : null; scancls.CustomSystemName = SystemCustomNames.ContainsKey(scancls.System.Id) ? SystemCustomNames[scancls.System.Id] : null; if (scancls.Scan.Flags.HasFlag(XScan.ScanFlags.HasRings)) { scancls.RingA = Rings[scancls.Scan.RingScanId]; scancls.RingB = Rings[scancls.RingA.NextRingId]; scancls.RingC = Rings[scancls.RingB.NextRingId]; scancls.RingD = Rings[scancls.RingC.NextRingId]; scancls.RingAName = RingNames.ContainsKey(scancls.RingA.Id) ? RingNames[scancls.RingA.Id] : null; scancls.RingBName = RingNames.ContainsKey(scancls.RingB.Id) ? RingNames[scancls.RingB.Id] : null; scancls.RingCName = RingNames.ContainsKey(scancls.RingC.Id) ? RingNames[scancls.RingC.Id] : null; scancls.RingDName = RingNames.ContainsKey(scancls.RingD.Id) ? RingNames[scancls.RingD.Id] : null; } scancls.JsonExtra = JsonExtra.ContainsKey(hdr.Id) ? JsonExtra[hdr.Id] : null; yield return(scancls); } }
/// <summary> /// Converts JSON to CSV. /// </summary> /// <returns> /// A CSV block. /// </returns> /// <param name="jsonContent">A JSON array.</param> protected static string JsonToCsv(string jsonContent) { StringWriter csvString = new StringWriter(); using (var csv = new CsvWriter(csvString, GetConfiguration())) { var dt = JsonExtra.JsonToTable(jsonContent); dt = AlignHeaders(dt); foreach (DataRow row in dt.Rows) { for (var i = 0; i < dt.Columns.Count; i++) { csv.WriteField(row[i]); } csv.NextRecord(); } } return(csvString.ToString()); }
/// <summary> /// Converts a list of BSON documents to flat JSON. /// </summary> /// <returns> /// Serialized JSON, flattened into an array. /// </returns> /// <param name="sessionDocs">Documents.</param> protected static string ToFlatJson(List <BsonDocument> sessionDocs) { StringBuilder docsTotal = new StringBuilder(); docsTotal.Append("["); if (sessionDocs.Count > 0) { foreach (BsonDocument d in sessionDocs) { string json = d.ToJson(JsonWriterSettings.Defaults); var dict = JsonExtra.DeserializeAndFlatten(json); string flat = Newtonsoft.Json.JsonConvert.SerializeObject(dict); docsTotal.AppendFormat("{0}{1}", flat, ","); } docsTotal.Length--; // Remove trailing comma } docsTotal.Append("]"); return(docsTotal.ToString()); }