public override async Task <dynamic> GetDataAsync(HttpContext httpContext, DataSource dataSource) { ParametersParser parametersParser = new ParametersParser(dataSource.DataProviderParameters); Inclusion <Object>[] inclusions = null; if (parametersParser.GetStringParameterValue("RelationType") == "Primary") { inclusions = new Inclusion <Object>[] { new Inclusion <Object>("Properties.Member"), new Inclusion <Object>("Properties.StringValue.Localizations"), new Inclusion <Object>("ForeignRelations.Primary.Properties.Member"), new Inclusion <Object>("ForeignRelations.Primary.Properties.StringValue.Localizations") } } ; else { inclusions = new Inclusion <Object>[] { new Inclusion <Object>("Properties.Member"), new Inclusion <Object>("Properties.StringValue.Localizations"), new Inclusion <Object>("PrimaryRelations.Foreign.Properties.Member"), new Inclusion <Object>("PrimaryRelations.Foreign.Properties.StringValue.Localizations") } }; Object @object = (await httpContext.GetStorage().GetRepository <int, Object, ObjectFilter>().GetAllAsync( new ObjectFilter(stringValue: new LocalizationFilter(value: new StringFilter(equals: httpContext.Request.GetUrl()))), inclusions: inclusions )).FirstOrDefault(); if (@object == null) { return(null); } int relationMemberId = parametersParser.GetIntParameterValue("RelationMemberId"); if (new ParametersParser(dataSource.DataProviderParameters).GetStringParameterValue("RelationType") == "Primary") { return(@object.ForeignRelations.Where(r => r.MemberId == relationMemberId).Select(r => this.CreateViewModel(r.Primary))); } return(@object.PrimaryRelations.Where(r => r.MemberId == relationMemberId).Select(r => this.CreateViewModel(r.Foreign))); } }