public ZdravstvenaKnjizicaDtoEL(ZdravstvenaKnjizicaDtoEL zdravstvenaKnjizica)
 {
     Doktor      = zdravstvenaKnjizica.Doktor;
     Id          = zdravstvenaKnjizica.Id;
     DoktorId    = zdravstvenaKnjizica.DoktorId;
     LicniPodaci = new LicniPodaciDto(zdravstvenaKnjizica.LicniPodaci);
 }
        private async Task UpdateLicniPodaci()
        {
            if (ValidateInputs())
            {
                byte[] ProfilePic;
                using (var ms = new MemoryStream())
                {
                    picProfilePicture.Image.Save(ms, picProfilePicture.Image.RawFormat);
                    ProfilePic = ms.ToArray();
                }
                var upsertDto = new LicniPodaciUpsertDto
                {
                    Ime            = txtIme.Text,
                    Prezime        = txtPrezime.Text,
                    Adresa         = txtAdresa.Text,
                    JMBG           = txtJmbg.Text,
                    BrojTelefona   = txtBrojTelefona.Text,
                    EmailAddress   = txtEmail.Text,
                    GradId         = int.Parse(cmbGradovi.SelectedValue.ToString()),
                    Pol            = cmbPolovi.SelectedIndex == 1 ? 'Z' : 'M',
                    ProfilePicture = ProfilePic
                };

                _apiService.ChangeRoute(Routes.LicniPodaciRoute);
                var result = await _apiService.Update <LicniPodaciDto>(LicniPodaci.Id, upsertDto);

                if (result.Succeeded && result.HasData)
                {
                    dlgSuccess.ShowDialog();
                    LicniPodaci           = result.Data;
                    lblFirstLastName.Text = $"{LicniPodaci.Ime} {LicniPodaci.Prezime}";
                }
            }
        }
        public async void Init()
        {
            if (!Auth.IsAuthenticated(false))
            {
                if (!await Auth.AuthenticateWithPassword("fahirmdz", "testtest"))
                {
                    NotificationService.Instance.Error(AppResources.UnsuccessfullyAuthentication);
                    return;
                }
            }

            _apiService = new APIService(Routes.LicniPodaciRoute);
            LicniPodaci = Auth.Pacijent?.ZdravstvenaKnjizica?.LicniPodaci;
        }
        public void Init()
        {
            if (!Auth.IsAuthenticated())
            {
                NotificationService.Instance.Error(AppResources.UnauthenticatedAccessMessage);
                return;
            }

            LicniPodaci = Auth.Pacijent?.ZdravstvenaKnjizica?.LicniPodaci;
            if (LicniPodaci == null)
            {
                NotificationService.Instance.Error(AppResources.ErrorWhenLoadingResourceMessage);
                return;
            }

            ImePrezime    = LicniPodaci.ImePrezime ?? AppResources.NotApplicable;
            DatumRodjenja = LicniPodaci.DatumRodjenja;
            JMBG          = LicniPodaci.JMBG ?? AppResources.NotApplicable;
            Adresa        = LicniPodaci.Adresa ?? AppResources.NotApplicable;
            BrojTelefona  = LicniPodaci.BrojTelefona ?? AppResources.NotApplicable;
            EmailAdresa   = LicniPodaci.EmailAddress ?? AppResources.NotApplicable;
            Pol           = LicniPodaci.Pol.ToString();
        }
        private async void frmUserProfile_Load(object sender, System.EventArgs e)
        {
            _apiService.ChangeRoute(Routes.DrzaveRoute);
            var drzaveResult = await _apiService.Get <DrzavaDto>(new DrzavaResourceParameters { PageSize = 100 });

            if (drzaveResult.Succeeded)
            {
                var drzave = drzaveResult.Data;
                cmbDrzave.DataSource    = drzave;
                cmbDrzave.DisplayMember = nameof(DrzavaDto.Naziv);
                cmbDrzave.ValueMember   = nameof(DrzavaDto.Id);
            }

            cmbPolovi.DataSource = new List <ComboBoxItem>
            {
                new ComboBoxItem(Resources.GenderMale, 0),
                new ComboBoxItem(Resources.GenderFemale, 1)
            };

            cmbPolovi.ValueMember   = nameof(ComboBoxItem.Value);
            cmbPolovi.DisplayMember = nameof(ComboBoxItem.Text);

            int licniPodaciId = 0;

            if (Auth.Role == RoleType.Doktor)
            {
                _apiService.ChangeRoute(Routes.DoktoriRoute);

                var result = await _apiService.Get <DoktorDtoEL>(new DoktorResourceParameters
                                                                 { KorisnickiNalogId = Auth.KorisnickiNalog.Id, EagerLoaded = true });

                if (!result.Succeeded || result.Data == null)
                {
                    dlgError.ShowDialog(Resources.UnableToLoadUserProfileMessage);
                    return;
                }

                var doktor = result.Data.First();
                licniPodaciId = doktor.Radnik?.LicniPodaciId ?? 0;
            }
            else if (Auth.Role == RoleType.MedicinskiTehnicar)
            {
                _apiService.ChangeRoute(Routes.MedicinskiTehnicariRoute);

                var result = await _apiService.Get <MedicinskiTehnicarDtoLL>(new MedicinskiTehnicarResourceParameters
                                                                             { KorisnickiNalogId = Auth.KorisnickiNalog.Id });

                if (!result.Succeeded || result.Data == null)
                {
                    dlgError.ShowDialog(Resources.UnableToLoadUserProfileMessage);
                    return;
                }

                var medicinskiTehnicar = result.Data.First();
                licniPodaciId = medicinskiTehnicar.LicniPodaciId;
            }
            else if (Auth.Role == RoleType.RadnikPrijem)
            {
                _apiService.ChangeRoute(Routes.RadniciPrijemRoute);

                var result = await _apiService.Get <RadnikPrijemDtoEL>(new RadnikPrijemResourceParameters
                                                                       { KorisnickiNalogId = Auth.KorisnickiNalog.Id, EagerLoaded = true });

                if (!result.Succeeded || result.Data == null)
                {
                    dlgError.ShowDialog(Resources.UnableToLoadUserProfileMessage);
                    return;
                }

                var radnikPrijem = result.Data.First();
                licniPodaciId = radnikPrijem.LicniPodaciId;
            }

            if (licniPodaciId == 0)
            {
                dlgError.ShowDialog(Resources.UnableToLoadPersonalData);
                return;
            }

            _apiService.ChangeRoute(Routes.LicniPodaciRoute);

            var licniPodaciResult = await _apiService.GetById <LicniPodaciDto>(licniPodaciId, eagerLoaded : true);

            if (!licniPodaciResult.Succeeded && !licniPodaciResult.HasData)
            {
                dlgError.ShowDialog(Resources.UnableToLoadUserProfileMessage);
                return;
            }

            LicniPodaci = licniPodaciResult.Data;
            await LoadGradovi(LicniPodaci.Grad.DrzavaId);

            LoadLicniPodaciInTxt();
        }