internal static void ResetData()
 {
     releaseDefinition = null;
     ifRefresh = true;
     approvalsList = null;
     releasesList = null;
 }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            Utility.SetStatusBarColor("#6A1B9A", "#ffffff", 1);
            ReleaseDefinition rdReceived = e.Parameter as ReleaseDefinition;
            
            defTB.Text = rdReceived.Name;

            if(releaseDefinition == null || rdReceived.Id != releaseDefinition.Id)
            {
                ifRefresh = true;
                releaseDefinition = rdReceived;
            }
            GetAndSetPItems();
        }
        private void GetRDDetailsAndSetUI(string releaseDefinitionId)
        {
            ShowProgressBar();

            Task.Factory.StartNew(() =>
            {
                releaseDefinition = VSTSService.GetAReleaseDefinition(releaseDefinitionId);
            }).ContinueWith((async (Task t) =>
            {
                await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
                {
                    definitionTB.Text = releaseDefinition.Name;
                    GetArtifactsVersions();
                    HideProgressBar();
                });
            }));           
        }
 private void ShowReleases()
 {
     if (releasesList == null || releasesList.Count < 1 || ifRefresh)
     {
         ShowProgressBar();
         Task.Factory.StartNew(() =>
         {
             if (releaseDefinition != null && releaseDefinition.Artifacts != null)
             {
                 releaseDefinition = VSTSService.GetAReleaseDefinition(releaseDefinition.Id);
             }
             releasesList = VSTSService.GetReleases(releaseDefinition);
         }).ContinueWith(async (Task t) =>
         {
             await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
             {
                 releasesLV.ItemsSource = releasesList;
                 HideProgressBar();
             });
         });
     }
     else
     {
         releasesLV.ItemsSource = releasesList;
         HideProgressBar();
     }
 }
 private void ShowRDDetails()
 {
     ShowProgressBar();
     detailsSP.Visibility = Visibility.Collapsed;
     Task.Factory.StartNew(() =>
     {
         if (releaseDefinition == null || releaseDefinition.Artifacts == null)
         {
             releaseDefinition = VSTSService.GetAReleaseDefinition(releaseDefinition.Id);
         }
     }).ContinueWith(async (Task t) =>
     {
         await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
         {
             detailsPI.DataContext = releaseDefinition;
             HideProgressBar();
             detailsSP.Visibility = Visibility.Visible;
         });
     });
 }
        private string getPostBodyForGettingArtifactVersions(ReleaseDefinition.RDArtifact a)
        {
            // "{{\"id\":{0},\"type\":\"{1}\",\"alias\":\"{2}\",\"definitionReference\":{\"definition\":{\"id\":\"{3}\",\"name\":\"{4}\"},\"project\":{\"id\":\"{5}\",\"name\":\"{5}\"}}}}";
            string artifactPostBody = String.Format(Constants.API_POST_BODY_CREATE_A_RELEASE_SINGLE_ARTIFACT, a.Id, a.Type, a.Alias, a.DefinitionReference.Definition.Id, 
                a.DefinitionReference.Definition.Name,a.DefinitionReference.Project.Id,a.DefinitionReference.Project.Name);

            return artifactPostBody;
        }
        internal static List<Release> GetReleases(ReleaseDefinition rd)
        {
            //int numDays = -1 * SettingsContext.GetSettingsContext().NumDaysToShowData;


            string releaseServiceUrl = getReleaseServiceUrl();

            string releaseAPIUrl = String.Format(Constants.API_GET_RELEASES_FOR_RD, releaseServiceUrl, ProjectContext.GetProjectContext().Project, rd.Id);

            string responseBody = GetResponseFromGetRESTUri(releaseAPIUrl);
            return getReleasesListFromResponseBody(responseBody);
        }
        private static ReleaseDefinition getAReleaseDefinitionFromJson(dynamic rdb, bool shallowReference = true)
        {
            ReleaseDefinition rd = new ReleaseDefinition
            {
                Id = rdb.id,
                Name = rdb.name,
                Url = rdb.url,
                ReleaseNameFormat = rdb.releaseNameFormat
            };

            if(rdb.createdBy != null)
            {
                rd.CreatedBy = getIdentityFronJson(rdb.createdBy);
            }

            if(shallowReference == false)
            {
                if(rdb.artifacts != null)
                {
                    rd.Artifacts = getArtifactsFromRDJson(rdb.artifacts);
                }

                if(rdb.environments != null)
                {
                    rd.Environments = getEnvironmentsFromRDJson(rdb.environments);
                }
            }

            return rd;
        }
        internal static List<Approval> GetApprovals(ReleaseDefinition rd)
        {

            //buildAPIUrl = String.Format(Constants.API_BUILDS_QUEUED, LoginContext.GetLoginContext().VsoAccountUrl, ProjectContext.GetProjectContext().Project);
            //int numDays = -1 * SettingsContext.GetSettingsContext().NumDaysToShowData;

            string releaseServiceUrl = getReleaseServiceUrl();

            string releaseAPIUrl = String.Format(Constants.API_GET_APPROVALS_FOR_RD, releaseServiceUrl, ProjectContext.GetProjectContext().Project);

            string responseBody = GetResponseFromGetRESTUri(releaseAPIUrl);

            return getApprovalsFromResponseBody(responseBody);
        }