private async void startShowAlbumCommand(object obj) { if (!string.IsNullOrEmpty(_currentViewPoi?.ByRouteId)) { var routesApi = new RoutesApiRequest(DefaultUrls.ApiUrl, await _tokenService.GetAuthTokenAsync()); var routeRoot = await routesApi.GetRouteRoot(_currentViewPoi?.ByRouteId); if ((routesApi.GetLastHttpStatusCode() == HttpStatusCode.OK) && (!string.IsNullOrEmpty(routeRoot.Route.Id))) { var vRoute = new ViewRoute(_currentViewPoi.ByRouteId); if (!string.IsNullOrEmpty(routeRoot.Route.Id)) { //Может быть неопубликованный маршрут, все-таки покажем его vRoute.FillFromWSModel(routeRoot, string.Empty); } if (!string.IsNullOrEmpty(routeRoot.Route.ImgFilename)) { bool resultDownloadCover = await routesApi.DownloadCoverImage(_currentViewPoi?.ByRouteId, routeRoot.Route.ImgFilename); } else { vRoute.ImgFilename = _currentPoiImage; } await Navigation.PushModalAsync(new RouteCoverPage(vRoute, true)); } } }
public async Task <bool> Sync(string routeId, bool loadOnlyPreview) { if (string.IsNullOrEmpty(routeId)) { Analytics.TrackEvent("Sync by routeId error"); return(false); } bool result = true; int mainIndex = 3;//количество этапов int currentIndex = 0; sendProgress(routeId, ++currentIndex, mainIndex); var notify = DependencyService.Get <INotificationService>(); var serverRoutesVersionsFull = await _routesApi.GetRoutesVersions(false); sendProgress(routeId, ++currentIndex, mainIndex); var serverRouteVersion = serverRoutesVersionsFull?.Where(r => r.Id.Equals(routeId)).FirstOrDefault(); AuthRequired = (_routesApi.GetLastHttpStatusCode() == HttpStatusCode.Forbidden || _routesApi.GetLastHttpStatusCode() == HttpStatusCode.Unauthorized); if (!AuthRequired) { var localRoute = _routeManager.GetRouteById(routeId); sendProgress(routeId, ++currentIndex, mainIndex); if ((localRoute == null) || (serverRouteVersion != null && !serverRouteVersion.ObjVerHash.Equals(localRoute.ObjVerHash))) { SyncRoute syncRouteContext = new SyncRoute(serverRouteVersion?.Id, _authToken); //syncRouteContext.SyncImages = true; _log.AddStringEvent($"start sync diff route {serverRouteVersion?.Id}"); result = await syncRouteContext.SyncAsync(serverRouteVersion?.ObjVerHash, loadOnlyPreview); _log.AddStringEvent($"diff route result, {serverRouteVersion?.Id} :" + result); } else if (serverRouteVersion == null) { SyncRoute syncRouteContext = new SyncRoute(localRoute.RouteId, _authToken); //syncRouteContext.SyncImages = true; _log.AddStringEvent($"start sync diff route {localRoute.RouteId}"); result = await syncRouteContext.SyncAsync(localRoute.ObjVerHash, false); _log.AddStringEvent($"diff route result, {localRoute.RouteId} :" + result); } } else { result = false; } if (result) { Xamarin.Forms.MessagingCenter.Send <SyncRouteCompleteMessage>(new SyncRouteCompleteMessage() { RouteId = routeId, SuccessSync = result }, string.Empty); } return(result); }