Esempio n. 1
0
        private string FormatIosInstallationUrl(Model.AppData appData)
        {
            if (appData.IsDirectlyInstallable)
            {
                System.Web.HttpRequest request = null;
                try
                {
                    request = System.Web.HttpContext.Current.Request;
                }
                catch
                {
                }

                // must be a secure connection and an iOS device to do a local installation
                if (request == null || !request.IsSecureConnection || string.IsNullOrEmpty(request.UserAgent) || !System.Text.RegularExpressions.Regex.IsMatch(request.UserAgent, @"(?:iPhone|iPad|iPod)", System.Text.RegularExpressions.RegexOptions.IgnoreCase))
                {
                    return(null);
                }

                StringBuilder url = new StringBuilder();
                url.Append("itms-services://?action=download-manifest&url=");

                url.Append(PublicApi.Url.Absolute(PublicApi.Url.BuildUrl("ipa-installation")));
                url.Append("/__key/");
                url.Append(PublicApi.Url.EncodePathComponent(appData.File.FileStoreKey));
                if (!string.IsNullOrEmpty(appData.File.Path))
                {
                    url.Append("/");
                    url.Append(PublicApi.Url.EncodePathComponent(appData.File.Path));
                }
                url.Append("/");
                url.Append(PublicApi.Url.EncodeFileComponent(appData.File.FileName));
                url.Append("/install.plist");

                return(url.ToString());
            }
            else
            {
                StringBuilder url = new StringBuilder();
                url.Append("http://appstore.com/");

                string appName = appData.Name;
                appName.Replace("&", "and");
                appName = appName.Normalize(NormalizationForm.FormKD);
                appName = appName.ToLowerInvariant();
                appName = System.Text.RegularExpressions.Regex.Replace(appName, "[^a-z0-9]", "");

                url.Append(appName);

                return(url.ToString());
            }
        }
 internal MobileApplication(Model.AppData appData, Services.IAppDataService appDataService)
     : base()
 {
     _appData        = appData;
     _appDataService = appDataService;
 }