internal static void ResetData()
 {
     release = null;
     releaseId = 0;
     ifRefresh = true;
     pivotItemSelectedIndex = -1;
     envPickerCBSelectedIndex = -1;
     approvalsList = new List<Approval>();
 }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            if (e == null) return;
            Utility.SetStatusBarColor("#56218b", "#ffffff", 1);

            //KeyValuePair<string, string> kvp = (KeyValuePair<string, string>)e.Parameter;

            ////releaseDefinition = kvp.Key;

            string rId =e.Parameter as string;



            if (!String.IsNullOrWhiteSpace(rId))
            {
                Int32.TryParse(rId, out releaseId);
                //headerTB.Text = r.Name;
            }

            headerTB.Text = "RELEASE DETAILS";

            if (release == null || !release.Id.Equals(rId))
            {
                ifRefresh = true;
                release = null;
            }

            if (pivotItemSelectedIndex > -1)
            {
                ReleaseP.SelectedIndex = pivotItemSelectedIndex;
            }

            LoadDataAndSetPI();
        }
        private string getReleaseUrlFor(Release release)
        {
            string releaseUrl = "INVALID_URL_REQUEST";
            if (release != null)
            {
                if (!String.IsNullOrWhiteSpace(release.Url))
                {
                    releaseUrl = release.Url;
                }
                else
                {
                    releaseUrl = VSTSService.getReleaseServiceUrl() + "/DefaultCollection/" + ProjectContext.GetProjectContext().Project + "/_apis/release/releases/" + release.Id;
                }
            }

            return releaseUrl;
        }
        private Dictionary<ItemDetails, List<TimelineRecord>> getEnvToTasks(Release release)
        {
            Dictionary<ItemDetails, List<TimelineRecord>> envToTasksDict = new Dictionary<ItemDetails, List<TimelineRecord>>();

            List<Release.REnvironment> envs = release.Environments;

            if (envs != null && envs.Count > 0)
            {
                foreach (var env in envs)
                {
                    ItemDetails id = new ItemDetails(env.Id, env.Name);

                    //TimelineRecord

                    Release.DeployStep deploySteps = env.DeploySteps;

                    if (deploySteps != null && deploySteps.Tasks != null)
                    {
                        //foreach Task
                    }
                }
            }

            return envToTasksDict;
        }
 private void refreshABB_Click(object sender, RoutedEventArgs e)
 {
     ifRefresh = true;
     release = null;
     LoadDataAndSetPI();
 }
 private void ShowSummaryData()
 {
     if (release == null || ifRefresh)
     {
         ReleaseP.Visibility = Visibility.Collapsed;
         ShowProgressBar();
         Task.Factory.StartNew(() =>
         {
             release = VSTSService.GetARelease(releaseId);
         }).ContinueWith(async (Task t) =>
         {
             await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
             {
                 summarySP.DataContext = release;
                 artifactsLV.ItemsSource = release.Artifacts;
                 headerTB.Text = release.Name;
                 HideProgressBar();
                 ReleaseP.Visibility = Visibility.Visible;
             });
         });
     }
     else
     {
         summarySP.DataContext = release;
         HideProgressBar();
         ReleaseP.Visibility = Visibility.Visible;
     }
 }
        private List<Approval> getApprovalListFromRelease(Release release)
        {
            approvalsList = new List<Approval>();

            foreach (Release.REnvironment re in release.Environments)
            {
                foreach (Approval a in re.PreDeployApprovals)
                {
                    approvalsList.Add(a);
                }
                foreach (Approval a in re.PostDeployApprovals)
                {
                    approvalsList.Add(a);
                }
            }

            return approvalsList;
        }
 private void ShowEnvironmentsData()
 {
     if (ifRefresh || release == null)
     {
         Task.Factory.StartNew(() =>
         {
             release = VSTSService.GetARelease(releaseId);
         }).ContinueWith(async (Task t) =>
         {
             await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
             {
                 environmentsLV.ItemsSource = release.Environments;
                 ifRefresh = false;
             });
         });
     }
     else
     {
         environmentsLV.ItemsSource = release.Environments;
     }
 }
 private void ShowLogsData()
 {
     ShowProgressBar();
     if (ifRefresh || release == null)
     {
         Task.Factory.StartNew(() =>
         {
             release = VSTSService.GetARelease(releaseId);
         }).ContinueWith(async (Task t) =>
         {
             await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
             {
                 envPickerCB.ItemsSource = release.Environments;
                 envPickerCB.SelectedIndex = 0;
                 HideProgressBar();
             });
         });
     }
     else
     {
         ShowProgressBar();
         envPickerCB.ItemsSource = release.Environments;
         HideProgressBar();
     }
 }
 private void ShowApprovalsData()
 {
     if (ifRefresh || release == null || approvalsList == null || approvalsList.Count < 1)
     {
         ShowProgressBar();
         Task.Factory.StartNew(() =>
         {
             if (release == null)
             {
                 release = VSTSService.GetARelease(releaseId);
             }
             approvalsList = getApprovalListFromRelease(release);
         }).ContinueWith(async (Task t) =>
         {
             await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
             {
                 approvalsLV.ItemsSource = approvalsList;
                 HideProgressBar();
             });
         });
     }
     else
     {
         ShowProgressBar();
         approvalsLV.ItemsSource = approvalsList;
         HideProgressBar();
     }
 }
        private static Release getAReleaseFromJsonValue(dynamic rB, bool shallowReference = true)
        {
            Release r = new Release
            {
                Id = rB.id,
                Name = rB.name,
                Url = rB.url,
                Status = rB.status,
                Reason = rB.reason,
                Description = rB.description
            };

            if (rB.modifiedOn != null)
                r.ModifiedOn = rB.modifiedOn;

            if (rB.createdOn != null)
                r.CreatedOn = rB.createdOn;

            if (rB.createdBy != null)
                r.CreatedBy = getIdentityFronJson(rB.createdBy);

            if (rB.modifiedBy != null)
                r.ModifiedBy = getIdentityFronJson(rB.modifiedBy);

            if (rB.releaseDefinition != null)
            {
                r.ReleaseDefinition = getAReleaseDefinitionFromJson(rB.releaseDefinition);
            }
                       
            dynamic eJson = rB.environments;
            if (eJson != null)
            {
                r.Environments = getAReleaseEnvironments(eJson, shallowReference);
            }

            if (!shallowReference)
            {
                dynamic aJson = rB.artifacts;

                if (aJson != null)
                {
                    r.Artifacts = getReleaseArtifacts(aJson);
                }
            }

            return r;
        }
        internal static List<Approval> GetApprovals(Release release)
        {

            //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_RELEASE, releaseServiceUrl, ProjectContext.GetProjectContext().Project, release.Id);

            string responseBody = GetResponseFromGetRESTUri(releaseAPIUrl);

            return getApprovalsFromResponseBody(responseBody);
        }