Example #1
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            bool successful = true;

            try
            {
                successful &= MainController.ChangeServer(txtmServerIP.Text, txtmServerPort.Text);
                if (gbxLokacija.Enabled)
                {
                    successful &= MainController.ChangeCurrentMensa((Mensa)cbxSettingsMenza.SelectedItem);
                }
            }
            catch (Exception ex)
            {
                MUtility.ShowException(ex);
                return;
            }
            if (!successful)
            {
                return;
            }

            this.DialogResult = DialogResult.OK;
            Close();
        }
            /// <summary>
            /// 针对OperateObject的处理
            /// </summary>
            public void OnOperateObjectHandle()
            {
                if (OperateObject == null)
                {
                    return;
                }
                switch (Operate.InputHand.HandStatus)
                {
                case MInputHandStatus.Grabing:

                    var screenDevice = MUtility.MainWorldToScreenPoint(OperateObject.GrabObject.transform.position);

                    var     screenMouse = Operate.InputHand.ScreenPoint;
                    Vector3 vpos        = MUtility.MainScreenToWorldPoint(new Vector3(screenMouse.x, screenMouse.y, screenDevice.z));

                    Vector3 position = vpos - Offset;

                    EventUpdateObject.SendListener(OperateObject.GrabObject, position, OperateObject.GrabObject.transform.rotation, HandIndex);

                    break;

                case MInputHandStatus.Idle:

                    OperateObject = null;

                    break;
                }
            }
Example #3
0
 private void KORSN_TABINIT()
 {
     if (KORSN_dgvUsers.DataSource == null)
     {
         return;
     }
     try
     {
         KORSN_dgvUsers.Columns["UserID"].HeaderText           = "ID";
         KORSN_dgvUsers.Columns["Username"].HeaderText         = "Korisnicko ime";
         KORSN_dgvUsers.Columns["FirstName"].HeaderText        = "Ime";
         KORSN_dgvUsers.Columns["LastName"].HeaderText         = "Prezime";
         KORSN_dgvUsers.Columns["Birthday"].HeaderText         = "DatumRodjenja";
         KORSN_dgvUsers.Columns["RegistrationDate"].HeaderText = "DatumRegistracije";
         KORSN_dgvUsers.Columns["PhoneNumber"].HeaderText      = "Telefon";
         KORSN_dgvUsers.Columns["AccountType"].HeaderText      = "Tip";
         KORSN_dgvUsers.Columns["ProfilePicture"].Visible      = false;
         KORSN_dgvUsers.Columns["ActiveAccount"].Visible       = false;
         KORSN_dgvUsers.Columns["Index"].HeaderText            = "Indeks";
         KORSN_dgvUsers.Columns["ValidUntil"].HeaderText       = "VaziDo";
         KORSN_dgvUsers.Columns["Faculty"].Visible             = false;
         KORSN_dgvUsers.Columns["FacultyDisplay"].HeaderText   = "Fakultet";
         KORSN_dgvUsers.Columns["BreakfastCount"].Visible      = false;
         KORSN_dgvUsers.Columns["LunchCount"].Visible          = false;
         KORSN_dgvUsers.Columns["DinnerCount"].Visible         = false;
         KORSN_dgvUsers.Columns["FullName"].Visible            = false;
         KORSN_dgvUsers.Columns["Password"].Visible            = false;
     }
     catch (Exception e)
     {
         MUtility.ShowError("Greska prilikom inicijalizacije tabele.");
     }
 }
Example #4
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (!ValidateData())
            {
                MUtility.ShowWarrning("Proverite sva polja");
                return;
            }

            user.ProfilePicture = picProfilePicture.Image;
            user.FirstName      = txtFName.Text;
            user.LastName       = txtLName.Text;
            user.Birthday       = dateTimeBirthday.Value;
            if (user.AccountType == User.UserAccountType.Student)
            {
                user.Faculty = cbxFaculty.SelectedItem as Faculty;
                user.Index   = txtIndex.Text;
            }
            user.PhoneNumber = txtPhone.Text;

            user.Username         = txtUsername.Text;
            user.Email            = txtEmail.Text;
            user.Password         = txtPassword.Text;
            user.ValidUntil       = dateTimeValid.Value;
            user.RegistrationDate = dateTimeRegistration.Value;
            user.AccountType      = (User.UserAccountType)cbxTip.SelectedItem;
            user.ActiveAccount    = cbxStanje.SelectedIndex == 0;
            DialogResult          = DialogResult.OK;
            Close();
        }
