Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        /// <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());
        }
Esempio n. 4
0
        /// <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());
        }