예제 #1
0
        async void btnRegistrar_Clicked(object sender, EventArgs e)
        {
            UserServiceClient client = new UserServiceClient();

            try
            {
                Loading(true);
                UserInsertRequest request = new UserInsertRequest
                {
                    id           = txtCedula.Text,
                    direccion    = txtDireccion.Text,
                    eTag         = txtNombre.Text,
                    nombre       = txtNombre.Text,
                    partitionKey = txtCedula.Text,
                    rowKey       = txtNombre.Text,
                    telefono     = txtTelefono.Text,
                    timestamp    = DateTime.Now
                };

                await client.InsertUser(request);
                await DisplayAlert("Correcto", "Usuario registrado Correctamente", "OK");

                Loading(false);
                await Navigation.PushAsync(new MovementRegister(request));
            }
            catch (Exception ex)
            {
                await DisplayAlert("Incorrecto", ex.Message, "OK");
            }
        }
예제 #2
0
        public int Insert(UserInsertRequest model)
        {
            int    id             = 0;
            string hashedPassword = BCrypt.BCryptHelper.HashPassword(model.Password, BCrypt.BCryptHelper.GenerateSalt(12));

            _dataProvider.ExecuteNonQuery(
                "dbo.Users_Insert",
                inputParamMapper : delegate(SqlParameterCollection paramCol)
            {
                SqlParameter param = new SqlParameter
                {
                    ParameterName = "@Id",
                    SqlDbType     = SqlDbType.Int,
                    Direction     = ParameterDirection.Output
                };

                paramCol.Add(param);
                paramCol.AddWithValue("@Email", model.Email);
                paramCol.AddWithValue("@Password", hashedPassword);
                paramCol.AddWithValue("@IsConfirmed", model.IsConfirmed);
            },
                returnParameters : delegate(SqlParameterCollection paramCol)
            {
                id = (int)paramCol["@Id"].Value;
            });
            return(id);
        }
        private async void btnSignUp_Click(object sender, EventArgs e)
        {
            if (ValidateChildren())
            {
                try
                {
                    var request = new UserInsertRequest
                    {
                        FirstName            = Convert.ToString(txtFirstName.Text),
                        LastName             = Convert.ToString(txtLastName.Text),
                        Email                = Convert.ToString(txtEmail.Text),
                        Username             = Convert.ToString(txtUsername.Text),
                        PhoneNumber          = Convert.ToString(txtPhone.Text),
                        Password             = Convert.ToString(txtPassword.Text),
                        PasswordConfirmation = Convert.ToString(txtPasswordConfirm.Text),
                        Image                = ImageHelper.SystemDrawingToByteArray(Resources.profile_picture),
                        Roles                = new List <int> {
                            1
                        }
                    };
                    await _service.SignUp(request);

                    PanelHelper.SwapPanels(this.Parent, this, new ucSignUp());
                }
                catch
                {
                    MessageBox.Show("Error");
                }
            }
        }
예제 #4
0
        //public UserViewModel Insert(UserInsertRequest request)
        //{
        //    if (request.Password == request.ConfirmPassword)
        //    {
        //        var newKorisnik = _mapper.Map<Model.Models.User>(request);

        //        newKorisnik.PasswordSalt = GenerateSalt();
        //        newKorisnik.PasswordHash = GenerateHash(newKorisnik.PasswordSalt, request.Password);

        //        _context.Users.Add(newKorisnik);
        //        _context.SaveChanges();

        //        return _mapper.Map<UserViewModel>(newKorisnik);
        //    }
        //    throw new UserException("The passwords do not match.");
        //}

        public UserViewModel Update(int id, UserInsertRequest request)
        {
            var   user    = _context.Users.Include(x => x.City.Country).FirstOrDefault(x => x.UserId == id);
            Image dbImage = null;

            _mapper.Map(request, user);
            user.PasswordSalt = GenerateSalt();
            user.PasswordHash = GenerateHash(user.PasswordSalt, request.Password);

            if (!String.IsNullOrEmpty(request.Image))
            {
                dbImage = AddImageToDb(request.Image, id);
            }

            _context.SaveChanges();

            return(new UserViewModel
            {
                Address1 = user.Address1,
                City = user.City,
                Email = user.Email,
                FirstName = user.FirstName,
                LastName = user.LastName,
                UserId = user.UserId,
                PhoneNumber = user.PhoneNumber,
                Username = user.Username,
                Image = dbImage != null?Encoding.UTF8.GetString(dbImage.Img) : null
            });

            //return _mapper.Map<UserViewModel>(user);
            //TODO: Check passwords
        }
