コード例 #1
0
        public async Task <IHttpActionResult> RegisterPurchase(BuyIntentApiRequest request)
        {
            BuyIntentRequest buyIntentRequest = Mapper.Map <BuyIntentRequest>(request);

            UserResult userResult = await AppBusiness.Purchase.ConfirmBuyIntent(buyIntentRequest);

            UserApiResult response = Mapper.Map <UserApiResult>(userResult);

            return(Ok(response));
        }
コード例 #2
0
        public async Task <IHttpActionResult> Index()
        {
            UserApiResult response = Mapper.Map <UserApiResult>(await GetUser());

            if (!string.IsNullOrEmpty(AppRegistration))
            {
                await AppBusiness.User.UpdateRegistrationId(response.Email, AppRegistration, Platform);
            }

            return(Ok(response));
        }
コード例 #3
0
        public static UserApiResult FilterRepositoriesByStargazersCount(UserApiResult userApiResult, int stargazersCount)
        {
            var result = userApiResult
                         .Repositories
                         .OrderByDescending(obj => obj.StargazersCount)
                         .Take(stargazersCount)
                         .ToList();

            userApiResult.Repositories = result;

            return(userApiResult);
        }
コード例 #4
0
        public async Task <IHttpActionResult> Arm(ArmedTrapApiRequest request)
        {
            request.UserId = (await GetUser()).Id;

            ArmedTrapRequest armedTrapRequest = Mapper.Map <ArmedTrapRequest>(request);

            UserResult user = await AppBusiness.Trap.ArmTrap(armedTrapRequest);

            UserApiResult response = Mapper.Map <UserApiResult>(user);

            return(Ok(response));
        }
コード例 #5
0
        public static async Task <T> GetData <T>(string url, params object[] @params)
        {
            T result = (T)Activator.CreateInstance(typeof(T));

            try
            {
                url = string.Format(url, @params);

                var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
                httpWebRequest.ContentType = "application/json";
                httpWebRequest.Method      = "GET";

                UserApiResult user = UserApiService.GetUserLogged();

                if (user != null)
                {
                    httpWebRequest.Headers["Authorization"] = user.Token;
                }

                httpWebRequest.Headers["X-App-Platform"]     = ((int)AppStatus.Platform).ToString();
                httpWebRequest.Headers["X-App-TimeZone"]     = GetTimeZone();
                httpWebRequest.Headers["X-App-Registration"] = AppStatus.AppRegistration;
                httpWebRequest.Headers["Accept-Language"]    = AppStatus.Language;

                WebResponse httpWebResponse = await httpWebRequest.GetResponseAsync();

                var httpResponse = (HttpWebResponse)httpWebResponse;

                string responseBody = "";

                using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                {
                    responseBody = streamReader.ReadToEnd();
                }

                if (httpResponse.StatusCode == HttpStatusCode.OK)
                {
                    result = JsonConvert.DeserializeObject <T>(responseBody);
                }
            }
            catch (Exception ex)
            {
                BaseApiResult errorResult = new BaseApiResult();

                errorResult.Message = ex.Message + "|" + ex.StackTrace;
                errorResult.Error   = true;

                result = JsonConvert.DeserializeObject <T>(JsonConvert.SerializeObject(errorResult));
            }

            return(result);
        }
コード例 #6
0
        public static UserApiResult GetUserLogged()
        {
            UserApiResult user = null;

            Preference preferenceUser = PreferenceRepository.GetByKey(Preference.USER_LOGGED_JSON);

            if (preferenceUser != null)
            {
                user = JsonConvert.DeserializeObject <UserApiResult>(preferenceUser.Value);
            }

            return(user);
        }
コード例 #7
0
        public async Task <IHttpActionResult> Login(UserApiRequest request)
        {
            request.Language        = Language;
            request.Platform        = Platform;
            request.AppRegistration = AppRegistration;
            request.TimeZone        = TimeZone;

            UserRequest userRequest = Mapper.Map <UserRequest>(request);

            UserResult user = await AppBusiness.User.Login(userRequest);

            UserApiResult response = Mapper.Map <UserApiResult>(user);

            return(Ok(response));
        }
コード例 #8
0
 private void ShowHideButtons(UserApiResult user)
 {
     try
     {
         if (user.ContainsTraps())
         {
             btn_home_arm.Visibility = ViewStates.Visible;
         }
         else
         {
             btn_home_buy.Visibility = ViewStates.Visible;
         }
     }
     catch (Exception exception)
     {
         InsightsUtils.LogException(exception);
     }
 }
