public async Task <PaymentMethodDTO> CreateAsync(PaymentMethodPostRequest model, ApiDbContext apiDbContext) { try { var paymentMethodFound = apiDbContext.PaymentMethods.FirstOrDefault(p => p.Code.ToUpper().Trim().Equals(model.Code.ToUpper().Trim())); if (paymentMethodFound != null) { throw new Exception($"Ya existe un método de pago con el código {model.Code}"); } PaymentMethod newPaymentMethod = new PaymentMethod { Code = model.Code, Name = model.Name, Value = model.Value, CreationDate = DateTime.Now, ShopId = model.ShopId }; await apiDbContext.PaymentMethods.AddAsync(newPaymentMethod); await apiDbContext.SaveChangesAsync(); return(ModelToDTO(newPaymentMethod)); } catch (Exception e) { throw new Exception(e.Message); } }
public async Task <IActionResult> Create(PaymentMethodPostRequest model) { try { if (!ModelState.IsValid) { throw new Exception("Petición de alta inválida"); } return(Ok(await _paymentMethodService.CreateAsync(model, _apiDbContext))); } catch (Exception e) { return(StatusCode(500, e.Message)); } }