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); }
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)); }