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); }; } }