Ejemplo n.º 1
0
        public async Task MarkInactive(LoginViewItem viewItem)
        {
            if (viewItem == null)
            {
                throw new ArgumentNullException("viewItem");
            }

            // Apply business logic
            var permissionResult = this.Manager.CanMarkInactive(viewItem.Login);

            switch (permissionResult.Status)
            {
            case PermissionStatus.Allow:
                // Request confirmation for marking the item as inactive
                this.Dialog.AcceptAction = () =>
                {
                    // Mark the viewItem as Inactive
                    viewItem.IsActive = false;

                    // Call the manager to update the message
                    this.Manager.MarkInactive(viewItem.Login);
                };
                await this.Dialog.ShowAsync(this.Manager.Settings.ConfirmMarkInactiveMsg);

                break;

            case PermissionStatus.Deny:
                await this.Dialog.DisplayAsync(permissionResult.Message);

                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Ejemplo n.º 2
0
 private void AddValidated(LoginViewItem viewItem)
 {
     // Call the manager to add the new message
     if (this.Manager.Add(viewItem.Login, true))
     {
         // Add the item to the list to the right place if sorter != null
         this.ViewItems.Add(viewItem);
     }
 }
Ejemplo n.º 3
0
        public async Task Add(LoginViewItem viewItem)
        {
            if (viewItem == null)
            {
                throw new ArgumentNullException("viewItem");
            }

            viewItem = new LoginViewItem(new Login())
            {
                Username = (viewItem.Username ?? string.Empty).Trim(), Password = viewItem.Password
            };

            try
            {
                var login = viewItem.Login;
                // Display validation to UI
                this.UsernameValidationMsg = Validator.CombineResults(this.Manager.ValidateUsername(login.Username));
                this.PasswordValidationMsg = Validator.CombineResults(this.Manager.ValidatePassword(login.Password));

                // Apply validations about required fields, ranges & values
                var validationResults = this.Manager.Validate(login);
                if (validationResults.Length == 0)
                {
                    // Apply business logic
                    var permissionResult = this.Manager.CanAdd(login);
                    switch (permissionResult.Status)
                    {
                    case PermissionStatus.Allow:
                        this.AddValidated(viewItem);
                        break;

                    case PermissionStatus.Confirm:
                        // Confirm any user warnings
                        this.Dialog.AcceptAction = () => this.AddValidated(viewItem);
                        await this.Dialog.ConfirmAsync(permissionResult.Message);

                        break;

                    case PermissionStatus.Deny:
                        await this.Dialog.DisplayAsync(permissionResult.Message);

                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }