internal string Save(ViewRoutePointMediaObject vmedia) { string returnId = string.Empty; try { var pointObject = RealmInstance.Find <RoutePoint>(vmedia.RoutePointId); RealmInstance.Write(() => { RoutePointMediaObject mediaObject = !string.IsNullOrEmpty(vmedia.Id) ? RealmInstance.Find <RoutePointMediaObject>(vmedia.Id) : null; if (mediaObject == null) { mediaObject = new RoutePointMediaObject(); mediaObject.RoutePointMediaObjectId = vmedia.Id; mediaObject.RoutePointId = vmedia.RoutePointId; mediaObject.Point = pointObject; RealmInstance.Add(mediaObject); } if (mediaObject.Version != vmedia.Version) { //нужно для того, чтобы синхронизация обнаружила отличия от сервера и проверила версии с последующей отправкой изменений на сервер var route = pointObject.MainRoute; route.ObjVerHash = string.Empty; } returnId = mediaObject.RoutePointMediaObjectId; mediaObject.OriginalServerSynced = vmedia.OriginalServerSynced; mediaObject.PreviewServerSynced = vmedia.PreviewServerSynced; mediaObject.ServerSyncedDate = vmedia.ServerSyncedDate; mediaObject.Version = vmedia.Version; mediaObject.IsDeleted = vmedia.IsDeleted; mediaObject.MediaType = (int)vmedia.MediaType; mediaObject.Processed = vmedia.Processed; mediaObject.ProcessResultText = vmedia.ProcessResultText; }); } catch (Exception e) { HandleError.Process("RoutePointMediaObjectManager", "SaveRoutePointMediaObject", e, false); } return(returnId); }
internal void DeleteObjectFromLocalStorage(ViewRoutePointMediaObject vmedia) { if (vmedia != null) { try { RoutePointMediaObject media = !string.IsNullOrEmpty(vmedia.Id) ? RealmInstance.Find <RoutePointMediaObject>(vmedia.Id) : null; if (media != null) { RealmInstance.Write(() => { RealmInstance.Remove(media); }); } } catch (Exception e) { HandleError.Process("RoutePointMediaObjectManager", "DeleteObjectFromLocalStorage", e, false); } } }