public IList <T> Complete <T>() { var queryResult = _currentQueryResults.CreateSnapshot(); foreach (BlittableJsonReaderObject include in queryResult.Includes) { var newDocumentInfo = DocumentInfo.GetNewDocumentInfo(include); _session.includedDocumentsByKey[newDocumentInfo.Id] = newDocumentInfo; } var usedTransformer = string.IsNullOrEmpty(_indexQuery.Transformer) == false; var list = new List <T>(); foreach (BlittableJsonReaderObject document in queryResult.Results) { if (usedTransformer) { BlittableJsonReaderArray values; if (document.TryGet("$values", out values) == false) { throw new InvalidOperationException("Transformed document must have a $values property"); } list.AddRange(TransformerHelpers.ParseValuesFromBlittableArray <T>(_session, values)); continue; } BlittableJsonReaderObject metadata; string id; if (document.TryGet(Constants.Metadata.Key, out metadata) == false) { throw new InvalidOperationException("Document must have a metadata"); } if (metadata.TryGet(Constants.Metadata.Id, out id) == false) { throw new InvalidOperationException("Document must have an id"); } list.Add(_session.TrackEntity <T>(id, document, metadata, _disableEntitiesTracking)); } if (_disableEntitiesTracking == false) { _session.RegisterMissingIncludes(queryResult.Results, _includes); } if (_transformResults == null) { return(list); } return(_transformResults(_indexQuery, list.Cast <object>()).Cast <T>().ToList()); }
public T[] GetTransformedDocuments <T>(GetDocumentResult result) { if (result == null) { return(null); } if (typeof(T).IsArray) { return(TransformerHelpers.ParseResultsArray <T>(_session, result)); } var items = TransformerHelpers.ParseResults <T>(_session, result).ToArray(); return(items); }
public void TransformToFPlaces_WhenCorrectVenues_ShouldReturnListOfFPlaces() { List <Venue> venues = new List <Venue>(); venues.Add(new Venue { id = "1" }); venues.Add(new Venue { id = "2" }); venues.Add(new Venue { id = "3" }); List <FPlace> places = TransformerHelpers.TransformToFPlaces(venues, null); Assert.IsNotNull(places); Assert.IsTrue(places.Count > 0); }
public void TransformToFUser_WhenCorrectUser_ShouldReturnTransformedFUser() { User user = new User { id = "1", firstName = "Jimmy", lastName = "McNulty", photo = new Icon { prefix = "a.b/", suffix = "/c" }, homeCity = "Baltimore", friends = new FourSquareEntityGroups <User>() }; FUser fUser = TransformerHelpers.TransformToFUser(user); Assert.IsNotNull(fUser); Assert.IsTrue(fUser.Name == "Jimmy McNulty"); Assert.AreEqual(fUser.FriendsCount, 0); }
public void TransformToFPlaces_WhenCheckinsProvided_ShouldReturnListOfFPlacesWithFriendsNames() { List <Venue> venues = new List <Venue>(); var venue = new Venue { id = "1" }; venues.Add(venue); venue = new Venue { id = "2" }; venues.Add(venue); venue = new Venue { id = "3" }; venues.Add(venue); List <Checkin> checkins = new List <Checkin>(); checkins.Add(new Checkin { venue = venue, user = new User { firstName = "John", lastName = "Luther" } }); List <FPlace> places = TransformerHelpers.TransformToFPlaces(venues, checkins); Assert.IsNotNull(places); Assert.IsTrue(places.Count > 0); FPlace place = places.Find(p => p.Id == "3"); Assert.IsNotNull(place); Assert.IsTrue(place.FriendsHere.Contains("John Luther")); }
public T[] GetTransformedDocuments <T>(GetDocumentResult result) { if (result == null) { return(null); } if (typeof(T).IsArray) { return(TransformerHelpers.ParseResultsArray <T>(_session, result)); } var items = TransformerHelpers.ParseResults <T>(_session, result).ToArray(); if (items.Length > _ids.Length) { throw new InvalidOperationException(String.Format("A load was attempted with transformer {0}, and more than one item was returned per entity - please use {1}[] as the projection type instead of {1}", _transformer, typeof(T).Name)); } return(items); }
public void TransformToFUser_WhenUserIsNull_ShouldThrowArgumentNullException() { TransformerHelpers.TransformToFUser(null); }
public void TransformToFPlaces_WhenEmptyVenues_ShouldReturnEmptyListOfFPlaces() { List <FPlace> places = TransformerHelpers.TransformToFPlaces(new List <Venue>(), null); Assert.IsTrue(places.Count == 0); }
public void TransformToFPlaces_WhenVenuesNull_ShouldThrowArgumentNullException() { TransformerHelpers.TransformToFPlaces(null, null); }