예제 #5
0
        async Task Register()
        {
            try
            {
                if (ConfirmPassword != Password)
                {
                    throw new Exception("Passwords do not match.");
                }

                var request = new UserInsertRequest()
                {
                    Email           = Email,
                    FirstName       = FirstName,
                    Password        = Password,
                    LastName        = LastName,
                    UserName        = UserName,
                    BirthDate       = BirthDate,
                    Height          = Height,
                    Info            = Info,
                    Mobile          = Mobile,
                    Weight          = Weight,
                    ConfirmPassword = ConfirmPassword
                };

                await _usersService.Post <UserDto>(request, "register");

                Application.Current.MainPage = new LoginPage();
            }
            catch
            {
                await Application.Current.MainPage.DisplayAlert("Error", "Invalid information passed", "OK");
            }
        }
예제 #6
0
        private async void btn_updateUser_Click(object sender, EventArgs e)
        {
            if (_id.HasValue && !string.IsNullOrEmpty(txtBox_Password.Text) && !string.IsNullOrEmpty(txtBox_Confirm.Text))
            {
                RoleDTO role = (await _roleService.Get <List <RoleDTO> >(null)).FirstOrDefault(_ => _.Name == "User");

                var updateRes = new UserInsertRequest
                {
                    UserName             = txtBox_UserName.Text,
                    FirstName            = txtBox_FirstName.Text,
                    LastName             = txtBox_LastName.Text,
                    Password             = txtBox_Password.Text,
                    PasswordConfirmation = txtBox_Confirm.Text,
                    Roles = new List <RoleDTO> {
                        role
                    }
                };
                var result = await _userService.Update <UserDTO>(_id.Value, updateRes);

                if (result != null)
                {
                    MessageBox.Show("User successfully changed", "Info", MessageBoxButtons.OK);
                }
                else
                {
                    MessageBox.Show("User could not be changed", "Info", MessageBoxButtons.OK);
                }
            }
        }
예제 #7
0
        async Task Update()
        {
            UserSearchRequest request = new UserSearchRequest
            {
                Username = APIService.Username
            };
            var list = await _service.GetAll <List <eDrivingSchool.Model.User> >(request);

            var id   = list[0].Id;
            var user = list[0];
            UserInsertRequest request2 = new UserInsertRequest
            {
                Username  = user.Username,
                FirstName = user.FirstName,
                LastName  = user.LastName,
                Email     = Email,
                Phone     = Phone,
                Address   = user.Address,
                Birthdate = user.Birthdate,
                JMBG      = user.JMBG,
                RoleId    = user.RoleId,
            };

            var returned_user = await _service.Update <eDrivingSchool.Model.User>(id, request2);

            Application.Current.MainPage = new YourProfilePage();
        }
예제 #8
0
        private async void btnSave_Click(object sender, EventArgs e)
        {
            if (this.ValidateChildren())
            {
                var objU = new UserInsertRequest
                {
                    Name                 = txtName.Text,
                    Surname              = txtSurname.Text,
                    DateOfBirth          = dtpDateOfBirth.Value,
                    Address              = txtAddress.Text,
                    PhoneNumber          = txtPhoneNumber.Text,
                    Password             = txtPass.Text,
                    ConfirmationPassword = txtPassC.Text,
                    Username             = txtUsername.Text
                };
                Model.User entity = null;
                if (_id.HasValue)
                {
                    entity = await _service.Update <Model.User>(_id.Value, objU);

                    MessageBox.Show("Podaci korisnika uspješno promjenjeni!");
                }
                else
                {
                    entity = await _service.Insert <Model.User>(objU);

                    MessageBox.Show("Novi korisnik uspješno dodan!");
                }
            }
        }
        async Task SignUp()
        {
            if (string.IsNullOrEmpty(_Name) || string.IsNullOrEmpty(_Surname) || string.IsNullOrEmpty(_Address) || _DateOfBirth == null || string.IsNullOrEmpty(_PhoneNumber) || string.IsNullOrEmpty(_Password) || string.IsNullOrEmpty(_ConfirmationPassword) || string.IsNullOrEmpty(_Username))
            {
                await Application.Current.MainPage.DisplayAlert("Greška!", "Potrebno je unijeti sva polja!", "Try again");

                return;
            }
            IsBusy = true;
            UserInsertRequest req = new UserInsertRequest
            {
                Name                 = _Name,
                Surname              = _Surname,
                Address              = _Address,
                DateOfBirth          = _DateOfBirth,
                PhoneNumber          = _PhoneNumber,
                Password             = _Password,
                ConfirmationPassword = _ConfirmationPassword,
                Username             = _Username
            };

            Model.User r = null;
            r = await _service.Insert <Model.User>(req);

            if (r != null)
            {
                await _messageService.ShowAsync("Kreiranje računa uspješno izvršeno, molimo logirajte se za nastavak!");
            }
        }
        private async Task SignUp()
        {
            try
            {
                var request = new UserInsertRequest()
                {
                    FirstName            = FirstName,
                    LastName             = LastName,
                    Username             = Username,
                    Email                = Email,
                    PhoneNumber          = PhoneNumber,
                    Password             = Password,
                    PasswordConfirmation = PasswordConfirmation,
                    Roles                = new List <int> {
                        2
                    }
                };

                await _service.SignUp(request);

                await Application.Current.MainPage.DisplayAlert("Success", "You have successfully signed up", "OK");

                Application.Current.MainPage = new SignInPage();
            }
            catch
            {
                await Application.Current.MainPage.DisplayAlert("Error", "An error has accured", "OK");
            }
        }
