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 async Task <int> doServerSync(KindName kindName, string projectId, DatastoreService datastore) { var offset = 0; var skip = 500; var lastDateForKind = getMostRecentDate(kindName); bool hasData; do { var cloudEntities = await GetCloudEntities1(datastore, projectId, kindName, new Offset(offset), new ResultsLimit(skip), lastDateForKind ); hasData = cloudEntities.Count > 0; //we save this result addToProcessingQueue(cloudEntities); offset += skip; } while (hasData); return(0); }
protected override void doPreCreate(Bundle savedInstanceState) { IsFirstPage = true; _kindName = new KindName(Constants.KIND_LSP_MAIN); myView = Resource.Layout.ilsp_main1; myNavController = new lspMainControl(); }
protected override void doPreCreate(Bundle savedInstanceState) { IsFirstPage = true; _kindName = new KindName(Constants.KIND_VMMC_POSTOP); myView = Resource.Layout.vmmc_postop1; myNavController = new VmmcPostOperationControl(); }
protected override void doPreCreate(Bundle savedInstanceState) { IsFirstPage = true; _kindName = new KindName(Constants.KIND_VMMC_REGANDPROCEDURE); myView = Resource.Layout.vmmc_regandproc1; myNavController = new VmmcRegAndProcControl(); }
protected override void doPreCreate(Bundle savedInstanceState) { IsFirstPage = true; _kindName = new KindName(Constants.KIND_PPX_CLIENTEVAL); myView = Resource.Layout.prepexreg1; myNavController = new PP_ClientEvalControl(); }
protected override void doPreCreate(Bundle savedInstanceState) { IsFirstPage = true; _kindName = new KindName(Constants.KIND_PPX_DEVICEREMOVAL); myView = Resource.Layout.prepexdevremoval1; myNavController = new PP_DeviceRemovalControl(); }
public TableStore(string tableName) : base(tableName) { _tableName = new KindName(tableName); _db = new LocalDB(); createKindSql = "create table if not exists {0}(id nvarchar(32) primary key, datablob nvarchar(500));"; insertSql = "insert or replace into {0}(id, datablob) values (@id, @datablob)"; }
protected override void doPreCreate(Bundle savedInstanceState) { _kindName = new KindName(Constants.KIND_PPX_UNSCHEDULEDVISIT); myView = Resource.Layout.prepexunscheduled2; myNavController = new PP_UnscheduledVisitControl() { }; }
public async Task <bool> addToProcessingQueue(KindName kindName, List <CloudEntity> cloudEntities) { var kindStore = new CloudLocalStore(kindName); foreach (var entity in cloudEntities) { kindStore.Update(entity); } return(true); }
private long getLastSyncedDateForKind(KindName kindName) { var db = new CloudLocalStore(kindName); var entity = db.GetLatestEntity(); if (entity == null || string.IsNullOrWhiteSpace(entity.Id)) { return(new DateTime(2016, 07, 08, 0, 0, 0, 1, DateTimeKind.Local).ToBinary()); } return(entity.EditDate); }
public GeneralEntityDataset asGeneralEntity(KindName name) { return(new GeneralEntityDataset() { Id = this.Id, EntityId = this.EntityId, KindMetaData = this.KindMetaData, FormName = name.Value, FieldValues = ToValuesList() }); }
protected Type[] getActivitiesForKind(KindName kindName, List <BaseWorkflowController> workflowControllers) { var kindDefinitions = getKindDefinition(workflowControllers); var kindDefinition = kindDefinitions.Where(t => t.Matches(kindName)).FirstOrDefault(); if (kindDefinition == null) { return(null); } return(kindDefinition.KindViews.Select(t => t.ViewActivity).ToArray()); }
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; }
public RunQueryRequest getQueryRequest(DateTime dateAdded, KindName kindName = null) { var kindExpression = kindName == null ? new List <KindExpression>() : new List <KindExpression> { new KindExpression() { Name = kindName.Value } }; return(new RunQueryRequest() { Query = new Query() { Limit = 10, Offset = 0, Filter = new Google.Apis.Datastore.v1.Data.Filter() { PropertyFilter = new PropertyFilter() { Property = new PropertyReference() { Name = DATEADDED }, Value = new Value() { TimestampValue = dateAdded }, Op = ">=" } }, Order = new List <PropertyOrder>() { new PropertyOrder() { Direction = "asc", Property = new PropertyReference() { Name = DATEADDED } } }, Kind = kindExpression }, //GqlQuery = new GqlQuery() { QueryString = "select __key__, cardserial From jhpsystems" } ReadOptions = new ReadOptions() { } }); }
public CloudLocalStore(KindName tableName) : base(tableName.Value) { createKindSql = "if object_id('{0}') is null create table {0}(recordid int identity(1,1), id nvarchar(32) primary key, entityid nvarchar(32), kindmetadata nvarchar(1000), editday int, editdate bigint, datablob nvarchar(max));"; insertSql = @" begin tran update {0} with (serializable) set entityid=@entityid,kindmetadata=@kindmetadata,editday=@editday, editdate=@editdate,datablob =@datablob where id = @id if @@rowcount = 0 begin insert into {0} (id,entityid,kindmetadata,editday,editdate,datablob)values(@id,@entityid,@kindmetadata,@editday,@editdate,@datablob); end commit tran; select recordid from {0} where id = @id; "; //fix above to include editday and editdate }
public KindName GetKindName(uint i) { if (i >= nNames) { throw new ArgumentOutOfRangeException(); } // find the offset uint offset = m_offsetGlyphInfo + (uint)FieldOffsets.unicodes + (uint)n16BitUnicodes*2 + 2; for (int j=0; j<i; j++) { KindName knTemp = new KindName(offset, m_bufTable); offset += knTemp.GetLength(); } return new KindName(offset, m_bufTable); }
public async Task <int> fetchRecordsForKind(KindName kindName, string projectId, DatastoreService datastore) { var skip = 50; var lastDateForKind = getLastSyncedDateForKind(kindName); var cloudEntities = await new FetchCloudDataWorker(datastore, projectId, kindName, new ResultsLimit(skip), lastDateForKind, this.FetchOldData) .beginFetchCloudData(); if (cloudEntities.Count > 0) { var savedToLocal = await addToProcessingQueue(kindName, cloudEntities); } return(0); }
public KindName GetKindName(uint i) { if (i >= nNames) { throw new ArgumentOutOfRangeException(); } // find the offset uint offset = m_offsetGlyphInfo + (uint)FieldOffsets.unicodes + (uint)n16BitUnicodes * 2 + 2; for (int j = 0; j < i; j++) { KindName knTemp = new KindName(offset, m_bufTable); offset += knTemp.GetLength(); } return(new KindName(offset, m_bufTable)); }
public static void RebuildClientSummaryIndexes <T, U>(KindName name) where T : class, ILocalDbEntity, new() where U : ClientLookupProvider <T>, new() { var db = new LocalDB3().DB; db.DeleteAll <T>(); db.DropTable <T>(); db.CreateTable <T>(); var vmmcReg = new TableStore(name.Value).GetAllBlobs(); var allSummaries = new List <T>(); foreach (var reg in vmmcReg) { var entity = Newtonsoft.Json.JsonConvert.DeserializeObject <GeneralEntityDataset>(reg.Value); var mySummary = new T().Load(entity) as T; allSummaries.Add(mySummary); } new U().InsertOrReplace(allSummaries); }
internal List <T> GetUnsyncedLocalEntities(KindName cloudTable, KindName localTable) { var diffSql = string.Format( @" select a.* From {0} a join ( select id, editdate from {0} except select id, editdate from {1} )b on a.Id = b.id ", cloudTable.Value, localTable.Value); var toReturn = new List <T>(); using (var conn = new SqlConnection(_db.ConnectionString)) using (var command = new SqlCommand(string.Format(insertSql, _tableName.Value), conn)) { try { conn.Open(); command.CommandText = diffSql; using (var reader = command.ExecuteReader()) { toReturn = getEntities(reader); } } catch (SqlException ex) { if (MainLogger != null) { MainLogger.Log(string.Format( "Error opening database connection{0}{1}", Environment.NewLine, ex.ToString())); } return(null); } conn.Close(); } return(toReturn); }
protected override void doPreCreate(Bundle savedInstanceState) { _kindName = new KindName(Constants.KIND_PPX_CLIENTEVAL); myView = Resource.Layout.DataEntryEnd; myNavController = new PP_ClientEvalControl(); }
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() { } }); }
internal KindKey Save(KindKey entityId, KindName entityKind, KindItem dataToSave) { //we save to both kindregister and entity table return(new TableStore(entityKind).Update(entityId, dataToSave)); }
/// <summary> /// Creates new instance of a Kind store, which allows Get, Put, Delete and Update /// </summary> /// <param name="tableName">Kind name</param> public TableStore(KindName tableName) { _tableName = tableName; _db = new LocalDB(); }
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() { } }); }
protected override void doPreCreate(Bundle savedInstanceState) { _kindName = new KindName(Constants.KIND_PPX_POSTREMOVAL); myView = Resource.Layout.prepexpostremoval2; myNavController = new PP_PostRemovalControl(); }
protected override void doPreCreate(Bundle savedInstanceState) { _kindName = new KindName(Constants.KIND_PPX_DEVICEREMOVAL); myView = Resource.Layout.DataEntryEnd; myNavController = new PP_DeviceRemovalControl(); }
public List <KindItem> GetAllBlobs(KindName entityKind) { return(new TableStore(entityKind).GetAllBlobs()); }
//select __key__,kindmetadata From appusers //select __key__, kindmetadata From `vmmc_regandproc` where dateadded //select __key__, dateadded From `appusers` where dateadded >= datetime('2016-08-01T00:00:01Z') //select * from appusers where dateadded > datetime('2016-08-16T00:00:00.1Z') //select __key__, dateadded From `appusers` where dateadded >=datetime('2016-08-16T00:00:00.01Z') limit 50 offset 0 order by dateadded asc //https://console.cloud.google.com/datastore/entities/query/gql?project=jhpzmb-vmmc-odk&ns=&kind=_GAE_MR_TaskPayload&gql=select%20* //Key(`__Stat_Total__`, 'total_entity_usage') //https://console.cloud.google.com/datastore/entities/edit?key=0%2F%7C19%2Fpp_client_devicerem%7C37%2Fname:5643a2ae27144cdaa1fe0d0e43b3864b&project=jhpzmb-vmmc-odk&ns=&kind=_GAE_MR_TaskPayload&gql=select%20* //https://console.cloud.google.com/datastore/entities/query/gql?project=jhpzmb-vmmc-odk&ns=&kind=_GAE_MR_TaskPayload&gql=select%20*%20from%20appusers //https://console.cloud.google.com/datastore/entities/edit?key=0%2F%7C8%2Fappusers%7C37%2Fname:524d91cffb024c7085148004cc47854c&project=jhpzmb-vmmc-odk&ns=&kind=_GAE_MR_TaskPayload&gql=select%20*%20from%20appusers //https://console.cloud.google.com/datastore/entities/query/gql?project=jhpzmb-vmmc-odk&ns=&kind=_AE_Backup_Information&gql=select%20*%20from%20appusers%20order%20by%20dateadded%20asc%20limit%20500%20offset%200%20where%20dateadded%20%3E%3D%20datetime(%272016-08-16T00:00:00.01Z%27) public DateTime getMostRecentDate(KindName kindName) { return(DateTime.MinValue); }
public TableStore(string tableName) { _tableName = new KindName(tableName); _db = new LocalDB(); }