Browse Source

Merge branch 'master' into feature-restore

pull/311/head
Sebastian Stehle 8 years ago
parent
commit
30de517c9d
  1. 5
      src/Squidex.Domain.Apps.Core.Model/Squidex.Domain.Apps.Core.Model.csproj
  2. 4
      src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj
  3. 15
      src/Squidex.Domain.Apps.Entities.MongoDb/Contents/Visitors/FindExtensions.cs
  4. 2
      src/Squidex.Domain.Apps.Entities/Squidex.Domain.Apps.Entities.csproj
  5. 2
      src/Squidex.Domain.Users.MongoDb/Squidex.Domain.Users.MongoDb.csproj
  6. 2
      src/Squidex.Domain.Users/Squidex.Domain.Users.csproj
  7. 2
      src/Squidex.Infrastructure.Azure/Squidex.Infrastructure.Azure.csproj
  8. 20
      src/Squidex.Infrastructure.MongoDb/MongoDb/OData/ConstantVisitor.cs
  9. 12
      src/Squidex/Squidex.csproj
  10. 10
      src/Squidex/app/features/content/shared/field-editor.component.html
  11. 4
      src/Squidex/app/features/settings/pages/plans/plans-page.component.html
  12. 8
      src/Squidex/appsettings.json
  13. 11
      tests/Squidex.Domain.Apps.Core.Tests/Squidex.Domain.Apps.Core.Tests.csproj
  14. 13
      tests/Squidex.Domain.Apps.Entities.Tests/Contents/OData/ODataQueryTests.cs
  15. 13
      tests/Squidex.Domain.Apps.Entities.Tests/Squidex.Domain.Apps.Entities.Tests.csproj
  16. 11
      tests/Squidex.Domain.Users.Tests/Squidex.Domain.Users.Tests.csproj
  17. 11
      tests/Squidex.Infrastructure.Tests/Squidex.Infrastructure.Tests.csproj
  18. 13
      tests/Squidex.Tests/Squidex.Tests.csproj

5
src/Squidex.Domain.Apps.Core.Model/Squidex.Domain.Apps.Core.Model.csproj

@ -8,7 +8,10 @@
<DebugSymbols>True</DebugSymbols>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Fody" Version="3.1.3" />
<PackageReference Include="Fody" Version="3.1.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="Freezable.Fody" Version="1.9.1" />
<PackageReference Include="System.Collections.Immutable" Version="1.4.0" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" />

4
src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj

@ -19,13 +19,13 @@
<PackageReference Include="Jint" Version="2.11.58" />
<PackageReference Include="Microsoft.OData.Core" Version="7.5.0" />
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
<PackageReference Include="NJsonSchema" Version="9.10.60" />
<PackageReference Include="NJsonSchema" Version="9.10.67" />
<PackageReference Include="NodaTime" Version="2.3.0" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
<PackageReference Include="System.Collections.Immutable" Version="1.4.0" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
<PackageReference Include="WindowsAzure.Storage" Version="9.3.0" />
<PackageReference Include="WindowsAzure.Storage" Version="9.3.1" />
</ItemGroup>
<PropertyGroup>
<CodeAnalysisRuleSet>..\..\Squidex.ruleset</CodeAnalysisRuleSet>

15
src/Squidex.Domain.Apps.Entities.MongoDb/Contents/Visitors/FindExtensions.cs