예제 #11
0
        async Task Update()
        {
            try
            {
                if (string.IsNullOrWhiteSpace(Email) || string.IsNullOrWhiteSpace(Phone))
                {
                    await Application.Current.MainPage.DisplayAlert("Error", "All fields are required !", "OK");

                    return;
                }
                UserSearchRequest request = new UserSearchRequest
                {
                    Username = APIService.Username
                };
                var list = await _service.GetAll <List <eDentalClinic.Model.User> >(request);

                var id   = list[0].UserID;
                var user = list[0];
                UserInsertRequest request2 = new UserInsertRequest
                {
                    Username       = user.Username,
                    FirstName      = user.FirstName,
                    LastName       = user.LastName,
                    Email          = Email,
                    Phone          = Phone,
                    Address        = user.Address,
                    BirthDate      = user.BirthDate.Date,
                    DentalClinicID = user.DentalClinicID,
                    CityID         = user.CityID,
                    GenderID       = user.GenderID,
                    Image          = user.Image
                };

                var returned_user = await _service.Update <eDentalClinic.Model.User>(id, request2);

                await Application.Current.MainPage.DisplayAlert("Success", "You have successfully updated your information !", "OK");

                await Application.Current.MainPage.Navigation.PushModalAsync(new LoginPage());
            }
            catch (FlurlHttpException ex)
            {
                var status = ex.Call.HttpStatus;
                var result = await ex.GetResponseStringAsync();

                if (status == System.Net.HttpStatusCode.BadRequest)
                {
                    var message = "All fields are required !";
                    await Application.Current.MainPage.DisplayAlert("Error", message, "OK");
                }
                else
                {
                    await Application.Current.MainPage.DisplayAlert("Error", ex.Message, "OK");
                }
            }
        }
예제 #12
0
 public ActionResult <User> Update(int id, [FromBody] UserInsertRequest request)
 {
     try
     {
         return(Ok(_service.Update(id, request)));
     }
     catch (Exception)
     {
         return(BadRequest());
     }
 }
예제 #13
0
 public ActionResult <User> Insert(UserInsertRequest request)
 {
     try
     {
         return(Ok(_service.Insert(request)));
     }
     catch (DbUpdateException)
     {
         return(BadRequest("Duplicate user"));
     }
 }
예제 #14
0
 public IActionResult Insert(UserInsertRequest korisnici)
 {
     try
     {
         return(Ok(_service.Insert(korisnici)));
     }
     catch (DbUpdateException) // vjerovatno je ovog tipa taj exception sto se baci kad je unique constraint violated
     {
         // uhvatis specificni exception koji se baci za constraint
         return(BadRequest("Duplicate user")); // ili neki object po potrebi
     }
 }