Example #5
0
        private void KORSN_btnDeleteUser_Click(object sender, EventArgs e)
        {
            if (KORSN_dgvUsers.SelectedRows.Count == 0)
            {
                MUtility.ShowWarrning("Odaberite korisnika");
                return;
            }

            User u = KORSN_dgvUsers.SelectedRows[0].DataBoundItem as User;

            DialogResult dr = MessageBox.Show(
                string.Format("Da li ste sigurni da zelite da obrisete korisnika {0}?", u.FullName),
                "Brisanje korisnika",
                MessageBoxButtons.YesNo,
                MessageBoxIcon.Question);

            if (dr != DialogResult.OK)
            {
                return;
            }


            bool ops = MainController.DeleteUser(u);

            if (ops)
            {
                KORSN_RefreshUsersGrid(true);
                MUtility.ShowInformation("Korisnik uspesno obrisan");
            }
        }
 /// <summary>
 /// 抓取设置
 /// </summary>
 /// <param name="operate">Operate.</param>
 /// <param name="handIndex">Hand index.</param>
 public void OnGrabObject(IOperateObject operate, int handIndex)
 {
     if (HandIndex != handIndex)
     {
         return;
     }
     Offset        = MUtility.GetOffsetPosition(Operate.InputHand.ScreenPoint, operate.GrabObject);
     OperateObject = operate;
 }
Example #7
0
        /// <summary>
        /// 计算适口偏移值
        /// </summary>
        /// <param name="mousePosition"></param>
        /// <param name="grabObject"></param>
        /// <returns></returns>
        private Vector3 GetOffsetPosition(Vector3 mousePosition, GameObject grabObject)
        {
            var     offset       = Vector3.zero;
            Vector3 screenDevice = MUtility.MainWorldToScreenPoint(grabObject.transform.position);
            Vector3 vPos         = MUtility.MainScreenToWorldPoint(new Vector3(mousePosition.x, mousePosition.y, screenDevice.z));

            offset = vPos - grabObject.transform.position;

            return(offset);
        }
Example #8
0
        /// <summary>
        /// 更改属性值
        /// </summary>
        /// <param name="value"></param>
        public void SetChangingValue(float value)
        {
            if (handleRect == null)
            {
                Debug.LogError("未指定当前滚动对象:handleRect属性为Null");
                return;
            }

            if (minValue == null || maxValue == null)
            {
                SetRectData();
            }

            Vector3 position = Vector3.zero;

            float moveValue = 0;

            switch (KguiAxis)
            {
            case Axis.X:
                //if (horizontal == Horizontal.RightToLeft)
                //    value = 1 - value;

                moveValue = minValue.Value + value * sumValue;

                //在将屏幕坐标转化为世界坐标

                Vector3 handleScreenX = MUtility.UIWorldToScreenPoint(handleRect.position);

                position   = MUtility.UIScreenToWorldPoint(new Vector3(moveValue, handleScreenX.y, handleScreenX.z));
                position.y = handleRect.position.y;
                position.z = handleRect.position.z;

                break;

            case Axis.Y:
                //if (vertical == Vertical.TopToBottom)
                //    value = 1 - value;

                moveValue = maxValue.Value - value * sumValue;

                Vector3 handleScreenY = MUtility.UIWorldToScreenPoint(handleRect.position);

                position   = MUtility.UIScreenToWorldPoint(new Vector3(handleScreenY.x, moveValue, handleScreenY.z));
                position.x = handleRect.position.x;
                position.z = handleRect.position.z;

                break;

            default:
                break;
            }

            handleRect.position = position;
        }
Example #9
0
        /// <summary>
        /// 移动设置
        /// </summary>
        /// <param name="operate"></param>
        /// <param name="handIndex"></param>
        void OnGrabObject(IOperateObject operate, int handIndex)
        {
            if (handIndex != InputHands[0].HandIndex)
            {
                return;
            }

            offset = MUtility.GetOffsetPosition(InputHands[0].ScreenPoint, operate.GrabObject);

            this.operateObject = operate;
        }
