public static MobileCenterApi.AppRequest ToAppRequest(this AppClass app)
 {
     return(new MobileCenterApi.AppRequest
     {
         Description = app.Description?.Trim(),
         DisplayName = app.DisplayName?.Trim(),
         Name = app.Name?.Trim(),
         Os = app.Os?.Trim(),
         Platform = app.Platform?.Trim(),
     });
 }
        public override async Task OnRefresh()
        {
            var currentId = Settings.CurrentAppId;

            if (string.IsNullOrWhiteSpace(currentId))
            {
                return;
            }
            CurrentApp = Database.Main.GetObject <AppClass>(currentId);
            SetGroupInfo();
            await SyncManager.Shared.SyncDistributionGroups(CurrentApp);
        }
        async void SetCurrentApp()
        {
            var currentId = Settings.CurrentAppId;

            if (string.IsNullOrWhiteSpace(currentId))
            {
                await NavigationService.PushModalAsync(new AppListViewModel());
            }
            if (String.IsNullOrWhiteSpace(currentId) || CurrentApp?.Id == currentId)
            {
                return;
            }
            CurrentApp = Database.Main.GetObject <AppClass>(currentId);
        }
Exemplo n.º 4
0
        async Task syncCrashGroups(AppClass app)
        {
            var response = await Api.Crash.List4(app.Owner.Name, app.Name);

            var crashes = new List <CrashGroup>();
            var stacks  = new List <ReasonStackFrame>();

            foreach (var r in response)
            {
                var crash = r.ToCrashGroup(app);
                crashes.Add(crash);
                if (r.ReasonFrame != null)
                {
                    stacks.Add(r.ReasonFrame.ToReasonStackFrame(crash));
                }
            }
            Database.Main.InsertOrReplaceAll(crashes);
            Database.Main.InsertOrReplaceAll(stacks);
        }
Exemplo n.º 5
0
        public async Task <bool> deleteApp(AppClass app)
        {
            try
            {
                await Api.Account.Delete4(app.Name, app.Owner.Name);

                Database.Main.Delete(app);
                NotificationManager.Shared.ProcAppsChanged();
                return(true);
            }
            catch (Exception ex)
            {
                if (ex.Data.Contains("HttpContent"))
                {
                    Debug.WriteLine(ex.Data["HttpContent"]);
                }
                else
                {
                    Debug.WriteLine(ex);
                }
            }
            return(false);
        }
Exemplo n.º 6
0
        public async Task <bool> CreateApp(AppClass app)
        {
            try
            {
                var resp = await Api.Account.Create3(app.ToAppRequest());

                var newApp = resp.ToAppClass();
                var owner  = resp.Owner.ToAppOwner();
                Database.Main.InsertOrReplace(newApp);
                Database.Main.InsertOrReplace(owner);
                NotificationManager.Shared.ProcAppsChanged();
                return(true);
            }
            catch (Exception ex)
            {
                if (ex.Data.Contains("HttpContent"))
                {
                    Debug.WriteLine(ex.Data["HttpContent"]);
                }
                Debug.WriteLine(ex);
            }
            return(false);
        }
Exemplo n.º 7
0
 public Task SyncCrashGroups(AppClass app)
 {
     return(RunSingularTask(() => syncCrashGroups(app), app.Id));
 }
Exemplo n.º 8
0
 public Task <bool> CreateDistributionGroup(AppClass app, string name)
 {
     return(RunSingularTask(() => createDistributionGroup(app, name), name));
 }
Exemplo n.º 9
0
 public Task SyncDistributionGroups(AppClass app)
 {
     return(RunSingularTask(() => syncDistributionGroups(app), app.Id));
 }
Exemplo n.º 10
0
 public Task SyncReleases(AppClass app)
 {
     return(RunSingularTask(() => syncReleases(app), app.Id));
 }
