public async Task <IActionResult> OnPostAsync([FromServices] CustomerComponentUowFactory customerComponentUowFactory) { if (customerComponentUowFactory == null) { throw new System.ArgumentNullException(nameof(customerComponentUowFactory)); } if (!ModelState.IsValid) { return(Page()); } using (ICustomerComponentUow customerComponent = customerComponentUowFactory.NewCustomerUow()) { try { WorkflowResult result = await customerComponent.SaveInfoAsync(Customer.Name, Customer.FamilyName1, Customer.FamilyName2, Customer.Telephone, Customer.Cellphone, Customer.Email, Customer.BirthDate, Customer.PhoneCallsEnabled, Customer.MailEnabled, UserId()); if (!result.Success) { customerComponent.RollbackChanges(); for (int i = 0; i < result.Errors.Length; i++) { ModelState.TryAddModelError("", result.Errors[i]); } return(Page()); } return(RedirectToPage("./Details", new { id = customerComponent.CustomerId })); } catch (System.Exception ex) { customerComponent.RollbackChanges(); ModelState.AddModelError("", ex.Message); return(Page()); } } }
public async Task <IActionResult> OnPostAddPhoneCallAsync([FromServices] CustomerComponentUowFactory customerComponentUowFactory) { if (customerComponentUowFactory == null) { throw new ArgumentNullException(nameof(customerComponentUowFactory)); } ModelState.Clear(); if (!TryValidateModel(AddPhoneCall)) { ModelState.TryAddModelError("", "Parametros incorrectos"); return(Page()); } Option <ICustomerComponentUow> customerComponentOption = await customerComponentUowFactory.ExistingCustomerUowAsync(Id); if (!customerComponentOption.Any()) { ModelState.TryAddModelError("", "El registro ya no se encuentra en BD"); return(Page()); } using (ICustomerComponentUow customerComponent = customerComponentOption.Single()) { try { WorkflowResult result = await customerComponent.AddPhoneCallAsync(AddPhoneCall.Description, UserId()); if (!result.Success) { customerComponent.RollbackChanges(); for (int i = 0; i < result.Errors.Length; i++) { ModelState.TryAddModelError("", result.Errors[i]); } } } catch (System.Exception ex) { customerComponent.RollbackChanges(); ModelState.AddModelError("", ex.Message); } } Customer = await _customersQueryComponent.CustomerAsync(Id); return(Page()); }