public async Task <List <CloudEntity> > GetCloudEntities1( DatastoreService dataStore, string projectId, KindName kindName, Offset offset, ResultsLimit skip, DateTime dateAdded) { var res = dataStore.Projects.RunQuery( getQueryRequest(dateAdded, kindName), projectId); var response = await res.ExecuteAsync(); var entityResults = response.Batch.EntityResults; var toReturn = new List <CloudEntity>(); foreach (var entityResult in response.Batch.EntityResults) { var entity = entityResult.Entity; var path = entity.Key.Path.FirstOrDefault(); var cloudEntity = new CloudEntity() { FormName = path.Kind, Id = path.Name, EntityId = entity.Properties["entityid"].StringValue, DataBlob = entity.Properties["datablob"].StringValue, KindMetaData = entity.Properties["kindmetadata"].StringValue, //EditDay = Convert.ToInt32( entity.Properties["editday"].IntegerValue), //EditDate = Convert.ToInt64(entity.Properties["editdate"].IntegerValue), //{ "editday", new Value() { IntegerValue = now.toYMDInt() } }, //{ "editdate", new Value() { IntegerValue = now.ToBinary() } }, //DateAdded = Convert.ToDateTime( // entity.Properties["dateadded"].TimestampValue) }; if (entity.Properties.ContainsKey("editdate")) { var editDate = entity.Properties["editdate"].IntegerValue; cloudEntity.EditDate = Convert.ToInt64(editDate); var editDay = entity.Properties["editday"].IntegerValue; cloudEntity.EditDay = Convert.ToInt32(editDay); } else { //use field date added var entityDate = Convert.ToDateTime( entity.Properties["dateadded"].TimestampValue); var editday = entityDate.toYMDInt(); cloudEntity.EditDay = editday; var local = entityDate.ToLocalTime(); var editdate = local.ToBinary(); cloudEntity.EditDate = editdate; } toReturn.Add(cloudEntity); } return(toReturn); }
public FetchCloudDataWorker(DatastoreService dataStore, string projectId, KindName kindName, ResultsLimit skip, long editDate, bool fetchOldData) { query = getQueryRequest1(skip, editDate, fetchOldData, kindName); res = dataStore.Projects.RunQuery(query , projectId); _dataStore = dataStore; _projectId = projectId; _kindName = kindName; _skip = skip; _editDate = editDate; _fetchOldData = fetchOldData; }
private RunQueryRequest getQueryRequest1(ResultsLimit skip, long editDate, bool fetchOldData, KindName kindName) { PropertyFilter filter = null;// dateFilter = string datePropertyName = string.Empty; if (fetchOldData) { datePropertyName = DATEADDED; filter = new PropertyFilter() { Property = new PropertyReference() { Name = DATEADDED }, Value = new Value() { TimestampValue = DateTime.FromBinary(editDate) }, Op = "GREATER_THAN" }; } else { datePropertyName = EDITDATE; filter = new PropertyFilter() { Property = new PropertyReference() { Name = EDITDATE }, Value = new Value() { IntegerValue = editDate }, //Op = "GREATER_THAN", //Op = "GREATER_THAN_OR_EQUAL", Op = "GREATER_THAN" }; } return(new RunQueryRequest() { Query = new Query() { Filter = new Filter() { PropertyFilter = filter }, Order = new List <PropertyOrder>() { new PropertyOrder() { Direction = "ASCENDING", Property = new PropertyReference() { Name = datePropertyName } } }, Kind = new List <KindExpression> { new KindExpression() { Name = kindName.Value } }, Limit = skip.Value, } , //GqlQuery = new GqlQuery() //{ // QueryString = queryString, // AllowLiterals = true, // PositionalBindings = queryParams //}, ReadOptions = new ReadOptions() { } }); }
private RunQueryRequest getQueryRequest(ResultsLimit skip, long editDate, bool fetchOldData, KindName kindName = null) { List <GqlQueryParameter> queryParams = null; var queryString = string.Empty; if (fetchOldData) { queryString = string.Format( "select * from {0} where dateadded > @1 order by dateadded ASC limit @2", kindName.Value, skip.Value ); queryParams = new List <GqlQueryParameter>() { new GqlQueryParameter() { Value = new Value() { TimestampValue = DateTime.FromBinary(editDate) } }, new GqlQueryParameter() { Value = new Value() { IntegerValue = skip.Value } } }; } else { queryString = string.Format( "select * from {0} where editdate > @1 order by editdate ASC limit @2", kindName.Value, skip.Value ); queryParams = new List <GqlQueryParameter>() { new GqlQueryParameter() { Value = new Value() { IntegerValue = editDate } }, new GqlQueryParameter() { Value = new Value() { IntegerValue = skip.Value } } }; } return(new RunQueryRequest() { GqlQuery = new GqlQuery() { QueryString = queryString, //AllowLiterals = true, PositionalBindings = queryParams, }, ReadOptions = new ReadOptions() { } }); }