예제 #15
0
        private async void SubmitUser_Click(object sender, EventArgs e)
        {
            if (string.Compare(txtBox_Password.Text, txtBox_PasswordConfirmation.Text) != 0)
            {
                return;
            }
            UserInsertRequest request = null;

            using (MemoryStream stream = new MemoryStream())
            {
                if (userPicture.Image != null)
                {
                    userPicture.Image.Save(stream, ImageFormat.Png);
                }
                var roles = listBox_Role.CheckedItems.Cast <RoleDTO>().Select(_ => _.Id).ToList();
                request = new UserInsertRequest
                {
                    FirstName            = txtBox_FirstName.Text,
                    LastName             = txtBox_LastName.Text,
                    Email                = txtBox_Email.Text,
                    UserName             = txtBox_UserName.Text,
                    Phone                = txtBox_Phone.Text,
                    Password             = txtBox_Password.Text ?? null,
                    PasswordConfirmation = txtBox_PasswordConfirmation.Text,
                    Picture              = stream.ToArray(),
                    Roles                = roles
                };
            }
            UserDTO res = null;

            if (_id.HasValue)
            {
                res = await _service.Update <UserDTO>(_id.Value, request);
            }
            else
            {
                res = await _service.Insert <UserDTO>(request);
            }
            if (res != null)
            {
                if (res.Id == _id.Value)
                {
                    APIService.Username = res.UserName;
                    APIService.Password = txtBox_Password.Text;
                }
            }
            string msg = res != null ? "Successufully handled request" : "Error occured during request handling";

            MessageBox.Show(msg, "OK");
        }
예제 #16
0
        public Model.User Update(int id, UserInsertRequest request)
        {
            var entity = _context.Users.Find(id);

            if (!string.IsNullOrEmpty(request.Password))
            {
                entity.PasswordHash = GenerateHash(entity.PasswordSalt, request.Password);
            }
            _mapper.Map(request, entity);
            _context.Users.Attach(entity);
            _context.Users.Update(entity);
            _context.SaveChanges();
            return(_mapper.Map <Model.User>(entity));
        }
예제 #17
0
        public eDentalClinic.Model.User Insert(UserInsertRequest request)
        {
            if (request.Password != request.ConfirmPassword)
            {
                throw new UserException("Password and password confirm do not match!");
            }
            var entity = _mapper.Map <Database.User>(request);

            entity.PasswordSalt = HashGenerator.GenerateSalt();
            entity.PasswordHash = HashGenerator.GenerateHash(entity.PasswordSalt, request.Password);
            _context.Users.Add(entity);
            _context.SaveChanges();

            return(_mapper.Map <eDentalClinic.Model.User>(entity));
        }
예제 #18
0
        public UserViewModel Insert(UserInsertRequest request)
        {
            if (request.Password == request.ConfirmPassword)
            {
                var newKorisnik = _mapper.Map <Model.Models.User>(request);

                newKorisnik.PasswordSalt = GenerateSalt();
                newKorisnik.PasswordHash = GenerateHash(newKorisnik.PasswordSalt, request.Password);

                _context.Users.Add(newKorisnik);
                _context.SaveChanges();

                return(_mapper.Map <UserViewModel>(newKorisnik));
            }
            throw new UserException("The passwords do not match.");
        }
예제 #19
0
        public async Task <ApplicationUserDto> InsertAsync(UserInsertRequest model)
        {
            var userIdentity = _mapper.Map <ApplicationUser>(model);


            var result = await _userManager.CreateAsync(userIdentity, model.Password);

            if (result.Succeeded)
            {
                ApplicationRole role = await _unit.Roles.GetAsync(model.RoleId);

                await _userManager.AddToRoleAsync(userIdentity, role.Name);
            }

            return(_mapper.Map <ApplicationUserDto>(userIdentity));
        }
예제 #20
0
        private async void btnUsers_Click(object sender, EventArgs e)
        {
            if (this.Controls.OfType <TextBox>().Any(_ => string.IsNullOrEmpty(_.Text)))
            {
                MessageBox.Show("Fields cannot be empty", "Info", MessageBoxButtons.OK);
                return;
            }
            if ((await _userService.Get <List <UserDTO> >(null)).Any(_ => _.FirstName == txtBox_FirstName.Text && _.LastName == txtBox_LastName.Text))
            {
                MessageBox.Show("User already exists", "Info", MessageBoxButtons.OK);
                return;
            }


            RoleDTO role = (await _roleService.Get <List <RoleDTO> >(null)).FirstOrDefault(_ => _.Name == "User");



            UserInsertRequest request = new UserInsertRequest
            {
                UserName             = txtBox_UserName.Text,
                FirstName            = txtBox_FirstName.Text,
                LastName             = txtBox_LastName.Text,
                Password             = txtBox_Password.Text,
                PasswordConfirmation = txtBox_Confirm.Text,
                Roles = new List <RoleDTO> {
                    role
                }
            };

            try
            {
                UserDTO userResult = await _userService.Insert <UserDTO>(request);

                if (userResult == null)
                {
                    MessageBox.Show("Couldn't add new user", "Info", MessageBoxButtons.OK);
                }
                _id = userResult.Id;
                MessageBox.Show("Successufully added new user", "Info", MessageBoxButtons.OK);
            }catch (Exception exc)
            {
                frmLogin frm = new frmLogin();
                this.Hide();
                frm.Show();
            }
        }