Example #10
0
 private void txtEmail_Validating(object sender, CancelEventArgs e)
 {
     if (txtEmail.Text == string.Empty)
     {
         return;
     }
     if (!MainController.IsValidEmail(txtEmail.Text))
     {
         MUtility.ShowWarrning("Unet je nevalidan email");
         return;
     }
 }
Example #11
0
        private void PozoviApiFunkciju()
        {
            ClientLoginDto clog = new ClientLoginDto
            {
                KIme_Mail = FindViewById <TextView>(Resource.Id.usernameText).Text,
                Sifra     = FindViewById <TextView>(Resource.Id.passwordText).Text
            };

            try
            {
                SesijaDto sesija = Api.Api.LoginUser(clog);
                MSettings.CurrentSession = new Session()
                {
                    SessionID = sesija.IdSesije
                };

                KorisnikFullDto korisnik = Api.Api.GetUserFullInfo(sesija.IdKorisnika);
                if (korisnik.IdTipaNaloga == (int)User.UserAccountType.Student)
                {
                    //if (!Api.LogoutUser(MSettings.CurrentSession.SessionID))
                    //    throw new Exception("Neuspesno ciscenje logovanja");
                    var intent = new Intent(this, typeof(MainSwipePage));
                    intent.AddFlags(ActivityFlags.ClearTop | ActivityFlags.NewTask);
                    StartActivity(intent);

                    alert.Dismiss();

                    MSettings.CurrentSession.LoggedUser = MUtility.User_From_KorisnikFullDto(korisnik);

                    if (check.Checked)
                    {
                        ZapamtiKorisnika(clog.KIme_Mail, clog.Sifra);
                    }

                    this.Finish();
                }
                else
                {
                    alert.Dismiss();
                    MSettings.CurrentSession = null;
                    //Toast.MakeText(this, "Ovo nije korisnicki nalog!", ToastLength.Short).Show();
                    RunOnUiThread(() => Toast.MakeText(this, "Ovo nije korisnicki nalog!", ToastLength.Short).Show());
                }
            }
            catch (Exception ex)
            {
                alert.Dismiss();
                MSettings.CurrentSession = null;
                //Toast.MakeText(this, ex.Message, ToastLength.Short).Show();
                RunOnUiThread(() => Toast.MakeText(this, "Nepravilno korisnicko ime ili lozinka!", ToastLength.Short).Show());
            }
        }
Example #12
0
 private void bgWorkerLoading_DoWorkLogOut()
 {
     Thread.Sleep(500);
     try
     {
         MainController.Shutdown();
     }
     catch (Exception ex)
     {
         MUtility.ShowException(ex);
         Environment.Exit(1);
     }
 }
Example #13
0
        /// <summary>
        /// 打开
        /// </summary>
        public virtual void OnOpen(int handIndex = 0)
        {
            this.handIndex = handIndex;
            Vector3 screenHand = MOperateManager.GetHandScreenPoint(handIndex);

            Vector3 screenPosition = MUtility.MainWorldToScreenPoint(GrabObject.transform.position);

            recordPos = MUtility.MainScreenToWorldPoint(new Vector3(screenHand.x, screenHand.y, screenPosition.z));//手的坐标


            recordEuler = space == Space.World ? GrabObject.transform.eulerAngles : GrabObject.transform.localEulerAngles;
            isActive    = true;
        }
Example #14
0
        /// <summary>
        /// 判断是否在区域内
        /// </summary>
        /// <param name="handIndex"></param>
        /// <returns></returns>
        bool IsAreaContains(int handIndex)
        {
            if (panelType == PanelType.UI)
            {
                return(KGUI_Utility.IsAreaContains(transform, handIndex) || OtherRectAreaContains(handIndex));
            }
            else
            {
                Vector3 screenPoint = MUtility.UIWorldToScreenPoint(transform.position);

                return(KGUI_Utility.IsAreaContains(screenPoint, panelSize, handIndex) || OtherRectAreaContains(handIndex));
            }
        }
