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);
        }
        private SyncStatusServerObject AddOrCreateNewSyncObject(SyncStatusDbContext syncStatusContext, string type, string mobilePrimaryKey)
        {
            var syncObj = syncStatusContext.SyncStatusServerObjects.Find(type, mobilePrimaryKey);

            if (syncObj == null)
            {
                syncObj = new SyncStatusServerObject(type, mobilePrimaryKey);
                syncStatusContext.SyncStatusServerObjects.Add(syncObj);
            }
            return(syncObj);
        }
        private DownloadResponseItemInfo CreateDownloadResponseItemInfo(SyncStatusServerObject syncObj, string changes)
        {
            var downloadResponseItem = new DownloadResponseItem()
            {
                Type             = syncObj.Type,
                IsDeleted        = syncObj.IsDeleted,
                MobilePrimaryKey = syncObj.MobilePrimaryKey,
                SerializedObject = changes,
            };

            return(new DownloadResponseItemInfo()
            {
                DownloadResponseItem = downloadResponseItem,
                Tag0 = syncObj.Tag0,
                Tag1 = syncObj.Tag1,
                Tag2 = syncObj.Tag2,
                Tag3 = syncObj.Tag3,
            });
        }