Exemplo n.º 11
0
        async Task syncRepoConfig(AppClass app)
        {
            var configs = await Api.Build.List2(app.Owner.Name, app.Name, true).ConfigureAwait(false);

            Database.Main.InsertOrReplaceAll(configs.Select(x => x.ToRepoConfig(app.Id)));
        }
Exemplo n.º 12
0
 public Task SyncRepoConfig(AppClass app)
 {
     return(RunSingularTask(() => syncRepoConfig(app), app.Id));
 }
Exemplo n.º 13
0
 public Task SyncBranch(AppClass app)
 {
     return(RunSingularTask(() => syncBranch(app), app.Id));
 }
 public static Release ToRelease(this MobileCenterApi.Models.ReleaseDetails releaseDetails, AppClass app)
 {
     return(new Release
     {
         AppIconUrl = releaseDetails.AppIconUrl,
         AppId = app.Id,
         AppName = releaseDetails.AppName,
         DownloadUrl = releaseDetails.DownloadUrl,
         Fingerprint = releaseDetails.Fingerprint,
         Id = releaseDetails.Id,
         InstallUrl = releaseDetails.InstallUrl,
         MinOs = releaseDetails.MinOs,
         ProvisioningProfileName = releaseDetails.ProvisioningProfileName,
         ReleaseNotes = releaseDetails.ReleaseNotes,
         ShortVersion = releaseDetails.ShortVersion,
         Size = releaseDetails.Size,
         Status = releaseDetails.Status.ToString(),
         UploadedAt = releaseDetails.UploadedAt,
         Version = releaseDetails.Version,
     });
 }
Exemplo n.º 15
0
 public Task <bool> DeleteApp(AppClass app)
 {
     return(RunSingularTask(() => deleteApp(app), app.Id));
 }
Exemplo n.º 16
0
 public static CrashGroup ToCrashGroup(this MobileCenterApi.Models.CrashGroup crash, AppClass app)
 {
     return(new CrashGroup
     {
         AppId = app.Id,
         AppVersion = crash.AppVersion,
         Build = crash.Build,
         Count = crash.Count,
         DisplayId = crash.DisplayId,
         ErrorReason = crash.CrashReason,
         Exception = crash.Exception,
         Fatal = crash.Fatal,
         FirstOccurrence = crash.FirstOccurrence,
         Id = crash.CrashGroupId,
         ImpactedUsers = crash.ImpactedUsers,
         LastOccurrence = crash.LastOccurrence,
         Status = (CrashGroupStatus)(int)crash.Status
     });
 }
Exemplo n.º 17
0
 public static DistributionGroup ToDistributionGroup(this MobileCenterApi.Models.DistributionGroupResponse request, AppClass app)
 {
     return(new DistributionGroup
     {
         AppId = app.Id,
         Name = request.Name,
         Id = request.Id,
         IndexCharacter = BaseModel.GetIndexChar(request.Name),
     });
 }
Exemplo n.º 18
0
 public static Release ToRelease(this MobileCenterApi.Models.ReleaseDetails releaseDetails, AppClass app)
 {
     return(new Release
     {
         AppIconUrl = releaseDetails.AppIconUrl,
         AppId = app.Id,
         AppName = releaseDetails.AppName,
         DownloadUrl = releaseDetails.DownloadUrl,
         Fingerprint = releaseDetails.Fingerprint,
         Id = releaseDetails.Id.ToString(),                    // TODO: Fix up if needed; was string before and is now is number; added ToString to get to compile
         InstallUrl = releaseDetails.InstallUrl,
         MinOs = releaseDetails.MinOs,
         ProvisioningProfileName = releaseDetails.ProvisioningProfileName,
         ReleaseNotes = releaseDetails.ReleaseNotes,
         ShortVersion = releaseDetails.ShortVersion,
         Size = releaseDetails.Size,
         Status = releaseDetails.Status.ToString(),
         UploadedAt = DateTime.MinValue,                 // TODO: Fix this hack & properly convert releaseDetails.UploadedAt to date time
         Version = releaseDetails.Version,
     });
 }