Ejemplo n.º 1
0
        protected override JsonConverter CreateGenericConverter <T>(Type type, SerializerRegistry registry)
        {
            var info = new RefInfo(type, registry);

            Type converterType = typeof(RefConverter <,>)
                                 .MakeGenericType(info.TargetType, info.IDType);

            return((JsonConverter)Activator.CreateInstance(converterType, info.IDConverter));
        }
Ejemplo n.º 2
0
        void setObjRef(IPersists referer, int objId, int refId)
        {
            if (!references.Contains(referer))
            {
                references[referer] = new ArrayList();
            }

            RefInfo   ri = new RefInfo(objId, refId);
            ArrayList al = (ArrayList)references[referer];

            al.Add(ri);
        }
        public void CheckReferenceConverter(ContentReference contentReference, AdminViewModel model)
        {
            RefInfo refInfo = new RefInfo();

            refInfo.Ref         = contentReference;
            refInfo.Code        = _referenceConverter.GetCode(contentReference);
            refInfo.DbId        = _referenceConverter.GetObjectId(contentReference);
            refInfo.CatalogType = _referenceConverter.GetContentType(contentReference).ToString();
            refInfo.RootRef     = _referenceConverter.GetRootLink();

            model.Refs.Add(refInfo);
        }
Ejemplo n.º 4
0
        public bool GetExtractInfo(ExtractInfo extractInfo)
        {
            bool result = false;

            ForEachMember(extractInfo.TargetType, m =>
                          result |= AddMappingInfo(m, extractInfo)
                          );

            RefInfo refTable = GetRefInfo(extractInfo);

            if (refTable != null)
            {
                extractInfo.RefTable = refTable;
                result = true;
            }

            return(result);
        }
Ejemplo n.º 5
0
        public DarksVMData(Module module, void *data)
        {
            var header = (VMDAT_HEADER *)data;

            if (header->MAGIC != 0x68736966)
            {
                throw new InvalidProgramException();
            }

            references = new Dictionary <uint, RefInfo>();
            strings    = new Dictionary <uint, string>();
            exports    = new Dictionary <uint, DarksVMExportInfo>();

            var ptr = (byte *)(header + 1);

            for (var i = 0; i < header->MD_COUNT; i++)
            {
                var id    = Utils.ReadCompressedUInt(ref ptr);
                var token = (int)Utils.FromCodedToken(Utils.ReadCompressedUInt(ref ptr));
                references[id] = new RefInfo
                {
                    module = module,
                    token  = token
                };
            }
            for (var i = 0; i < header->STR_COUNT; i++)
            {
                var id  = Utils.ReadCompressedUInt(ref ptr);
                var len = Utils.ReadCompressedUInt(ref ptr);
                strings[id] = new string((char *)ptr, 0, (int)len);
                ptr        += len << 1;
            }
            for (var i = 0; i < header->EXP_COUNT; i++)
            {
                exports[Utils.ReadCompressedUInt(ref ptr)] = new DarksVMExportInfo(ref ptr, module);
            }

            KoiSection = (byte *)data;

            Module = module;
            moduleVMData[module] = this;
        }
Ejemplo n.º 6
0
        public void GetRefInfo(string document, string @ref, bool expectedIsNested, bool expectedIsLocal, string expectedUri, string expectedPath)
        {
            var refInfo = RefInfo.GetRefInfo(document, @ref);

            if (!new Uri(expectedUri, UriKind.RelativeOrAbsolute).IsAbsoluteUri)
            {
                expectedUri = Path.Combine(Directory.GetCurrentDirectory(), expectedUri);
                expectedUri = new Uri(Path.GetFullPath(expectedUri)).AbsoluteUri.ToString();
            }
            else
            {
                expectedUri = new Uri(expectedUri).AbsoluteUri.ToString();
            }

            var absoluteUri = refInfo.AbsoluteDocumentUri.AbsoluteUri.ToString();

            refInfo.IsNestedInThisDocument.ShouldBe(expectedIsNested);
            refInfo.IsLocal.ShouldBe(expectedIsLocal);
            absoluteUri.ShouldBe(expectedUri);
            refInfo.InDocumentPath.ShouldBe(expectedPath);
        }
Ejemplo n.º 7
0
		void setObjRef(IPersists referer, int objId, int refId)
		{
			if (!references.Contains(referer))
				references[referer] = new ArrayList();

			RefInfo ri = new RefInfo(objId, refId);
			ArrayList al = (ArrayList)references[referer];
			al.Add(ri);
		}
Ejemplo n.º 8
0
 public virtual void ApplyRefReplacement(RefInfo refInfo, JObject rootJObj, JProperty refProperty, JToken replacement, Uri fromDocument)
 {
     refProperty.Parent.Replace(replacement);
 }
Ejemplo n.º 9
0
 public virtual bool ShouldResolveReference(RefInfo refInfo) => true;
 public override bool ShouldResolveReference(RefInfo refInfo) => refInfo.IsLocal;