Example #15
0
        // 单手操作处理
        void KinectHandOne()
        {
            if (MInputKinect.IsHandActive(0))
            {
                handIndex = 0;
            }
            else if (MInputKinect.IsHandActive(1))
            {
                handIndex = 1;
            }

            //将他的屏幕坐标传递出去
            InputHands[0].OnUpdate(MInputKinect.ScreenHandPostion(handIndex));

            if (MInputKinect.HandGrip(handIndex))
            {
                InputHands[0].SetGrip();
            }

            if (MInputKinect.HandRelease(handIndex))
            {
                InputHands[0].SetIdle();
            }

            if (rightOperateObject != null)
            {
                switch (InputHands[0].HandStatus)
                {
                case MInputHandStatus.Grabing:

                    var screenDevice = MUtility.MainWorldToScreenPoint(rightOperateObject.GrabObject.transform.position);

                    Vector3 screenMouse = InputHands[0].ScreenPoint;
                    Vector3 vPos        = MUtility.MainScreenToWorldPoint(new Vector3(screenMouse.x, screenMouse.y, screenDevice.z));

                    rightOperateObject.GrabObject.transform.position = vPos - rightOffset;

                    //需要处理偏移量

                    break;

                case MInputHandStatus.Idle:

                    this.rightOperateObject = null;
                    break;

                default:
                    break;
                }
            }
        }
Example #16
0
        private void KORSN_btnProfile_Click(object sender, EventArgs e)
        {
            if (KORSN_dgvUsers.SelectedRows.Count == 0)
            {
                MUtility.ShowInformation("Odaberite korisnika");
                return;
            }

            User sel = (User)KORSN_dgvUsers.SelectedRows[0].DataBoundItem;

            ProfileForm pf = new ProfileForm(sel);

            pf.ShowDialog();
        }
Example #17
0
 private void bgWorkerLoading_DoWork(object sender, DoWorkEventArgs e)
 {
     Thread.Sleep(500);
     try
     {
         MainController.PostLoginInit();
     }
     catch (Exception ex)
     {
         MUtility.ShowException(ex);
         MainController.LogoutUser();
         Environment.Exit(1);
     }
 }
Example #18
0
 private void statbarUserSignOut_Click(object sender, EventArgs e)
 {
     try
     {
         bgWorkerLoading.DoWork += (sender2, args) => bgWorkerLoading_DoWorkLogOut();
         this.Hide();
         bgWorkerLoading.RunWorkerAsync();
         loadform.TextToDisplay = "Odjavljivanje";
         loadform.ShowDialog();
     }
     catch (Exception ex)
     {
         MUtility.ShowException(ex);
     }
 }
Example #19
0
        /// <summary>
        /// 判断是否在立方体内
        /// </summary>
        /// <param name="position"></param>
        /// <param name="size"></param>
        /// <param name="targetPosition"></param>
        /// <param name="distanceType"></param>
        /// <returns></returns>
        public static bool CubeDistance(Vector3 position, Vector3 size, Vector3 targetPosition, DistanceType distanceType, out float distanceValue)
        {
            Distance(position, targetPosition, distanceType, out distanceValue);

            switch (distanceType)
            {
            case DistanceType.D3D:

                float d3d_xMin = position.x - size.x / 2;
                float d3d_xMax = position.x + size.x / 2;

                float d3d_yMin = position.y - size.y / 2;
                float d3d_yMax = position.y + size.y / 2;

                float d3d_zMin = position.z - size.z / 2f;
                float d3d_zMax = position.z + size.z / 2f;

                return(targetPosition.x.FloatContains(d3d_xMin, d3d_xMax) && targetPosition.y.FloatContains(d3d_yMin, d3d_yMax) &&
                       targetPosition.z.FloatContains(d3d_zMin, d3d_zMax));

            case DistanceType.D2D:
                float xMin = position.x - size.x / 2;
                float xMax = position.x + size.x / 2;

                float yMin = position.y - size.y / 2;
                float yMax = position.y + size.y / 2;

                return(targetPosition.x.FloatContains(xMin, xMax) && targetPosition.y.FloatContains(yMin, yMax));

            case DistanceType.DScreen:

                //计算两个坐标的屏幕坐标
                Vector3 screen1 = MUtility.MainCamera.WorldToScreenPoint(position);
                Vector3 screen2 = MUtility.MainCamera.WorldToScreenPoint(targetPosition);

                //在计算范围
                float sizeScreenX = Mathf.Abs(MUtility.MainCamera.WorldToScreenPoint(new Vector3(position.x + size.x / 2, position.y, position.z)).x
                                              - MUtility.MainCamera.WorldToScreenPoint(new Vector3(position.x - size.x / 2, position.y, position.z)).x);

                float sizeScreenY = Mathf.Abs(MUtility.MainCamera.WorldToScreenPoint(new Vector3(position.x, position.y, position.z)).x
                                              - MUtility.MainCamera.WorldToScreenPoint(new Vector3(position.x - size.x / 2, position.y, position.z)).x);

                return(MUtility.ScreenPointContains(screen1, new Vector2(sizeScreenX, sizeScreenY), screen2));

            default:
                return(false);
            }
        }
