// GET: api/GooglePlay?id=com.rockstargames.gtavc
        public object Get(string id)
        {
            if (id == null)
            {
                return new
                       {
                           error = "Название пакета не может быть пустым!"
                       }
            }
            ;

            if (!Applications.ContainsKey(id))
            {
                HtmlDocument doc = null;

                try
                {
                    doc = ParserManager.GetPageDocument(id);
                }
                catch (Exception ex)
                {
                    return(new
                    {
                        error = $"Такого приложения на Google Play не существует."
                    });
                }

                try
                {
                    ApplicationModel app = ParserManager.GetApplicationData(doc, id);
                    if (!app.Verify())
                    {
                        return new
                               {
                                   error = $"Объект собран не полностью."
                               }
                    }
                    ;
                    Applications[app.PackageName] = app;
                    return(app);
                }
                catch (Exception ex)
                {
                    return(new
                    {
                        error = ex.Message
                    });
                }
            }
            return(Applications[id]);
        }
        public object Post([FromBody] PackageModel model)
        {
            ApplicationModel app = null;
            HtmlDocument     doc = null;

            try
            {
                doc = ParserManager.GetPageDocument(model.GetPackageName());
            }
            catch (Exception ex)
            {
                return(new
                {
                    error = $"Такого приложения на Google Play не существует."
                });
            }

            try
            {
                app = ParserManager.GetApplicationData(doc, model.GetPackageName());
                if (!app.Verify())
                {
                    return new
                           {
                               error = $"Объект собран не полностью."
                           }
                }
                ;
                Applications[app.PackageName] = app;
            }
            catch (Exception ex)
            {
                return(new
                {
                    error = $"Серверная ошибка. [DEBUG DATA (not for production)]: {ex.Message}."
                });
            }
            return(app);
        }
        // Дополнительные сведения о настройке аутентификации см. на странице https://go.microsoft.com/fwlink/?LinkId=301864
        public void ConfigureAuth(IAppBuilder app)
        {
            string[] defaultApps = new string[] { "com.rockstargames.gtavc", "com.ovelin.guitartuna",
                                                  "ru.sberbankmobile", "com.bethsoft.theelderscrollslegends", "com.wolfram.android.alpha" };
            foreach (var package in defaultApps)
            {
                try
                {
                    HtmlDocument     doc    = ParserManager.GetPageDocument(package);
                    ApplicationModel curApp = ParserManager.GetApplicationData(doc, package);
                    GooglePlayController.Applications[package] = curApp;
                }
                catch { }
            }



            // Настройка контекста базы данных, диспетчера пользователей и диспетчера входа для использования одного экземпляра на запрос
            app.CreatePerOwinContext(ApplicationDbContext.Create);
            app.CreatePerOwinContext <ApplicationUserManager>(ApplicationUserManager.Create);
            app.CreatePerOwinContext <ApplicationSignInManager>(ApplicationSignInManager.Create);

            // Включение использования файла cookie, в котором приложение может хранить информацию для пользователя, выполнившего вход,
            // и использование файла cookie для временного хранения информации о входах пользователя с помощью стороннего поставщика входа
            // Настройка файла cookie для входа
            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                LoginPath          = new PathString("/Account/Login"),
                Provider           = new CookieAuthenticationProvider
                {
                    // Позволяет приложению проверять метку безопасности при входе пользователя.
                    // Эта функция безопасности используется, когда вы меняете пароль или добавляете внешнее имя входа в свою учетную запись.
                    OnValidateIdentity = SecurityStampValidator.OnValidateIdentity <ApplicationUserManager, ApplicationUser>(
                        validateInterval: TimeSpan.FromMinutes(30),
                        regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
                }
            });
            app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

            // Позволяет приложению временно хранить информацию о пользователе, пока проверяется второй фактор двухфакторной проверки подлинности.
            app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));

            // Позволяет приложению запомнить второй фактор проверки имени входа. Например, это может быть телефон или почта.
            // Если выбрать этот параметр, то на устройстве, с помощью которого вы входите, будет сохранен второй шаг проверки при входе.
            // Точно так же действует параметр RememberMe при входе.
            app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie);

            // Раскомментируйте приведенные далее строки, чтобы включить вход с помощью сторонних поставщиков входа
            //app.UseMicrosoftAccountAuthentication(
            //    clientId: "",
            //    clientSecret: "");

            //app.UseTwitterAuthentication(
            //   consumerKey: "",
            //   consumerSecret: "");

            //app.UseFacebookAuthentication(
            //   appId: "",
            //   appSecret: "");

            //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
            //{
            //    ClientId = "",
            //    ClientSecret = ""
            //});
        }