public override async void OnNavigatedTo(NavigationParameters parameters) { base.OnNavigatedTo(parameters); try { var user = await CacheAccess.GetSecure <User>(CacheKeys.USER_KEY); invitePoints = await _userAppService.GetUserInvitePointsForChallenge(user.UsuarioId.ToString()); registerPoints = await _clientsAppService.GetUserClientPointsForChallenge(user.UsuarioId.ToString()); salesPoints = await _salesAppService.GetUserSalePointsForChallenge(user.UsuarioId.ToString()); } catch { await NavigationService.GoBackAsync(); UserDialogs.Instance.Toast("Não foi possivel carregar os desafios, verifique sua conexão."); } if (parameters.ContainsKey(NavigationKeyParameters.CurrentChallenges)) { foreach (var challenge in ((List <Challenge>)parameters[NavigationKeyParameters.CurrentChallenges])) { Challenges.Add(challenge); challenge.StartDateFormatted = Formatter.FormatDate(challenge.StartDate); challenge.EndDateFormatted = Formatter.FormatDate(challenge.EndDate); challenge.ParameterFormatted = Formatter.FormatChallengeType((ChallengeType)challenge.Parameter); challenge.CurrentSituation = GetCurrentSituationMissingPoints((ChallengeType)challenge.Parameter, challenge.Goal); challenge.PrizeFormatted = challenge.Prize.ToString(); } } await NavigationHelper.PopLoading(); }
private async void ExecuteLogin() { try { CanExecuteInitial(); await NavigationHelper.ShowLoading(); var response = await _userAppService.Login(new LoginRequest() { Email = Login, Origin = 0, Password = Password }); if (response != null && response.User != null) { await CacheAccess.InsertSecure <User>(CacheKeys.USER_KEY, response.User); await CacheAccess.InsertSecure <Guid>(CacheKeys.ACCESS_TOKEN, response.Token); Settings.AccessToken = response.Token.ToString(); Settings.UserId = response.User.UsuarioId.ToString(); await _navigationService.NavigateAsync(NavigationSettings.MenuPrincipal); try { Analytics.TrackEvent(InsightsTypeEvents.ActionView, new Dictionary <string, string> { { InsightsPagesNames.LoginPage, InsightsActionNames.LoginSuccess } }); } catch { } var teste2 = await _salesAppService.GetUserSalePointsForChallenge(response.User.UsuarioId.ToString()); var teste3 = await _clientsAppService.GetUserClientPointsForChallenge(response.User.UsuarioId.ToString()); } else { TimeSpan duration = new TimeSpan(0, 0, 2); _userDialogs.Toast("Login ou senha incorretos"); throw new Exception("Ocorreu um erro, tente novamente mais tarde."); } } catch (Exception ex) { Analytics.TrackEvent(InsightsTypeEvents.ActionView, new Dictionary <string, string> { { InsightsPagesNames.LoginPage, InsightsActionNames.LoginFailed } }); UserDialogs.Instance.Toast("Não foi possível fazer o Login, verifique sua conexão"); } finally { await NavigationHelper.PopLoading(); CanExecuteEnd(); } }
private async Task CheckSaleChallengeCompleted(List <Trophy> myTrophies, string usuarioId, List <Challenge> currentChallenges, Season CurrentSeason) { try { int myRSalesPoints = 0; var user = await CacheAccess.GetSecure <User>(CacheKeys.USER_KEY); try { myRSalesPoints = await CacheAccess.Get <int>(CacheKeys.SALE_POINTS_FOR_CHALLENGE); } catch { myRSalesPoints = await _salesAppService.GetUserSalePointsForChallenge(usuarioId); await CacheAccess.Insert <int>(CacheKeys.SALE_POINTS_FOR_CHALLENGE, myRSalesPoints); } foreach (var challenge in currentChallenges) { bool _hasTrophy = false; bool _hasEnoughtPoints = false; if (challenge.Parameter == 1) { foreach (var trophy in myTrophies) { if (trophy.DesafioId.ToString() == challenge.DesafioId.ToString()) { _hasTrophy = true; break; } } _hasEnoughtPoints = (myRSalesPoints >= challenge.Goal) ? true : false; } if (!_hasTrophy && _hasEnoughtPoints) { await _trophyAppService.InsertNewTrophy(new InsertTrophyRequest { DesafioId = challenge.DesafioId, EndDate = challenge.EndDate, StartDate = challenge.StartDate, Goal = challenge.Goal, Name = challenge.Name, Parameter = challenge.Parameter, TemporadaId = CurrentSeason.TemporadaId, UsuarioId = new Guid(usuarioId), Prize = challenge.Prize }); await _userAppService.UpdateUserPoints(new UpdateUserPointsRequest() { AverageItensPerSalePoints = user.AverageItensPerSalePoints, AverageTicketPoints = user.AverageTicketPoints, InviteAllyFlowersPoints = user.InviteAllyFlowersPoints, RegisterClientsPoints = user.RegisterClientsPoints, SalesNumberPoints = user.SalesNumberPoints + challenge.Prize, UsuarioId = user.UsuarioId }); await CacheAccess.InsertSecure <User>(CacheKeys.USER_KEY, user); _hasWonTrophy = true; UserDialogs.Instance.Toast("Você acabou de ganhar um Troféu de Vendas Realizadas! Parabéns!", new TimeSpan(0, 0, 4)); } } } catch { } }