protected virtual void Process(SyncStatusServerObject syncStatusObject, IRealmiusObjectServer obj) { var typeName = GetEfTypeName(obj); var tags = GetTagsForObject(this, obj); if (tags.Count > 0) { syncStatusObject.Tag0 = tags[0]; } if (tags.Count > 1) { syncStatusObject.Tag1 = tags[1]; } if (tags.Count > 2) { syncStatusObject.Tag2 = tags[2]; } if (tags.Count > 3) { syncStatusObject.Tag3 = tags[3]; } syncStatusObject.FullObjectAsJson = SerializeObject(obj); syncStatusObject.LastChange = DateTime.UtcNow; syncStatusObject.Type = typeName; syncStatusObject.UpdateColumnChangeDatesSerialized(); }
private void ProcessAndAddChanges(SyncStatusServerObject syncStatusObject, IRealmiusObjectServer obj, UpdatedDataBatch updatedResult, string changes) { Process(syncStatusObject, obj); var updatedResultItem = CreateDownloadResponseItemInfo(syncStatusObject, changes); updatedResult.Items.Add(updatedResultItem); }
public override IList <string> GetTagsForObject(ChangeTrackingDbContext db, IRealmiusObjectServer obj) { if (obj is NoteRealm) { var currentNote = obj as NoteRealm; var tagsList = GetAllRolesAsInt().Where(v => v >= currentNote.UserRole).Select(x => x.ToString()).ToList(); return(tagsList); } if (obj is PhotoRealm) { //all photos are available to everyone return(new List <string>() { ((int)UserRole.Anonymous).ToString() }); } if (obj is ChatMessageRealm) { //all chat messages are available to everyone return(new List <string>() { ((int)UserRole.Anonymous).ToString() }); } return(null); }
private void AttachObject(IRealmiusObjectServer obj, SyncStatusDbContext syncStatusContext, UpdatedDataBatch updatedResult) { var typeName = GetEfTypeName(obj); var syncObj = AddOrCreateNewSyncObject(syncStatusContext, typeName, obj.MobilePrimaryKey); var current = JObject.FromObject(obj); var diff = JsonHelper.GetJsonDiff(JObject.Parse(syncObj.FullObjectAsJson ?? "{}"), current); var dateTimeNow = GetDate(); foreach (JProperty jProperty in diff.Properties()) { syncObj.ColumnChangeDates[jProperty.Name] = dateTimeNow; } ProcessAndAddChanges(syncObj, obj, updatedResult, diff.ToString()); }
public override IList <string> GetTagsForObject(ChangeTrackingDbContext db, IRealmiusObjectServer obj) { return(new[] { "all" }); }
public void AttachObject(IRealmiusObjectServer obj) { AttachObjects(new[] { obj }); }
internal virtual string SerializeObject(IRealmiusObjectServer obj) { return(JsonConvert.SerializeObject(obj, JsonSerializerSettings)); }
protected virtual IList <string> GetTagsForObject(ChangeTrackingDbContext db, IRealmiusObjectServer obj) { return(_syncConfiguration.GetTagsForObject(db, obj)); }
public override IList <string> GetTagsForObject(ChangeTrackingDbContext db, IRealmiusObjectServer obj) { var dbObj = obj as DbSyncObject; if (dbObj == null) { return new[] { "none" } } ; return((dbObj.Tags ?? "").Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); }