예제 #21
0
        public Model.User Insert(UserInsertRequest request)
        {
            var entity = _mapper.Map <Database.User>(request);

            _context.Add(entity);

            if (request.Password != request.PasswordConfirm)
            {
                throw new Exception("Password i potvrda se ne slažu");
            }

            entity.PasswordSalt = GenerateSalt();
            entity.PasswordHash = GenerateHash(entity.PasswordSalt, request.Password);

            _context.SaveChanges();
            return(_mapper.Map <Model.User>(entity));
        }
        public UserDto Insert(UserInsertRequest request)
        {
            var entity = _mapper.Map <Models.User>(request);

            _context.Add(entity);

            if (request.Password != request.ConfirmPassword)
            {
                throw new Exception("Password and confirm password do not match");
            }

            entity.PasswordSalt = GenerateSalt();
            entity.PasswordHash = GenerateHash(entity.PasswordSalt, request.Password);
            _context.SaveChanges();

            return(_mapper.Map <UserDto>(entity));
        }
예제 #23
0
        public Model.Visitor Update(int id, UserInsertRequest request)
        {
            var entity = _context.User.Find(id);

            _context.User.Attach(entity);
            _context.User.Update(entity);

            _mapper.Map(request, entity);

            entity.PasswordSalt = GenerateSalt();
            entity.PasswordHash = GenerateHash(entity.PasswordSalt, request.Password);


            _context.SaveChanges();

            return(_mapper.Map <Model.Visitor>(entity));
        }
        private async void Button_Clicked(object sender, EventArgs e)
        {
            // await Application.Current.MainPage.DisplayAlert("You have successfully registered!", "", "OK");

            var pickResult = await FilePicker.PickAsync(new PickOptions
            {
                FileTypes   = FilePickerFileType.Images,
                PickerTitle = "Pick an image"
            });

            if (pickResult != null)
            {
                var stream = await pickResult.OpenReadAsync();

                var ms = new MemoryStream();
                stream.CopyTo(ms);
                var byteArray = ms.ToArray();
                // resultImage.Source = ImageSource.FromStream(() => stream);
                UserSearchRequest searchRequest = new UserSearchRequest {
                    Username = APIService.Username
                };
                var users = await _service.GetAll <List <User> >(searchRequest);

                var user = users[0];
                UserInsertRequest userInsertRequest = new UserInsertRequest
                {
                    Username       = user.Username,
                    FirstName      = user.FirstName,
                    LastName       = user.LastName,
                    Phone          = user.Phone,
                    Email          = user.Email,
                    Address        = user.Address,
                    BirthDate      = user.BirthDate.Date,
                    Image          = byteArray,
                    DentalClinicID = user.DentalClinicID,
                    CityID         = user.CityID,
                    GenderID       = user.GenderID
                };
                await _service.Update <User>(user.UserID, userInsertRequest);

                await Application.Current.MainPage.DisplayAlert("", "You have successfully changed your profile picture !", "OK");

                await Navigation.PushAsync(new LoginPage());
            }
        }
        public UserGetRequest Insert(UserInsertRequest obj)
        {
            if (!obj.Password.Equals(obj.PasswordConfirmation))
            {
                //todo
                //vjv custom exceptione ce trebat napravit
            }

            var entity = _mapper.Map <User>(obj);

            entity.Salt = GenerateSalt();
            entity.Hash = GenerateHash(entity.Salt, obj.Password);

            _context.User.Add(entity);
            _context.SaveChanges();

            return(_mapper.Map <UserGetRequest>(_context.User.Last()));
        }