Example #20
0
 private void KORSN_RefreshUsersGrid(bool ReloadData = false)
 {
     OpStatusWorking();
     if (ReloadData)
     {
         MainController.UpdateAllUsersList();
     }
     if (User.AllUsers == null)
     {
         MUtility.ShowError("Lista svih korisnika nije ucitana");
         return;
     }
     KORSN_FilterList();
     KORSN_TABINIT();
     OpStatusIdle();
 }
Example #21
0
        IEnumerator OnUpdate(int handIndex)
        {
            while (true)
            {
                yield return(new WaitForFixedUpdate());

                Vector3 screenHand = MOperateManager.GetHandScreenPoint(handIndex);

                Vector3 screenPosition = MUtility.MainWorldToScreenPoint(GrabObject.transform.position);
                Vector3 position       = MUtility.MainScreenToWorldPoint(new Vector3(screenHand.x, screenHand.y, screenPosition.z));

                if (OnCustomizeUpdate != null)
                {
                    OnCustomizeUpdate.Invoke(GrabObject, position, handIndex);
                }
            }
        }
Example #22
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (newMensa != null)
            {
                if (!ValidateInput())
                {
                    MUtility.ShowInformation("Nevalidni podaci. Proverite sva polja!");
                    return;
                }
                newMensa.Name            = txtName.Text;
                newMensa.Location        = txtLocation.Text;
                newMensa.WorkTime        = txtWorkTime.Text;
                newMensa.CurrentlyClosed = cbxNotWorking.Checked;
                newMensa.GPSLat          = double.Parse(txtGPS_Lat.Text);
                newMensa.GPSLong         = double.Parse(txtGPS_Lon.Text);
                MainController.AddMensa(newMensa);
                RefreshList();
                RefreshData();
                newMensa = null;
                return;
            }

            if (selectedMensa == null)
            {
                MUtility.ShowInformation("Odaberi menzu za izmenu");
                return;
            }

            if (!ValidateInput())
            {
                MUtility.ShowInformation("Nevalidni podaci. Proverite sva polja!");
                return;
            }

            selectedMensa.Name            = txtName.Text;
            selectedMensa.CurrentlyClosed = cbxNotWorking.Checked;
            selectedMensa.Location        = txtLocation.Text;
            selectedMensa.GPSLong         = double.Parse(txtGPS_Lon.Text);
            selectedMensa.GPSLat          = double.Parse(txtGPS_Lat.Text);
            selectedMensa.WorkTime        = txtWorkTime.Text;

            MainController.UpdateMensa(selectedMensa);
            RefreshList();
            RefreshData();
        }
Example #23
0
        private void Update()
        {
            if (IsDown && handIndex != -1 && enabled)
            {
                //屏幕坐标
                Vector3 screenPoint = MOperateManager.GetHandScreenPoint(handIndex);

                Vector3 screenDevice = MUtility.MarkWorldToScreenPoint(sliderObject.transform.position);
                Vector3 vPos         = MUtility.MarkScreenToWorldPoint(new Vector3(screenPoint.x, screenPoint.y, screenDevice.z));

                OnExecute(vPos);
            }

            //if (tempValue != Value)
            //{
            //    SetChangingValue(Value);
            //}
        }
            /// <summary>
            /// 设置物体被抓取
            /// </summary>
            /// <param name="operate">Operate.</param>
            /// <param name="handIndex">Hand index.</param>
            public void SetGrabObject(IOperateObject operate, int handIndex, float cameraRelativeDistance)
            {
                if (HandIndex != handIndex)
                {
                    return;
                }
                Vector3 screenPoint = Operate.InputHand.ScreenPoint;

                OperateObject = operate;

                Vector3 screenMainCamera = MUtility.MainWorldToScreenPoint(MUtility.MainCamera.transform.position
                                                                           + MUtility.MainCamera.transform.forward * cameraRelativeDistance);

                Vector3 position = MUtility.MainScreenToWorldPoint(new Vector3(screenPoint.x, screenPoint.y, screenMainCamera.z));

                Offset = Vector3.zero;

                OperateObject.GrabObject.transform.position = position;
            }
