public MainPage()
        {
            InitializeComponent();

            var handler = new ModelHandler <Employee>()
                          .BindErrors(commonErr)
                          .Bind(e => e.FirstName, fname, fnameErr)
                          .Bind(e => e.LastName, lname)
                          .Bind(e => e.Age, age, ageErr)
                          .Bind(e => e.IsDead, deadSwitch)
                          .Bind(e => e.ToBeFiredOn, fireDate, fireTime);

            postBtn.Clicked += async delegate {
                await handler.SubmitAsync(
                    e => EmployeeAccess.Post(e),
                    async s => await DisplayAlert("Success", $"Success with message {s}", "Ok"),
                    onError : async e => await DisplayAlert("Failed", $"Failed with status: '{e.StatusCode}' and error '{e.TextResponse}'", "Cancel")
                    );
            };

            flawButton.Clicked += async delegate {
                await handler.SubmitAsync(
                    e => EmployeeAccess.Post(null),
                    async s => await DisplayAlert("Success", $"Success with message {s}", "Ok"),
                    onError : async e => await DisplayAlert("Failed", $"Failed with status: '{e.StatusCode}' and error '{e.TextResponse}'", "Cancel")
                    );
            };
        }
        /// <summary>
        /// 新增员工
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public static async Task <ResponseResult> Post(EmployeeModel entity)
        {
            ResponseResult result;

            if (!ValidateUtil.IsValid(entity, out result))
            {
                return(result);
            }

            return(await EmployeeAccess.Post(entity));
        }
        public MainPage()
        {
            InitializeComponent();

            var mapper = new ModelHandler <Employee>(new StackErrorMapping(commonErr))
                         .Bind(e => e.FirstName, firstName, fnameErr)
                         .Bind(e => e.LastName, lname, lnameErr)
                         .Bind(e => e.Age, age, ageErr)
                         .Bind(e => e.ToBeFiredOn, fireDate, fireTime, dateErr);

            submitBtn.Clicked += async delegate {
                await mapper.SubmitAsync(e => EmployeeAccess.Post(e), s => display.Text = s);
            };

            showBtn.Clicked += async delegate {
                if (mapper.TryGetModel(out Employee emp))
                {
                    var employee = await EmployeeAccess.Get(emp.Age ?? 0);

                    mapper.ClearErrors();
                    if (employee.IsSuccessful)
                    {
                        mapper.SetModel(employee);
                    }
                    else
                    {
                        await DisplayAlert("Nop", $"Something failed with the error: {employee.StatusCode}", "Oh damit!!!");
                    }
                }
            };

            invalidBtn.Clicked += async delegate {
                await mapper.SubmitAsync(async e => await EmployeeAccess.GetNoErrors());

                await DisplayAlert("No errors!", "See ma! no errors!!!", "Nothing is better than something");
            };

            noDataBtn.Clicked += async delegate {
                await mapper.SubmitAsync(e => EmployeeAccess.Post(null), s => display.Text = s);
            };
        }
    }