private void PublishButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                JobOfferApi jobOfferApi = new JobOfferApi();

                JobOffer jobOffer = new JobOffer(job: JobTextBox.Text, description: DescriptionTextBox.Text, jobCategory: (JobCategory)JobCategoryCombobox.SelectedItem, media: imagesList);
                jobOfferApi.AddJobOffer(jobOffer);
                CustomMessageBox.ShowOK("La oferta de trabajo ha sido publicada con éxito.", "Publicación exitosa", "Aceptar");
                BackIcon_Clicked(new object(), new RoutedEventArgs());
            }
            catch (ApiException ex)
            {
                if (ex.ErrorCode == 400)
                {
                }
                //CustomMessageBox.ShowOK("Ya existe un usuario con el correo " + EmailTextBox.Text, "Usuario existente", "Aceptar");
            }
        }
        private async void GetJobOffers(int page)
        {
            ProgressBar.Visibility  = Visibility.Visible;
            ScrollViewer.Visibility = Visibility.Collapsed;

            JobOfferApi jobOfferApi = new JobOfferApi();

            try
            {
                var jobOffersList = await jobOfferApi.GetJobOffersAsync(page);

                jobOffersCollection = new ObservableCollection <JobOffer>();
                if (jobOffersList != null)
                {
                    foreach (JobOffer jobOffer in jobOffersList)
                    {
                        if (jobOffer != null)
                        {
                            jobOffersCollection.Add(jobOffer);
                        }
                    }
                }
                JobOffersList.ItemsSource = jobOffersCollection;
                DataContext = jobOffersCollection;

                ValidateButtons();
                ScrollViewer.Visibility = Visibility.Visible;
                ScrollViewer.ScrollToTop();
                ProgressBar.Visibility = Visibility.Collapsed;
            }
            catch (ApiException ex)
            {
                if (ex.ErrorCode.Equals(404))
                {
                    CustomMessageBox.Show("No hay más ofertas que mostrar");
                    ProgressBar.Visibility = Visibility.Collapsed;
                    ValidateButtons();
                }
            }
        }
        private async void GetApplicants()
        {
            ProgressBar.Visibility  = Visibility.Visible;
            ScrollViewer.Visibility = Visibility.Collapsed;

            JobOfferApi jobOfferApi = new JobOfferApi();

            try
            {
                var aplicationsList = await jobOfferApi.GetJobOffersAplicationsAsync(Configuration.Default.Username, jobOfferId);

                applicantsCollection = new ObservableCollection <Aplication>();
                if (aplicationsList != null)
                {
                    foreach (Aplication aplicant in aplicationsList)
                    {
                        if (aplicant != null)
                        {
                            applicantsCollection.Add(aplicant);
                        }
                    }
                }
                ApplicantsList.ItemsSource = applicantsCollection;
                DataContext = applicantsCollection;

                ScrollViewer.Visibility = Visibility.Visible;
                ScrollViewer.ScrollToTop();
                ProgressBar.Visibility = Visibility.Collapsed;
            }
            catch (ApiException ex)
            {
                if (ex.ErrorCode.Equals(404))
                {
                    CustomMessageBox.Show("No hay aplicantes que mostrar");
                    ProgressBar.Visibility = Visibility.Collapsed;
                }
            }
        }
        private void ButtonApply_Click(object sender, RoutedEventArgs e)
        {
            var item     = (sender as FrameworkElement).DataContext;
            int index    = JobOffersList.Items.IndexOf(item);
            var jobOffer = jobOffersCollection[index];

            try
            {
                JobOfferApi aplicationsApi = new JobOfferApi();
                aplicationsApi.AddAplicationToJobOffer(jobOffer.Username, jobOffer.JobOfferId);
                CustomMessageBox.Show("Se ha registrado tu aplicación en la oferta de trabajo");
            }
            catch (ApiException ex)
            {
                if (ex.ErrorCode.Equals(406))
                {
                    CustomMessageBox.Show("Esta oferta de trabajo es tuya");
                }
                if (ex.ErrorCode.Equals(409))
                {
                    CustomMessageBox.Show("Ya has aplicado en esta oferta de trabajo");
                }
            }
        }