コード例 #9
0
        public static async Task <UserApiResult> Get()
        {
            UserApiResult result = null;

            try
            {
                result = await HttpController.GetData <UserApiResult>(ApiMethods.GetUser());

                if (ResponseValidator.Validate(result))
                {
                    SaveUserLogged(result);
                }
            }
            catch (Exception)
            {
                result = null;
            }

            return(result);
        }
コード例 #10
0
        public static async Task <UserApiResult> Login(UserApiRequest request)
        {
            UserApiResult result = null;

            try
            {
                result = await HttpController.PostData <UserApiResult>(ApiMethods.LoginUrl(), request);

                if (ResponseValidator.Validate(result))
                {
                    SaveUserLogged(result);
                }
            }
            catch (Exception)
            {
                result = null;
            }

            return(result);
        }
コード例 #11
0
        public static async Task <UserApiResult> Arm(ArmedTrapApiRequest request)
        {
            UserApiResult result = null;

            try
            {
                result = await HttpController.PostData <UserApiResult>(ApiMethods.ArmTrap(), request);

                if (ResponseValidator.Validate(result))
                {
                    UserApiService.SaveUserLogged(result);
                }
            }
            catch (Exception)
            {
                result = null;
            }

            return(result);
        }
コード例 #12
0
        public static void SaveUserLogged(UserApiResult user)
        {
            if (user != null)
            {
                UserApiResult actualUser = GetUserLogged();

                if (actualUser == null || !actualUser.ProfilePicture.Url.Equals(user.ProfilePicture.Url))
                {
                    string blobImageUrl = user.ProfilePicture != null ? user.ProfilePicture.Url : StringUtils.EMPTY;

                    user.ProfilePicture.Base64 = Functions.GetBase64ImageFromUrl(blobImageUrl);
                }
                else if (actualUser != null && actualUser.ContainsProfilePictureBase64())
                {
                    user.ProfilePicture = actualUser.ProfilePicture;
                }

                string jsonUser = JsonConvert.SerializeObject(user);

                PreferenceRepository.Save(Preference.USER_LOGGED_JSON, jsonUser);
            }
        }
コード例 #13
0
 public DisplayData(UserApiResult userApiResultFiltered)
 {
     this._userApiResultFiltered = userApiResultFiltered;
 }
コード例 #14
0
        public ActionResult Login(LoginModel model, string returnUrl, string rememberme)
        {
            ModelState.Remove("AttemptCount");
            if (model.AttemptCount <= 1)
            {
                ModelState["CaptchaInputText"].Errors.Clear();
            }
            model.AttemptCount = model.AttemptCount + 1;
            FluentValidation.IValidator <LoginModel> validator = new LoginValidator();
            var validationResults = validator.Validate(model);

            foreach (var item in validationResults.Errors)
            {
                ModelState.AddModelError(item.PropertyName, item.ErrorMessage);
            }
            if (ModelState.IsValid)
            {
                model.Username = model.Username.Trim();
                model.Password = model.Password.Trim();

                try
                {
                    UserApiResult result = _webClient.UploadData <UserApiResult>("logincloud", model);
                    int           status = result.Status;
                    switch (status)
                    {
                    case 1:
                        var customer = result.User;
                        customer.SchoolId = result.User.SchoolId;
                        _authService.SignIn(customer, rememberme != null?true:false);
                        model.IsAuthenticated = true;
                        if (customer.Role.Equals("schooladmin", StringComparison.InvariantCultureIgnoreCase))
                        {
                            return(RedirectToRoute("SchoolAdmin", new { schooluid = customer.SchoolUId }));
                        }
                        if (String.IsNullOrEmpty(returnUrl) || !Url.IsLocalUrl(returnUrl))
                        {
                            return(RedirectToRoute("HomePage"));
                        }

                        return(Redirect(returnUrl));

                    case 3:
                        ModelState.AddModelError("", Resource.PopupLogin_NoAccountError);
                        model.HasError = true;
                        break;

                    case 4:
                        ModelState.AddModelError("", Resource.PopUpLogin_wrongCredentials);
                        model.HasError = true;
                        break;

                    case 6:
                        ModelState.AddModelError("", Resource.Login_Accnotactive);
                        model.HasError = true;
                        break;

                    case 7:
                        ModelState.AddModelError("", Resource.Login_Accdisabled);
                        model.HasError = true;
                        break;

                    case 8:
                        ModelState.AddModelError("", Resource.Login_StudentsNotAllowedlogin);
                        model.HasError = true;
                        break;

                    default:
                        ModelState.AddModelError("", Resource.PopUpLogin_unknownError);
                        model.HasError = true;
                        break;
                    }
                }
                catch (WebException)
                {
                    ModelState.AddModelError("", Resource.PopUpLogin_NetError);
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", ex.Message);
                }
            }
            return(View(model));
        }