Пример #1
0
        public IEdmModel BuildEdmModel(ISchemaEntityWithSchema schemaEntity, HashSet <Language> languages)
        {
            Guard.NotNull(languages, nameof(languages));
            Guard.NotNull(schemaEntity, nameof(schemaEntity));

            var cacheKey = $"{schemaEntity.Id}_{schemaEntity.Version}_{string.Join(",", languages.Select(x => x.Iso2Code).OrderBy(x => x))}";

            var result = Cache.GetOrCreate <IEdmModel>(cacheKey, entry =>
            {
                entry.AbsoluteExpiration = DateTimeOffset.UtcNow.AddMinutes(60);

                return(BuildEdmModel(schemaEntity.Schema, languages));
            });

            return(result);
        }
        public CachingSchemaProviderTests()
        {
            var schemaV1Mock = new Mock <ISchemaEntityWithSchema>();
            var schemaV2Mock = new Mock <ISchemaEntityWithSchema>();

            schemaV1Mock.Setup(x => x.Id).Returns(schemaId.Id);
            schemaV1Mock.Setup(x => x.Name).Returns(schemaId.Name);
            schemaV1Mock.Setup(x => x.AppId).Returns(appId.Id);

            schemaV2Mock.Setup(x => x.Id).Returns(schemaId.Id);
            schemaV2Mock.Setup(x => x.Name).Returns(schemaId.Name);
            schemaV2Mock.Setup(x => x.AppId).Returns(appId.Id);

            schemaV1 = schemaV1Mock.Object;
            schemaV2 = schemaV2Mock.Object;

            sut = new CachingSchemaProvider(cache, repository.Object);
        }
Пример #3
0
        public static SchemaDetailsDto ToModel(this ISchemaEntityWithSchema entity)
        {
            var dto = new SchemaDetailsDto();

            SimpleMapper.Map(entity, dto);
            SimpleMapper.Map(entity.Schema, dto);
            SimpleMapper.Map(entity.Schema.Properties, dto);

            dto.Fields = new List <FieldDto>();

            foreach (var kvp in entity.Schema.Fields)
            {
                var fieldPropertiesDto =
                    Factories[kvp.Value.RawProperties.GetType()](kvp.Value.RawProperties);

                var fieldDto = SimpleMapper.Map(kvp.Value, new FieldDto {
                    FieldId = kvp.Key, Properties = fieldPropertiesDto
                });

                dto.Fields.Add(fieldDto);
            }

            return(dto);
        }
 private async Task ProvideSchemaByName(ISchemaEntityWithSchema schema)
 {
     Assert.Equal(schema, await sut.FindSchemaByNameAsync(appId.Id, schemaId.Name));
 }
 private async Task ProvideSchemaById(ISchemaEntityWithSchema schema)
 {
     Assert.Equal(schema, await sut.FindSchemaByIdAsync(schemaId.Id));
 }