public static IResult <Product, IFailure> SaveProduct(Product product) { try { NonFunctionalDbWrapper.SaveAsync(product).Wait(); return(product.ToSuccess <Product, IFailure>()); } catch (AggregateException ex) when(ex.InnerException is ConflictException conflictEx) { return(Failure.ConflictFailureResult(conflictEx.GetReloadedModel <Product>())); } }