예제 #1
0
        private async void refreshListRoutesCommandAsync()
        {
            NoRoutesWarningIsVisible = !Routes?.Any() ?? false;
            IsRefreshing             = true;
            RoutesApiRequest api = new RoutesApiRequest(_currentUserToken);
            await api.GetPrivateRoutes(maxPageSize, 0, maxPageSize).ContinueWith(requestResult =>
            {
                if (api.LastHttpStatusCode == HttpStatusCode.OK)
                {
                    _serverRoutes = requestResult.Result;
                    _routeManager.MergeRoutes(_currentUserId, _serverRoutes);
                }
                Routes = getViewStateRoute(_routeManager.GetRoutes(_currentUserId), _serverRoutes, api.LastHttpStatusCode == HttpStatusCode.OK);
            }).ContinueWith(async(result) =>
            {
                IsRefreshing = false;
                if (Routes.Count > 0)
                {
                    var routeWithoutImg = Routes.Where(r => !string.IsNullOrEmpty(r.ImgFilename) && !fileExist(r.ImgFilename)).Select(r => r.RouteId);
                    await api.DownloadRoutesCovers(routeWithoutImg).ContinueWith((resultDownloadCovers) =>
                    {
                        CountRoutesCreatedMe     = _routeManager.GetCountRoutesByCreator(_currentUserId);
                        CountRoutesPublishedMe   = _routeManager.GetCountPublishedRoutesByCreator(_currentUserId);
                        NoRoutesWarningIsVisible = !Routes.Any();
                    });
                }

                CountRoutesCreatedMe     = _routeManager.GetCountRoutesByCreator(_currentUserId);
                CountRoutesPublishedMe   = _routeManager.GetCountPublishedRoutesByCreator(_currentUserId);
                NoRoutesWarningIsVisible = !Routes.Any();
            });
        }
예제 #2
0
        public async Task <bool> SyncRouteIsNeedAsync(string routeId)
        {
            bool isNeed = false;

            TokenStoreService token     = new TokenStoreService();
            string            authToken = await token.GetAuthTokenAsync();

            if (!string.IsNullOrEmpty(authToken))
            {
                RoutesApiRequest api   = new RoutesApiRequest(_apiUrl, authToken);
                var routeServerVersion = await api.GetRouteVersion(routeId);

                if (routeServerVersion != null && api.LastHttpStatusCode == HttpStatusCode.OK)
                {
                    RouteManager routeManager = new RouteManager();
                    var          routeLocal   = routeManager.GetRouteById(routeId);
                    if (routeLocal != null)
                    {
                        isNeed = !routeLocal.ObjVerHash.Equals(routeServerVersion.ObjVerHash);
                    }
                    else
                    {
                        isNeed = true;
                    }
                }
                else
                {
                    isNeed = true;
                }
            }

            return(isNeed);
        }
        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));
                }
            }
        }
예제 #4
0
 public SyncRoutes(string authToken)
 {
     _authToken                 = authToken;
     _routesApi                 = new RoutesApiRequest(_apiUrl, _authToken);
     _routePointsApi            = new RoutePointsApiRequest(_apiUrl, _authToken);
     _routePointMediaObjectsApi = new RoutePointMediaObjectRequest(_apiUrl, _authToken);
     _log = App.Container.Resolve <ITextfileLogger>();
 }
        private static async Task SendRequest(string routeId)
        {
            TokenStoreService tokenService = new TokenStoreService();
            string            _authToken   = await tokenService.GetAuthTokenAsync();

            if (!string.IsNullOrEmpty(_authToken))
            {
                var routesApi = new RoutesApiRequest(_apiUrl, _authToken);
                await routesApi.AddUserViewAsync(routeId);
            }
        }
예제 #6
0
        private async void updateUrlCommandAsync()
        {
            TokenStoreService token      = new TokenStoreService();
            string            _authToken = await token.GetAuthTokenAsync();

            _routesApi = new RoutesApiRequest(_apiUrl, _authToken);
            var shortLinkRouteId = await _routesApi.GetShortLinkId(_routeId);

            if (!string.IsNullOrEmpty(shortLinkRouteId))
            {
                MakeLinkIsVisible   = false;
                UrlPresentationText = $"{_goshUrl}/routetimeline/{_routeId}";
                CaptionText         = _accessByLink;
            }
            else
            {
                MakeLinkIsVisible   = true;
                UrlPresentationText = "";
                CaptionText         = _makeLink;
            }
        }
예제 #7
0
        private async Task makeLink()
        {
            TokenStoreService token      = new TokenStoreService();
            string            _authToken = await token.GetAuthTokenAsync();

            _routesApi = new RoutesApiRequest(_apiUrl, _authToken);
            var makeResult = await _routesApi.CreateShortLinkIdAsync(_routeId);

            if (makeResult)
            {
                updateUrlCommandAsync();
                MessagingCenter.Send <UIToastMessage>(new UIToastMessage()
                {
                    Delay = 3, Message = CommonResource.MakeRouteLink_PublicReferenceCreated
                }, string.Empty);
            }
            else
            {
                MessagingCenter.Send <UIToastMessage>(new UIToastMessage()
                {
                    Delay = 3, Message = CommonResource.MakeRouteLink_ErrorWhileCreatedReference
                }, string.Empty);
            }
        }