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();
        }
Ejemplo n.º 2
0
        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();
            }
        }
Ejemplo n.º 3
0
        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 { }
        }