public void Execute(object parameter)
        {
            Log.Info("Employee saved his/hers new password.");
            string oldPassword = ChangePasswordViewModel.Instance.OldPassword();
            string newPassword = ChangePasswordViewModel.Instance.NewPassword();

            string username = ClientDialogViewModel.Instance.LogInUser().Username;

            Log.Debug("proxy poziv - ChangePassword");
            bool ret = ClientProxy.Instance.ChangePassword(username, oldPassword, newPassword);

            Log.Info("Successfully changed password");

            if (ret)
            {
                ClientDialogViewModel.Instance.LogInUser().Password = newPassword;
            }

            //omogucavanje normalnog prikaza nakon promene sifre
            Log.Debug("proxy poziv - GetEmployee");
            Employee signedUser = ClientProxy.Instance.GetEmployee(username, newPassword);

            if (signedUser == null)
            {
                Log.Warn("User with that username doesn't exists");
                return;
            }

            Log.Info("Successfully returned employee");
            signedUser.PasswordUpadateDate = DateTime.Today;

            Log.Debug("proxy poziv - UpdateEmployee");
            ClientProxy.Instance.UpdateEmployee(signedUser);
            Log.Info("Successfully updated employee");
            if (signedUser.Position.ToString().Equals("PO"))
            {
                ClientDialog cd = ClientDialogViewModel.Instance.CDialog();
                cd.addEmployBtn.Visibility   = Visibility.Collapsed;
                cd.sendReqCompBtn.Visibility = Visibility.Collapsed;
                cd.sendReqProjBtn.Visibility = Visibility.Collapsed;
                cd.editPosBtn.Visibility     = Visibility.Collapsed;
                cd.showProjBtn.IsEnabled     = true;
                cd.showEmployBtn.IsEnabled   = true;
                cd.editYDBtn.IsEnabled       = true;
                cd.timeTableBtn.IsEnabled    = true;
                cd.passChngBtn.IsEnabled     = true;
                cd.createProjBtn.IsEnabled   = true;
                cd.defUSBtn.IsEnabled        = true;
                cd.showCompBtn.IsEnabled     = true;
                cd.Show();
            }
            else if (signedUser.Position.ToString().Equals("HR"))
            {
                ClientDialog cd = ClientDialogViewModel.Instance.CDialog();
                cd.showProjBtn.Visibility    = Visibility.Collapsed;
                cd.sendReqCompBtn.Visibility = Visibility.Collapsed;
                cd.sendReqProjBtn.Visibility = Visibility.Collapsed;
                cd.defUSBtn.Visibility       = Visibility.Collapsed;
                cd.createProjBtn.Visibility  = Visibility.Collapsed;
                cd.showEmployBtn.IsEnabled   = true;
                cd.addEmployBtn.IsEnabled    = true;
                cd.editYDBtn.IsEnabled       = true;
                cd.timeTableBtn.IsEnabled    = true;
                cd.passChngBtn.IsEnabled     = true;
                cd.showCompBtn.IsEnabled     = true;
                cd.editPosBtn.IsEnabled      = true;
                cd.Show();
            }
            else if (signedUser.Position.ToString().Equals("CEO"))
            {
                ClientDialog cd = ClientDialogViewModel.Instance.CDialog();
                cd.defUSBtn.Visibility      = Visibility.Collapsed;
                cd.createProjBtn.Visibility = Visibility.Collapsed;
                cd.showProjBtn.IsEnabled    = true;
                cd.showEmployBtn.IsEnabled  = true;
                cd.addEmployBtn.IsEnabled   = true;
                cd.editYDBtn.IsEnabled      = true;
                cd.timeTableBtn.IsEnabled   = true;
                cd.passChngBtn.IsEnabled    = true;
                cd.sendReqCompBtn.IsEnabled = true;
                cd.sendReqProjBtn.IsEnabled = true;
                cd.showCompBtn.IsEnabled    = true;
                cd.editPosBtn.IsEnabled     = true;
                cd.Show();
            }
            else if (signedUser.Position.ToString().Equals("SM"))
            {
                ClientDialog cd = ClientDialogViewModel.Instance.CDialog();
                cd.sendReqCompBtn.Visibility = Visibility.Collapsed;
                cd.sendReqProjBtn.Visibility = Visibility.Collapsed;
                cd.addEmployBtn.Visibility   = Visibility.Collapsed;
                cd.defUSBtn.Visibility       = Visibility.Collapsed;
                cd.createProjBtn.Visibility  = Visibility.Collapsed;
                cd.editPosBtn.Visibility     = Visibility.Collapsed;
                cd.showProjBtn.IsEnabled     = true;
                cd.showEmployBtn.IsEnabled   = true;
                cd.editYDBtn.IsEnabled       = true;
                cd.timeTableBtn.IsEnabled    = true;
                cd.passChngBtn.IsEnabled     = true;
                cd.showCompBtn.IsEnabled     = true;
                cd.Show();
            }
        }
        public void Execute(object parameter)
        {
            Log.Info("Employee started logging in.");
            string username = ClientDialogViewModel.Instance.LogInUser().Username;
            string password = ClientDialogViewModel.Instance.LogInUser().Password;

            if (username.Trim().Equals("") || username.Equals(null) ||
                password.Trim().Equals("") || password.Equals(null))
            {
                ClientDialogViewModel.Instance.ErrorMessage("Niste popunili sva polja!");
            }
            else
            {
                Log.Debug("proxy poziv - GetEmployee ");
                Employee outValue = ClientProxy.Instance.GetEmployee(username, password);
                Log.Info("successfully returned employee.");

                if (outValue != null)
                {
                    Log.Debug("proxy poziv - EmployeeLogIn ");
                    ClientProxy.Instance.EmployeeLogIn(username);
                    Log.Info("successfully logged in employee.");
                    //IContextChannel cc = ClientProxy.Instance as IContextChannel;
                    //Console.WriteLine(cc.State);
                    //cc.Faulted += Cc_Faulted;
                    //cc.Closing += Cc_Closing;
                    //cc.Closed += Cc_Closed;

                    if (outValue.Position.ToString().Equals("PO"))
                    {
                        if (outValue.PasswordUpadateDate.AddMonths(6) < DateTime.Now)
                        {
                            Application.Current.MainWindow.Hide();
                            ClientDialog cd = new ClientDialog();
                            cd.addEmployBtn.Visibility   = Visibility.Collapsed;
                            cd.sendReqCompBtn.Visibility = Visibility.Collapsed;
                            cd.sendReqProjBtn.Visibility = Visibility.Collapsed;
                            cd.editPosBtn.Visibility     = Visibility.Collapsed;
                            cd.markProjBtn.IsEnabled     = false;
                            cd.showProjBtn.IsEnabled     = false;
                            cd.showEmployBtn.IsEnabled   = false;
                            cd.editYDBtn.IsEnabled       = false;
                            cd.timeTableBtn.IsEnabled    = false;
                            cd.passChngBtn.IsEnabled     = true;
                            cd.createProjBtn.IsEnabled   = false;
                            cd.defUSBtn.IsEnabled        = false;
                            cd.showCompBtn.IsEnabled     = false;
                            cd.Show();
                        }
                        else
                        {
                            //((Window)parameters[2]).Hide();
                            Application.Current.MainWindow.Hide();
                            ClientDialog cd = new ClientDialog();
                            cd.addEmployBtn.Visibility   = Visibility.Collapsed;
                            cd.sendReqCompBtn.Visibility = Visibility.Collapsed;
                            cd.sendReqProjBtn.Visibility = Visibility.Collapsed;
                            cd.editPosBtn.Visibility     = Visibility.Collapsed;
                            cd.markProjBtn.IsEnabled     = true;
                            cd.showProjBtn.IsEnabled     = true;
                            cd.showEmployBtn.IsEnabled   = true;
                            cd.editYDBtn.IsEnabled       = true;
                            cd.timeTableBtn.IsEnabled    = true;
                            cd.passChngBtn.IsEnabled     = true;
                            cd.createProjBtn.IsEnabled   = true;
                            cd.defUSBtn.IsEnabled        = true;
                            cd.showCompBtn.IsEnabled     = true;
                            cd.Show();
                        }
                    }
                    else if (outValue.Position.ToString().Equals("HR"))
                    {
                        if (outValue.PasswordUpadateDate.AddMonths(6) < DateTime.Now)
                        {
                            //((Window)parameters[2]).Hide();
                            Application.Current.MainWindow.Hide();
                            ClientDialog cd = new ClientDialog();
                            cd.showProjBtn.Visibility    = Visibility.Collapsed;
                            cd.sendReqCompBtn.Visibility = Visibility.Collapsed;
                            cd.sendReqProjBtn.Visibility = Visibility.Collapsed;
                            cd.defUSBtn.Visibility       = Visibility.Collapsed;
                            cd.createProjBtn.Visibility  = Visibility.Collapsed;
                            cd.markProjBtn.Visibility    = Visibility.Collapsed;
                            cd.showEmployBtn.IsEnabled   = false;
                            cd.addEmployBtn.IsEnabled    = false;
                            cd.editYDBtn.IsEnabled       = false;
                            cd.timeTableBtn.IsEnabled    = false;
                            cd.passChngBtn.IsEnabled     = true;
                            cd.showCompBtn.IsEnabled     = false;
                            cd.editPosBtn.IsEnabled      = false;
                            cd.Show();
                        }
                        else
                        {
                            //((Window)parameters[2]).Hide();
                            Application.Current.MainWindow.Hide();
                            ClientDialog cd = new ClientDialog();
                            cd.showProjBtn.Visibility    = Visibility.Collapsed;
                            cd.sendReqCompBtn.Visibility = Visibility.Collapsed;
                            cd.sendReqProjBtn.Visibility = Visibility.Collapsed;
                            cd.defUSBtn.Visibility       = Visibility.Collapsed;
                            cd.createProjBtn.Visibility  = Visibility.Collapsed;
                            cd.markProjBtn.Visibility    = Visibility.Collapsed;
                            cd.showEmployBtn.IsEnabled   = true;
                            cd.addEmployBtn.IsEnabled    = true;
                            cd.editYDBtn.IsEnabled       = true;
                            cd.timeTableBtn.IsEnabled    = true;
                            cd.passChngBtn.IsEnabled     = true;
                            cd.showCompBtn.IsEnabled     = true;
                            cd.editPosBtn.IsEnabled      = true;
                            cd.Show();
                        }
                    }
                    else if (outValue.Position.ToString().Equals("CEO"))
                    {
                        if (outValue.PasswordUpadateDate.AddMonths(6) < DateTime.Now)
                        {
                            //((Window)parameters[2]).Hide();
                            Application.Current.MainWindow.Hide();
                            ClientDialog cd = new ClientDialog();
                            cd.defUSBtn.Visibility      = Visibility.Collapsed;
                            cd.createProjBtn.Visibility = Visibility.Collapsed;
                            cd.markProjBtn.Visibility   = Visibility.Collapsed;
                            cd.showProjBtn.IsEnabled    = false;
                            cd.showEmployBtn.IsEnabled  = false;
                            cd.addEmployBtn.IsEnabled   = false;
                            cd.editYDBtn.IsEnabled      = false;
                            cd.timeTableBtn.IsEnabled   = false;
                            cd.passChngBtn.IsEnabled    = true;
                            cd.sendReqCompBtn.IsEnabled = false;
                            cd.sendReqProjBtn.IsEnabled = false;
                            cd.showCompBtn.IsEnabled    = false;
                            cd.editPosBtn.IsEnabled     = false;
                            cd.Show();
                        }
                        else
                        {
                            //((Window)parameters[2]).Hide();
                            Application.Current.MainWindow.Hide();
                            ClientDialog cd = new ClientDialog();
                            cd.defUSBtn.Visibility      = Visibility.Collapsed;
                            cd.createProjBtn.Visibility = Visibility.Collapsed;
                            cd.markProjBtn.Visibility   = Visibility.Collapsed;
                            cd.showProjBtn.IsEnabled    = true;
                            cd.showEmployBtn.IsEnabled  = true;
                            cd.addEmployBtn.IsEnabled   = true;
                            cd.editYDBtn.IsEnabled      = true;
                            cd.timeTableBtn.IsEnabled   = true;
                            cd.passChngBtn.IsEnabled    = true;
                            cd.sendReqCompBtn.IsEnabled = true;
                            cd.sendReqProjBtn.IsEnabled = true;
                            cd.showCompBtn.IsEnabled    = true;
                            cd.editPosBtn.IsEnabled     = true;
                            cd.Show();
                        }
                    }
                    else if (outValue.Position.ToString().Equals("SM"))
                    {
                        if (outValue.PasswordUpadateDate.AddMonths(6) < DateTime.Now)
                        {
                            //((Window)parameters[2]).Hide();
                            Application.Current.MainWindow.Hide();
                            ClientDialog cd = new ClientDialog();
                            cd.sendReqCompBtn.Visibility = Visibility.Collapsed;
                            cd.sendReqProjBtn.Visibility = Visibility.Collapsed;
                            cd.addEmployBtn.Visibility   = Visibility.Collapsed;
                            cd.defUSBtn.Visibility       = Visibility.Collapsed;
                            cd.createProjBtn.Visibility  = Visibility.Collapsed;
                            cd.editPosBtn.Visibility     = Visibility.Collapsed;
                            cd.markProjBtn.Visibility    = Visibility.Collapsed;
                            cd.showProjBtn.IsEnabled     = false;
                            cd.showEmployBtn.IsEnabled   = false;
                            cd.editYDBtn.IsEnabled       = false;
                            cd.timeTableBtn.IsEnabled    = false;
                            cd.passChngBtn.IsEnabled     = true;
                            cd.showCompBtn.IsEnabled     = false;
                            cd.Show();
                        }
                        else
                        {
                            //((Window)parameters[2]).Hide();
                            Application.Current.MainWindow.Hide();
                            ClientDialog cd = new ClientDialog();
                            cd.sendReqCompBtn.Visibility = Visibility.Collapsed;
                            cd.sendReqProjBtn.Visibility = Visibility.Collapsed;
                            cd.addEmployBtn.Visibility   = Visibility.Collapsed;
                            cd.defUSBtn.Visibility       = Visibility.Collapsed;
                            cd.createProjBtn.Visibility  = Visibility.Collapsed;
                            cd.editPosBtn.Visibility     = Visibility.Collapsed;
                            cd.markProjBtn.Visibility    = Visibility.Collapsed;
                            cd.showProjBtn.IsEnabled     = true;
                            cd.showEmployBtn.IsEnabled   = true;
                            cd.editYDBtn.IsEnabled       = true;
                            cd.timeTableBtn.IsEnabled    = true;
                            cd.passChngBtn.IsEnabled     = true;
                            cd.showCompBtn.IsEnabled     = true;
                            cd.Show();
                        }
                    }
                    else
                    {
                        Log.Error("Uneli ste nevalidne podatke. Pokušajte ponovo!");
                    }
                }
                else
                {
                    ClientDialogViewModel.Instance.ErrorMessage("Uneli ste nevalidne podatke. Pokušajte ponovo!");
                    Log.Error(ClientDialogViewModel.Instance.LogInUser().Username.ToString());
                }
            }
        }