public static IObservable<Application> RegisterApplication(string apkPath, UploadProgressListener listener)
 {
     return RegisterApplicationTask(apkPath, listener)
         .ToObservable()
         .SubscribeOn(TaskPoolScheduler.Default)
         .InterpretingErrors();
 }
 /// <summary>
 /// Invoca al servicio de registro de una aplicación, uploadea el apk de la aplicación
 /// con sus debidos callbacks del progreso
 /// </summary>
 /// <param name="apkPath"></param>
 /// <param name="listener"></param>
 private static Task<Application> RegisterApplicationTask(string apkPath, UploadProgressListener listener)
 {
     User user = SessionManager.Instance.CurrentLoggedUser;
     var uploader = new MultipartUploader(Settings.Properties.SGAM.Default.BaseApiURL,
         "applications", apkPath);
     uploader.Headers.Add("X-Api-Token", user.AuthenticationToken);
     uploader.Headers.Add("X-Api-Username", user.Username);
     uploader.UploadProgressChanged += listener.OnUploadProgressChanged;
     return uploader.UploadAsync<Application>();
 }