public DataObjectCollection <UserProfileDataObject> ExtractUserProfileItems() { if (InternalObjectIds == null) { return(null); } var result = new DataObjectCollection <UserProfileDataObject> { ObjectsDataSet = this.ObjectsDataSet }; result.ObjectsDataSet.DirtyHandlerOn = false; result.ObjectsDataSet.NotifyChanges = false; foreach (var internalObjectId in InternalObjectIds) { var item = this.ObjectsDataSet.GetObject <UserProfileDataObject>(typeof(UserProfileDataObject), internalObjectId); result.Add(item); } result.ObjectsDataSet.DirtyHandlerOn = true; result.ObjectsDataSet.NotifyChanges = true; return(result); }
public override DataObjectCollection <TDataObject> GetRelatedObjects <TDataObject>(IDataObject rootObject, string relationName) { if (relationName == "VisitedPlaceItems") { IEnumerable <VisitedPlaceDataObject> relatedObjects; relatedObjects = _rootObjectDataSet.VisitedPlaceObjectsDataSet.GetVisitedPlaceItemsForCountry(rootObject as CountryDataObject); var result = new DataObjectCollection <TDataObject>(); if (relatedObjects != null) { result.NotifyChanges = false; foreach (var relatedObject in relatedObjects) { result.Add(relatedObject as TDataObject); } result.NotifyChanges = true; } result.ObjectsDataSet = this._rootObjectDataSet; return(result); } return(null); }
protected override DataObjectCollection <GORoleDataObject> DoGetCollection(LambdaExpression securityFilterExpression, string filterPredicate, object[] filterArguments, string orderByPredicate, int pageNumber, int pageSize, List <string> includes, IObjectsDataSet context, Dictionary <string, object> parameters) { var result = new DataObjectCollection <GORoleDataObject>(); result.ObjectsDataSet = ApplicationSettings.Container.Resolve <IObjectsDataSet>(); result.Add(new GORoleDataObject() { Name = "Guest", DisplayName = "Guest", PasswordExpiry = null, PasswordRegEx = null, PasswordPolicySummary = null, IsNew = false, IsDirty = false }); result.Add(new GORoleDataObject() { Name = "User", DisplayName = "User", PasswordExpiry = null, PasswordRegEx = null, PasswordPolicySummary = null, IsNew = false, IsDirty = false }); result.Add(new GORoleDataObject() { Name = "Administrator", DisplayName = "Administrator", PasswordExpiry = null, PasswordRegEx = null, PasswordPolicySummary = null, IsNew = false, IsDirty = false }); return(result); }
public override DataObjectCollection <TDataObject> GetRelatedObjects <TDataObject>(IDataObject rootObject, string relationName) { if (relationName == "UserGroupItems") { IEnumerable <GOUserGroupDataObject> relatedObjects; relatedObjects = _rootObjectDataSet.GOUserGroupObjectsDataSet.GetUserGroupItemsForUser(rootObject as GOUserDataObject); var result = new DataObjectCollection <TDataObject>(); if (relatedObjects != null) { result.NotifyChanges = false; foreach (var relatedObject in relatedObjects) { result.Add(relatedObject as TDataObject); } result.NotifyChanges = true; } result.ObjectsDataSet = this._rootObjectDataSet; return(result); } if (relationName == "UserRoleItems") { IEnumerable <GOUserRoleDataObject> relatedObjects; relatedObjects = _rootObjectDataSet.GOUserRoleObjectsDataSet.GetUserRoleItemsForUser(rootObject as GOUserDataObject); var result = new DataObjectCollection <TDataObject>(); if (relatedObjects != null) { result.NotifyChanges = false; foreach (var relatedObject in relatedObjects) { result.Add(relatedObject as TDataObject); } result.NotifyChanges = true; } result.ObjectsDataSet = this._rootObjectDataSet; return(result); } return(null); }
public DataObjectCollection<GOGroupDataObject> ExtractGOGroupItems() { if (InternalObjectIds == null) return null; var result = new DataObjectCollection<GOGroupDataObject> {ObjectsDataSet = this.ObjectsDataSet }; result.ObjectsDataSet.DirtyHandlerOn = false; result.ObjectsDataSet.NotifyChanges = false; foreach (var internalObjectId in InternalObjectIds) { var item = this.ObjectsDataSet.GetObject<GOGroupDataObject>(typeof(GOGroupDataObject), internalObjectId); result.Add(item); } result.ObjectsDataSet.DirtyHandlerOn = true; result.ObjectsDataSet.NotifyChanges = true; return result; }
protected override DataObjectCollection <UserProfileDataObject> DoGetCollection(LambdaExpression securityFilterExpression, string filterPredicate, object[] filterArguments, string orderByPredicate, int pageNumber, int pageSize, List <string> includes, IObjectsDataSet context, Dictionary <string, object> parameters) { DataObjectCollection <UserProfileDataObject> result = new DataObjectCollection <UserProfileDataObject>(); result.ObjectsDataSet = ApplicationSettings.Container.Resolve <IObjectsDataSet>(); foreach (var arg in filterArguments[0] as string[]) { var uri = arg; try { var userprofile = DoGet(new UserProfileDataObject(uri), null, null, context, parameters); result.Add(userprofile); } catch (Exception) { } } return(result); }
protected override DataObjectCollection <PlaceDataObject> DoGetCollection(LambdaExpression securityFilterExpression, string filterPredicate, object[] filterArguments, string orderByPredicate, int pageNumber, int pageSize, List <string> includes, IObjectsDataSet context, Dictionary <string, object> parameters) { SparqlRemoteEndpoint endpoint = new SparqlRemoteEndpoint(new Uri("http://dbpedia.org/sparql"), "http://dbpedia.org"); var regex = new Regex("Name\\.Contains\\(\"(.*)\"\\)"); string nameFilter = null; var match = regex.Match(filterPredicate); if (match.Success) { nameFilter = match.Groups[1].Value; } else if (filterPredicate.Contains("(@0.Contains(outerIt.URI))")) { var places = new DataObjectCollection <PlaceDataObject>(); places.ObjectsDataSet = ApplicationSettings.Container.Resolve <IObjectsDataSet>(); foreach (var arg in filterArguments[0] as string[]) { try { var uri = arg; var place = DoGet(new PlaceDataObject(uri), null, includes, context, parameters); places.Add(place); } catch (Exception) { } } return(places); } string query = @"SELECT distinct(?place), ?name, ?abstract WHERE { {?place a <http://dbpedia.org/ontology/HistoricPlace>} UNION {?place a <http://dbpedia.org/ontology/Monument>} UNION {?place a <http://dbpedia.org/ontology/Garden>} UNION {?place a <http://dbpedia.org/ontology/Cemetery>} UNION {?place a <http://dbpedia.org/ontology/ArchitecturalStructure>} UNION {?place a <http://dbpedia.org/ontology/Park>} UNION {?place a <http://dbpedia.org/ontology/NaturalPlace>} ?place rdfs:label ?name . ?place dbo:abstract ?abstract . FILTER langMatches(lang(?name), 'en') FILTER langMatches(lang(?abstract), 'en')"; if (!String.IsNullOrEmpty(nameFilter)) { query += $"FILTER regex(?name,\"{nameFilter}\",\"i\")"; } query += "}"; if (pageNumber != 0 || pageSize != 0) { query += $"LIMIT {pageSize} OFFSET {(pageNumber - 1) * pageSize}"; } //Make a SELECT query against the Endpoint SparqlResultSet results = endpoint.QueryWithResultSet(query); var toReturn = new DataObjectCollection <PlaceDataObject>(); toReturn.ObjectsDataSet = ApplicationSettings.Container.Resolve <IObjectsDataSet>(); foreach (var result in results) { var place = new PlaceDataObject(); place.URI = (result.Where(r => r.Key == "place").Single().Value as UriNode).Uri.ToString(); place.Name = (result.Where(r => r.Key == "name").Single().Value as BaseLiteralNode).Value; place.Abstract = (result.Where(r => r.Key == "abstract").Single().Value as BaseLiteralNode)?.Value; place.IsNew = false; place.IsDirty = false; toReturn.Add(place); } return(toReturn); }
protected override DataObjectCollection <VisitedPlaceDataObject> DoGetCollection(LambdaExpression securityFilterExpression, string filterPredicate, object[] filterArguments, string orderByPredicate, int pageNumber, int pageSize, List <string> includes, IObjectsDataSet context, Dictionary <string, object> parameters) { var userUri = GetUserBaseUriFromFilter(filterPredicate); if (userUri == null) { // search all the users registered in application var userNames = DataFacade.GOUserDataProvider.GetCollection(null).Select(u => u.UserName); var toReturn = new DataObjectCollection <VisitedPlaceDataObject>(); toReturn.ObjectsDataSet = ApplicationSettings.Container.Resolve <IObjectsDataSet>(); foreach (var userName in userNames) { try { var userfilter = $"UserProfileUri == \"{userName}\" && {filterPredicate}"; var subvisitedplaces = DoGetCollection(securityFilterExpression, userfilter, filterArguments, orderByPredicate, 0, 0, includes, context, parameters); foreach (var subvisitedplace in subvisitedplaces) { toReturn.Add(subvisitedplace); } } catch (Exception e) { } } return(toReturn); } string visitedPlaceDocumentName = "myvisitedplaces.ttl"; string visitedPlaceDocumentUri = $"{userUri}/public/{visitedPlaceDocumentName}"; string tempfile = null; var placeUriFilter = GetPropertyFromFilter(filterPredicate, "PlaceURI"); var countryUriFilter = GetPropertyFromFilter(filterPredicate, "CountryURI"); try { tempfile = DataProviderHelper.DownloadFile(visitedPlaceDocumentUri, ".ttl"); var g = new Graph(); g.LoadFromFile(tempfile); //UriLoader.Load(g, new Uri(visitedPlaceDocumentUri)); // NOT WORKING ... ??? SOMEHOW SHOULD WORK var query = new SparqlParameterizedString(); if (placeUriFilter == null && countryUriFilter == null) { query.CommandText = @"SELECT * WHERE { ?VisitedPlace a <http://generativeobjects.com/apps#VisitedPlace> ; <http://schema.org/startDate> ?Date; <http://schema.org/description> ?Description . OPTIONAL { ?VisitedPlace <http://generativeobjects.com/apps#VisitedPlaceType> ?PlaceOrCountry . } OPTIONAL { ?VisitedPlace <http://dbpedia.org/ontology/Place> ?PlaceURI . } OPTIONAL { ?VisitedPlace <http://dbpedia.org/class/yago/WikicatMemberStatesOfTheUnitedNations> ?CountryURI . } } "; ////<http://dbpedia.org/class/yago/WikicatMemberStatesOfTheUnitedNations> ?CountryURI ; if (pageNumber != 0 || pageSize != 0) { query.CommandText += $"LIMIT {pageSize} OFFSET {(pageNumber - 1) * pageSize}"; } } else if (placeUriFilter != null) { query.CommandText = @"SELECT * WHERE { ?VisitedPlace a <http://generativeobjects.com/apps#VisitedPlace> ; <http://dbpedia.org/ontology/Place> @PlaceUri ; <http://schema.org/startDate> ?Date; <http://schema.org/description> ?Description . OPTIONAL { ?VisitedPlace <http://generativeobjects.com/apps#VisitedPlaceType> ?PlaceOrCountry . } } "; query.SetUri("@PlaceUri", new Uri(placeUriFilter)); } else { query.CommandText = @"SELECT * WHERE { ?VisitedPlace a <http://generativeobjects.com/apps#VisitedPlace> ; <http://dbpedia.org/class/yago/WikicatMemberStatesOfTheUnitedNations> @CountryURI ; <http://schema.org/startDate> ?Date; <http://schema.org/description> ?Description . OPTIONAL { ?VisitedPlace <http://generativeobjects.com/apps#VisitedPlaceType> ?PlaceOrCountry . } } "; query.SetUri("@CountryURI", new Uri(countryUriFilter)); } var results = (SparqlResultSet)g.ExecuteQuery(query); var toReturn = new DataObjectCollection <VisitedPlaceDataObject>(); toReturn.ObjectsDataSet = ApplicationSettings.Container.Resolve <IObjectsDataSet>(); foreach (var result in results) { var visitedPlace = MapSparqlResultToVisitedPlace(result); visitedPlace.UserProfileUri = GetPropertyFromFilter(filterPredicate, "UserProfileUri"); toReturn.Add(visitedPlace); } return(toReturn); } finally { if (File.Exists(tempfile)) { File.Delete(tempfile); } } }
protected override DataObjectCollection <CountryDataObject> DoGetCollection(LambdaExpression securityFilterExpression, string filterPredicate, object[] filterArguments, string orderByPredicate, int pageNumber, int pageSize, List <string> includes, IObjectsDataSet context, Dictionary <string, object> parameters) { if (filterPredicate.Contains("(@0.Contains(outerIt.URI))")) { var countries = new DataObjectCollection <CountryDataObject>(); countries.ObjectsDataSet = ApplicationSettings.Container.Resolve <IObjectsDataSet>(); foreach (var arg in filterArguments[0] as string[]) { try { var uri = arg; var country = DoGet(new CountryDataObject(uri), null, includes, context, parameters); countries.Add(country); } catch (Exception) { } } return(countries); } SparqlRemoteEndpoint endpoint = new SparqlRemoteEndpoint(new Uri("http://dbpedia.org/sparql"), "http://dbpedia.org"); string query = @"SELECT ?country, ?countryName, ?longName, ?flag, ?populationTotal, MAX(?populationDensity) as ?density , ?abstract WHERE { ?country a <http://dbpedia.org/class/yago/WikicatMemberStatesOfTheUnitedNations> . ?country rdfs:label ?countryName . FILTER langMatches(lang(?countryName), 'en') OPTIONAL { ?country dbo:longName ?longName. ?country dbo:abstract ?abstract. ?country dbo:flag ?flag. ?country dbo:populationTotal ?populationTotal . ?country dbo:populationDensity ?populationDensity FILTER langMatches(lang(?longName), 'en') FILTER langMatches(lang(?abstract), 'en') FILTER (?longName != ""font-size:88%;""@en) } } ORDER BY ?countryName "; if (pageNumber != 0 || pageSize != 0) { query += $"LIMIT {pageSize} OFFSET {(pageNumber - 1) * pageSize}"; } //Make a SELECT query against the Endpoint SparqlResultSet results = endpoint.QueryWithResultSet(query); var toReturn = new DataObjectCollection <CountryDataObject>(); toReturn.ObjectsDataSet = ApplicationSettings.Container.Resolve <IObjectsDataSet>(); foreach (var result in results) { var country = new CountryDataObject(); country.URI = (result.Where(r => r.Key == "country").Single().Value as UriNode).Uri.ToString(); country.Name = (result.Where(r => r.Key == "countryName").Single().Value as BaseLiteralNode).Value; country.LongName = (result.Where(r => r.Key == "longName").Single().Value as BaseLiteralNode)?.Value; country.Abstract = (result.Where(r => r.Key == "abstract").Single().Value as BaseLiteralNode)?.Value; country.IsNew = false; country.IsDirty = false; toReturn.Add(country); } return(toReturn); }