@ -12,6 +12,7 @@ using System.Reflection;
using Microsoft.OData.UriParser;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Driver;
using NodaTime;
using Squidex.Domain.Apps.Core.Contents;
using Squidex.Domain.Apps.Core.GenerateEdmSchema;
using Squidex.Domain.Apps.Core.Schemas;
@ -27,6 +28,18 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Contents.Visitors
typeof(MongoContentEntity).GetProperties()
.ToDictionary(x => x.Name, x => x.GetCustomAttribute<BsonElementAttribute>()?.ElementName ?? x.Name, StringComparer.OrdinalIgnoreCase);
public static readonly ConvertValue ValueConverter = (field, value) =>
{
if (value is Instant instant &&
!string.Equals(field, "mt", StringComparison.OrdinalIgnoreCase) &&
!string.Equals(field, "ct", StringComparison.OrdinalIgnoreCase))
{
return instant.ToString();
}
return value;
};
public static ConvertProperty CreatePropertyCalculator(Schema schema, bool useDraft)
{
return propertyNames =>
@ -98,7 +111,7 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Contents.Visitors
filters.Add(Filter.In(x => x.Status, status));
}
var filter = query.BuildFilter<MongoContentEntity>(propertyCalculator);
var filter = query.BuildFilter<MongoContentEntity>(propertyCalculator, ValueConverter);
if (filter.Filter != null)
{

2
src/Squidex.Domain.Apps.Entities/Squidex.Domain.Apps.Entities.csproj

@ -14,7 +14,7 @@
<ProjectReference Include="..\Squidex.Shared\Squidex.Shared.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="GraphQL" Version="2.0.0-alpha-912" />
<PackageReference Include="GraphQL" Version="2.0.0" />
<PackageReference Include="Microsoft.Orleans.OrleansCodeGenerator.Build" Version="2.0.4-ci.20180622.3" />
<PackageReference Include="Microsoft.Orleans.Core" Version="2.0.4-ci.20180622.3" />
<PackageReference Include="NodaTime" Version="2.3.0" />

2
src/Squidex.Domain.Users.MongoDb/Squidex.Domain.Users.MongoDb.csproj

@ -14,7 +14,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="IdentityServer4" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.1.2" />
<PackageReference Include="Microsoft.Win32.Registry" Version="4.5.0" />
<PackageReference Include="MongoDB.Driver" Version="2.7.0" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />

2
src/Squidex.Domain.Users/Squidex.Domain.Users.csproj

@ -11,7 +11,7 @@
<ProjectReference Include="..\Squidex.Shared\Squidex.Shared.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.1.2" />
<PackageReference Include="Microsoft.Win32.Registry" Version="4.5.0" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="SharpPwned.NET" Version="1.0.8" />

2
src/Squidex.Infrastructure.Azure/Squidex.Infrastructure.Azure.csproj

@ -6,7 +6,7 @@
<ItemGroup>
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
<PackageReference Include="WindowsAzure.Storage" Version="9.3.0" />
<PackageReference Include="WindowsAzure.Storage" Version="9.3.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Squidex.Infrastructure\Squidex.Infrastructure.csproj" />

20
src/Squidex.Infrastructure.MongoDb/MongoDb/OData/ConstantVisitor.cs

@ -6,6 +6,7 @@
// ==========================================================================
using System;
using Microsoft.OData;
using Microsoft.OData.Edm;
using Microsoft.OData.UriParser;
using NodaTime;
@ -51,7 +52,24 @@ namespace Squidex.Infrastructure.MongoDb.OData
return Instant.FromDateTimeOffset(dateTimeOffset);
}
return InstantPattern.General.Parse(Visit(nodeIn.Source).ToString()).Value;
if (value is DateTime dateTime)
{
return Instant.FromDateTimeUtc(DateTime.SpecifyKind(dateTime, DateTimeKind.Utc));
}
if (value is Date date)
{
return Instant.FromUtc(date.Year, date.Month, date.Day, 0, 0);
}
var parseResult = InstantPattern.General.Parse(Visit(nodeIn.Source).ToString());
if (!parseResult.Success)
{
throw new ODataException("Datetime is not in a valid format. Use ISO 8601");
}
return parseResult.Value;
}
return base.Visit(nodeIn);

12
src/Squidex/Squidex.csproj

@ -58,30 +58,30 @@
<PackageReference Include="IdentityServer4" Version="2.2.0" />
<PackageReference Include="IdentityServer4.AccessTokenValidation" Version="2.6.0" />
<PackageReference Include="IdentityServer4.AspNetIdentity" Version="2.1.0" />
<PackageReference Include="Microsoft.AspNetCore" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore" Version="2.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Google" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore.HttpOverrides" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="2.1.1" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.1.0" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="2.1.1" />
<PackageReference Include="Microsoft.Data.Edm" Version="5.8.3" />
<PackageReference Include="Microsoft.Data.Edm" Version="5.8.4" />
<PackageReference Include="Microsoft.OData.Core" Version="7.5.0" />
<PackageReference Include="Microsoft.Orleans.Client" Version="2.0.0-ci.20180515.5" />
<PackageReference Include="Microsoft.Orleans.Core" Version="2.0.4-ci.20180622.3" />
<PackageReference Include="Microsoft.Orleans.Core.Abstractions" Version="2.0.0-ci.20180515.5" />
<PackageReference Include="Microsoft.Orleans.OrleansRuntime" Version="2.0.4-ci.20180622.3" />
<PackageReference Include="MongoDB.Driver" Version="2.7.0" />
<PackageReference Include="NJsonSchema" Version="9.10.60" />
<PackageReference Include="NJsonSchema" Version="9.10.67" />
<PackageReference Include="NodaTime.Serialization.JsonNet" Version="2.0.0" />
<PackageReference Include="NSwag.AspNetCore" Version="11.17.19" />
<PackageReference Include="NSwag.AspNetCore" Version="11.18.6" />
<PackageReference Include="OpenCover" Version="4.6.519" />
<PackageReference Include="Orleans.Providers.MongoDB" Version="2.0.0" />
<PackageReference Include="OrleansDashboard" Version="2.0.7" />
<PackageReference Include="OrleansDashboard" Version="2.0.8" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="ReportGenerator" Version="3.1.2" />
<PackageReference Include="StackExchange.Redis.StrongName" Version="1.2.6" />