예제 #26
0
        public eDentalClinic.Model.User Update(int id, UserInsertRequest request)
        {
            if (request.Password != request.ConfirmPassword)
            {
                throw new UserException("Password and password confirm do not match!");
            }
            var entity = _context.Users.Find(id);

            if (!string.IsNullOrEmpty(request.Password))
            {
                entity.PasswordHash = HashGenerator.GenerateHash(entity.PasswordSalt, request.Password);
            }
            _mapper.Map(request, entity);
            _context.Users.Attach(entity);
            _context.Users.Update(entity);
            _context.SaveChanges();
            return(_mapper.Map <eDentalClinic.Model.User>(entity));
        }
예제 #27
0
        /// <summary>
        /// Gets the URL.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        public async Task InsertUser(UserInsertRequest request)
        {
            var urlService = new Uri($"{ServiceUrl}/Usuario");
            var client     = new HttpClient();

            var json    = JsonConvert.SerializeObject(request);
            var content = new StringContent(json, Encoding.UTF8, "application/json");

            HttpResponseMessage response = await client.PostAsync(urlService, content);

            var responseString = string.Empty;

            if (response.IsSuccessStatusCode)
            {
                responseString = await response.Content.ReadAsStringAsync();
            }
            //return JsonConvert.DeserializeObject<ResponseBack<string>>(responseString);
        }
        private async void BtnSaveUser_Click(object sender, EventArgs e)
        {
            if (this.ValidateChildren()) //if all controls are validated
            {
                UserInsertRequest user = new UserInsertRequest
                {
                    Name        = txtboxName.Text,
                    Surname     = txtboxSurname.Text,
                    Email       = txtboxEmail.Text,
                    PhoneNumber = txtBoxPhone.Text,
                    Username    = txtboxUsername.Text,
                    UserTypeId  = 2,                                                     //todo
                    CityId      = 4                                                      //todo
                };
                if (_userId.HasValue)                                                    //if user exist (update), if not (insert)
                {
                    _ = await _userService.Update <UserGetRequest>(_userId.Value, user); //update

                    this.Close();                                                        //close current detail form

                    //find open form and close it
                    for (int i = 0; i < Application.OpenForms.Count; i++)
                    {
                        if (Application.OpenForms[i].Name == "frmUser")
                        {
                            Application.OpenForms[i].Refresh();
                            Application.DoEvents();
                        }
                    }

                    ////refresh form
                    //frmUser frm = new frmUser();
                    //frm.dgvUser.DataSource = await _userService.Get<List<UserGetRequest>>(null);
                    //frm.Show();
                }
                else
                {
                    //radimo insert
                    _ = await _userService.Insert <UserGetRequest>(user, "InsertUser");

                    this.Close();
                }
            }
        }
예제 #29
0
        public Model.DTO.UserDTO PostUser(UserInsertRequest user)
        {
            var newUser = _mapper.Map <User>(user);

            newUser.Password  = BCrypt.Net.BCrypt.HashPassword(user.Password);
            newUser.EntryDate = DateTime.Now;
            newUser.Username  =
                newUser.FirstName.Substring(0, 1).ToUpper() +
                newUser.FirstName.Substring(1, 1).ToLower() +
                newUser.LastName.Substring(0, 2).ToLower();

            _context.Users.Add(newUser);
            _context.SaveChanges();

            newUser.PersonalNo = user.RoleId * 1000 + newUser.UserId;
            _context.SaveChanges();

            return(_mapper.Map <Model.DTO.UserDTO>(newUser));
        }
        private async void btnRegister_Click(object sender, EventArgs e)
        {
            try
            {
                var request = new UserInsertRequest
                {
                    UserName        = txtUsername.Text,
                    Password        = txtPassword.Text,
                    FirstName       = txtFirstname.Text,
                    LastName        = txtLastname.Text,
                    BirthDate       = txtBirthdate.Value,
                    ConfirmPassword = txtConfirmPassword.Text,
                    Email           = txtEmail.Text,
                    Height          = float.Parse(txtHeight.Text),
                    Info            = txtInfo.Text,
                    Mobile          = txtMobile.Text,
                    Weight          = float.Parse(txtWeight.Text),
                    Permission      = chckPermission.Checked ? 1 : 0 // Trainer : User
                };

                using (Image image = Image.FromFile(avatarLocation))
                {
                    using (MemoryStream m = new MemoryStream())
                    {
                        image.Save(m, image.RawFormat);
                        byte[] imageBytes = m.ToArray();

                        string base64String = Convert.ToBase64String(imageBytes);
                        request.Image = base64String;
                    }
                }
                var user = await _usersService.Post <UserDto>(request, "register");

                MessageBox.Show("Succesfully registered");
                Close();
            }
            catch (System.Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
            }
        }