Example #1
0
        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);
        }
Example #2
0
        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;
        }
Example #3
0
        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()
                {
                }
            });
        }
Example #4
0
        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()
                {
                }
            });
        }