10
src/Squidex/app/features/content/shared/field-editor.component.html

@ -29,12 +29,12 @@
</select>
</ng-container>
<ng-container *ngSwitchCase="'Radio'">
<ng-container class="form-check form-check-inline" *ngFor="let value of field.properties['allowedValues']">
<div class="form-check form-check-inline" *ngFor="let value of field.properties['allowedValues']">
<input class="form-check-input" type="radio" [value]="value" [formControl]="control" />
<label class="form-check-label">
{{value}}
</label>
</ng-container>
</div>
</ng-container>
</ng-container>
</ng-container>
@ -62,12 +62,12 @@
</select>
</ng-container>
<ng-container *ngSwitchCase="'Radio'">
<ng-container class="form-check form-check-inline" *ngFor="let value of field.properties['allowedValues']">
<div class="form-check form-check-inline" *ngFor="let value of field.properties['allowedValues']">
<input class="form-check-input" type="radio" value="{{value}}" [formControl]="control" />
<label class="form-check-label">
{{value}}
</label>
</ng-container>
</div>
</ng-container>
</ng-container>
</ng-container>
@ -121,4 +121,4 @@
<small class="form-text text-muted" *ngIf="hints.length > 0">
{{hints}}
</small>
</ng-container>
</ng-container>

4
src/Squidex/app/features/settings/pages/plans/plans-page.component.html

@ -17,7 +17,7 @@
<ng-container *ngIf="plansState.isLoaded | async">
<ng-container *ngIf="plansState.plans | async; let plans">
<div class="panel-alert panel-alert-danger" *ngIf="(plansState.isOwner | async) === false">
You have not created the subscription. Therefore you cannot change the planInfo.plan.
You have not created the subscription. Therefore you cannot change the plan.
</div>
<div class="text-muted text-center empty" *ngIf="plans.length === 0">
@ -85,4 +85,4 @@
</ng-container>
</sqx-panel>
<router-outlet></router-outlet>
<router-outlet></router-outlet>

8
src/Squidex/appsettings.json

@ -168,11 +168,7 @@
* Prefix for all streams and projections (for multiple installations).
*/
"prefix": "squidex"
},
/*
* Consume the events on this server (Ensure that it is only enabled on a single node).
*/
"consume": true
}
},
"eventPublishers": {
@ -245,4 +241,4 @@
*/
"privacyUrl": "https://squidex.io/privacy"
}
}
}

11
tests/Squidex.Domain.Apps.Core.Tests/Squidex.Domain.Apps.Core.Tests.csproj

@ -10,14 +10,17 @@
<ProjectReference Include="..\..\src\Squidex.Infrastructure\Squidex.Infrastructure.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="FakeItEasy" Version="4.7.1" />
<PackageReference Include="FakeItEasy" Version="4.8.0" />
<PackageReference Include="FluentAssertions" Version="5.4.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.8.0" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
<PackageReference Include="xunit" Version="2.3.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
<PackageReference Include="xunit" Version="2.4.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
<PropertyGroup>
<CodeAnalysisRuleSet>..\..\Squidex.ruleset</CodeAnalysisRuleSet>

13
tests/Squidex.Domain.Apps.Entities.Tests/Contents/OData/ODataQueryTests.cs