Example #25
0
        private void NAPLATA_btnReclamation_Click(object sender, EventArgs e)
        {
            User s = MainController.LoadedCardUser;

            if (s == null)
            {
                MUtility.ShowWarrning("Prvo ucitati korisnika");
                return;
            }

            ReclamationForm rf = new ReclamationForm(MainController.LoadedCardUser, ReclamationForm.Mode.PogresnaNaplata);

            rf.ShowDialog();

            OpStatusWorking();
            MainController.LoadUserCard(MainController.LoadedCardUser.UserID);
            NAPLATA_RefreshCardInfo();
            OpStatusIdle();
        }
Example #26
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (selectedMensa == null)
            {
                MUtility.ShowInformation("Odaberi fakultet za brisanje");
                return;
            }

            DialogResult dg = MessageBox.Show("Da li ste sigurni da zelite da obrisete " + selectedMensa.Name + "?", "Brisanje fakulteta", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (dg == DialogResult.No)
            {
                return;
            }

            MainController.DeleteMensa(selectedMensa);
            RefreshList();
            RefreshData();
        }
Example #27
0
        public virtual void OnUpdate()
        {
            if (!isActive)
            {
                return;
            }
            Vector3 screenHand     = MOperateManager.GetHandScreenPoint(handIndex);
            Vector3 screenPosition = MUtility.MainWorldToScreenPoint(recordPos);
            Vector3 handPos        = MUtility.MainScreenToWorldPoint(new Vector3(screenHand.x, screenHand.y, screenPosition.z)); //手的坐标
            float   dis            = handPos.x - recordPos.x;                                                                    //手移动的距离

            float   ratio = dis * speed;
            float   angle = 0;
            Vector3 euler = recordEuler;

            angle = GetAngle(ratio, angle);
            euler = GetEuler(angle, euler);
            RotateSelf(euler);
        }
Example #28
0
        /// <summary>
        /// 设置物体被抓取
        /// </summary>
        /// <param name="operate"></param>
        /// <param name="handIndex"></param>
        /// <param name="cameraRelativeDistance"></param>
        void SetGrabObject(IOperateObject operate, int handIndex, float cameraRelativeDistance)
        {
            if (handIndex != InputHands[0].HandIndex)
            {
                return;
            }

            //Vector3 screenDevice = MUtility.MainWorldToScreenPoint(operate.GrabObject.transform.position);
            Vector3 screenpoint = InputHands[0].ScreenPoint;

            rightOperateObject = operate;

            Vector3 screenMainCamera = MUtility.MainWorldToScreenPoint(MUtility.MainCamera.transform.position
                                                                       + MUtility.MainCamera.transform.forward * cameraRelativeDistance);

            Vector3 position = MUtility.MainScreenToWorldPoint(new Vector3(screenpoint.x, screenpoint.y, screenMainCamera.z));

            rightOperateObject.GrabObject.transform.position = position;
        }
Example #29
0
        private void picProfilePicture_Click(object sender, EventArgs e)
        {
            DialogResult dr = openImageFileDialog.ShowDialog();

            if (dr != DialogResult.OK)
            {
                return;
            }

            string filename = openImageFileDialog.FileName;

            long filesize = (new FileInfo(filename)).Length;

            if (filesize >= (1024 * 1024 * 1))
            {
                MUtility.ShowWarrning("Prevelika slika. Slika mora da bude manje od 1MB");
                return;
            }
            picProfilePicture.Image = Image.FromFile(openImageFileDialog.FileName);
        }
Example #30
0
        private void KORSN_btnChangeUser_Click(object sender, EventArgs e)
        {
            if (KORSN_dgvUsers.SelectedRows.Count == 0)
            {
                MUtility.ShowWarrning("Odaberite korisnika");
                return;
            }

            User     u  = KORSN_dgvUsers.SelectedRows[0].DataBoundItem as User;
            UserForm uf = new UserForm(u);

            if (uf.ShowDialog() == DialogResult.OK)
            {
                bool ops = MainController.UpdateUser(u);
                if (ops)
                {
                    MUtility.ShowInformation("Korisnik uspesno azuriran");
                }
                KORSN_RefreshUsersGrid(true);
            }
        }