Example #1
0
        private async void OnSave(object obj)
        {
            if (string.IsNullOrWhiteSpace(PasswordBindProp) && IsChangingPassword)
            {
                await PageDialogService.DisplayAlertAsync("", "Chưa nhập mật khẩu!", "OK");

                return;
            }
            if (string.IsNullOrWhiteSpace(EmployeeBindProp.EmployeeName))
            {
                await PageDialogService.DisplayAlertAsync("", "Chưa nhập tên tài khoản!", "OK");

                return;
            }
            if (string.IsNullOrWhiteSpace(EmployeeBindProp.FullName))
            {
                await PageDialogService.DisplayAlertAsync("", "Chưa nhập tên nhân viên!", "OK");

                return;
            }
            if (PasswordBindProp != ConfirmedPasswordBindProp)
            {
                await PageDialogService.DisplayAlertAsync("", "Mật khẩu không trùng khớp!", "OK");

                return;
            }
            IsBusy = true;

            try
            {
                // Thuc hien cong viec tai day
                var employeeLogic = new EmployeeLogic(_dbContext);
                if (IsEditing)
                {
                    if (IsChangingPassword)
                    {
                        await employeeLogic.UpdateAsync(new Employee
                        {
                            Id       = EmployeeBindProp.Id,
                            Password = Helper.GetMd5Hash(PasswordBindProp),
                        });
                    }
                    if (IsChangingInfo)
                    {
                        await employeeLogic.UpdateAsync(new Employee
                        {
                            Id       = EmployeeBindProp.Id,
                            FullName = EmployeeBindProp.FullName,
                            Role     = EmployeeBindProp.Role
                        });
                    }
                    await NavigationService.GoBackAsync();
                }
                else
                {
                    await employeeLogic.CreateAsync(new Employee
                    {
                        Id           = EmployeeBindProp.Id,
                        EmployeeName = EmployeeBindProp.EmployeeName,
                        FullName     = EmployeeBindProp.FullName,
                        Password     = Helper.GetMd5Hash(PasswordBindProp),
                        Role         = EmployeeBindProp.Role
                    });

                    var param = new NavigationParameters();
                    param.Add(Keys.EMPLOYEE, EmployeeBindProp);

                    await NavigationService.GoBackAsync(param);
                }
            }
            catch (Exception e)
            {
                await ShowError(e);
            }
            finally
            {
                IsBusy = false;
            }
        }