@ -95,6 +95,15 @@ namespace Squidex.Domain.Apps.Entities.Contents.OData
Assert.Equal(o, i);
}
[Fact]
public void Should_make_query_with_created_and_date()
{
var i = F("$filter=created eq 1988-01-19");
var o = C("{ 'ct' : ISODate('1988-01-19T00:00:00Z') }");
Assert.Equal(o, i);
}
[Fact]
public void Should_make_query_with_createdBy()
{
@ -216,7 +225,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.OData
public void Should_make_query_with_datetime_equals()
{
var i = F("$filter=data/birthday/iv eq 1988-01-19T12:00:00Z");
var o = C("{ 'do.5.iv' : ISODate('1988-01-19T12:00:00Z') }");
var o = C("{ 'do.5.iv' : '1988-01-19T12:00:00Z' }");
Assert.Equal(o, i);
}
@ -430,7 +439,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.OData
var parser = edmModel.ParseQuery(value);
var query =
parser.BuildFilter<MongoContentEntity>(FindExtensions.CreatePropertyCalculator(schemaDef, false))
parser.BuildFilter<MongoContentEntity>(FindExtensions.CreatePropertyCalculator(schemaDef, false), FindExtensions.ValueConverter)
.Filter.Render(Serializer, Registry).ToString();
return query;

13
tests/Squidex.Domain.Apps.Entities.Tests/Squidex.Domain.Apps.Entities.Tests.csproj

@ -19,16 +19,19 @@
<ProjectReference Include="..\..\src\Squidex.Domain.Apps.Entities\Squidex.Domain.Apps.Entities.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="FakeItEasy" Version="4.7.1" />
<PackageReference Include="FakeItEasy" Version="4.8.0" />
<PackageReference Include="FluentAssertions" Version="5.4.1" />
<PackageReference Include="GraphQL" Version="2.0.0-alpha-912" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.2" />
<PackageReference Include="GraphQL" Version="2.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.8.0" />
<PackageReference Include="MongoDB.Driver" Version="2.7.0" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
<PackageReference Include="xunit" Version="2.3.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
<PackageReference Include="xunit" Version="2.4.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
<PropertyGroup>
<CodeAnalysisRuleSet>..\..\Squidex.ruleset</CodeAnalysisRuleSet>

11
tests/Squidex.Domain.Users.Tests/Squidex.Domain.Users.Tests.csproj

@ -11,14 +11,17 @@
<ProjectReference Include="..\..\src\Squidex.Shared\Squidex.Shared.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="FakeItEasy" Version="4.7.1" />
<PackageReference Include="FakeItEasy" Version="4.8.0" />
<PackageReference Include="FluentAssertions" Version="5.4.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.8.0" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
<PackageReference Include="xunit" Version="2.3.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
<PackageReference Include="xunit" Version="2.4.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
<PropertyGroup>
<CodeAnalysisRuleSet>..\..\Squidex.ruleset</CodeAnalysisRuleSet>

11
tests/Squidex.Infrastructure.Tests/Squidex.Infrastructure.Tests.csproj

@ -11,17 +11,20 @@
<ProjectReference Include="..\..\src\Squidex.Infrastructure\Squidex.Infrastructure.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="FakeItEasy" Version="4.7.1" />
<PackageReference Include="FakeItEasy" Version="4.8.0" />
<PackageReference Include="FluentAssertions" Version="5.4.1" />
<PackageReference Include="Google.Cloud.Storage.V1" Version="2.1.0" />
<PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="2.1.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.8.0" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
<PackageReference Include="xunit" Version="2.3.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
<PackageReference Include="xunit" Version="2.4.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
<PropertyGroup>
<CodeAnalysisRuleSet>..\..\Squidex.ruleset</CodeAnalysisRuleSet>

13
tests/Squidex.Tests/Squidex.Tests.csproj

@ -10,15 +10,18 @@
<ProjectReference Include="..\..\src\Squidex\Squidex.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="FakeItEasy" Version="4.7.1" />
<PackageReference Include="FakeItEasy" Version="4.8.0" />
<PackageReference Include="IdentityServer4" Version="2.2.0" />
<PackageReference Include="IdentityServer4.AspNetIdentity" Version="2.1.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.2" />
<PackageReference Include="NJsonSchema" Version="9.10.60" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.8.0" />
<PackageReference Include="NJsonSchema" Version="9.10.67" />
<PackageReference Include="RefactoringEssentials" Version="5.6.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.0.2" />
<PackageReference Include="xunit" Version="2.3.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
<PackageReference Include="xunit" Version="2.4.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
</ItemGroup>
<PropertyGroup>
<CodeAnalysisRuleSet>..\..\Squidex.ruleset</CodeAnalysisRuleSet>

Loading…
Cancel
Save