public IResponseBusiness <Entity.PaymentMethodDetail> Insert(Entity.PaymentMethodDetail entity) { if (entity == null) { throw new ArgumentNullException("entity"); } IResponseBusiness <Entity.PaymentMethodDetail> response = new ResponseBusiness <Entity.PaymentMethodDetail>() { Entity = null, IsError = true, Message = string.Empty }; IResponseValidate validatePayment = Validate(entity); if (validatePayment.IsValid) { _context.PaymentMethodDetails.Add(entity); try { _context.SaveChanges(); } catch (DbUpdateConcurrencyException cex) { response.Message = _resourceReacher.GetString("PaymentMethodDetailSaveDbUpdateConcurrencyException"); } catch (DbUpdateException uex) { response.Message = _resourceReacher.GetString("PaymentMethodDetailSaveDbUpdateException"); } catch (DbEntityValidationException eex) { response.Message = _resourceReacher.GetString("PaymentMethodDetailSaveDbEntityValidationException"); } catch (NotSupportedException sex) { response.Message = _resourceReacher.GetString("PaymentMethodDetailSaveNotSupportedException"); } catch (ObjectDisposedException dex) { response.Message = _resourceReacher.GetString("PaymentMethodDetailSaveObjectDisposedException"); } catch (InvalidOperationException iex) { response.Message = _resourceReacher.GetString("PaymentMethodDetailSaveInvalidOperationException"); } finally { if (string.IsNullOrEmpty(response.Message)) { response.Entity = entity; response.IsError = false; } } } else { response.Message = validatePayment.Message; } return(response); }
/// <summary> /// Crea un movimiento a partir de una captura de imagen /// </summary> /// <param name="capture">Entidad que contiene la imagen capturada</param> /// <returns><c>IResponseBusiness<Entity.Payment></c></returns> /// <exception cref="System.ArgumentNullException">capture</exception> public IResponseBusiness <Entity.Payment> InsertCapture(Entity.Capture capture) { if (capture == null) { throw new ArgumentNullException("capture"); } IResponseBusiness <Entity.Payment> response = new ResponseBusiness <Entity.Payment>() { Entity = null, IsError = true, Message = string.Empty }; Entity.Payment payment = null; if (capture.Payment == null) //Se crea Payment con valores por defecto { capture.Payment = new Entity.Payment(); // Se instancia Payment para que la validaciĆ³n de la captura no de error por la falta de Payment Business.Capture captureBusiness = new Business.Capture(_user); IResponseValidate validateCapture = captureBusiness.Validate(capture); if (validateCapture.IsValid) { PaymentMethodDetail paymentMethodDetailBusiness = new PaymentMethodDetail(this._user, _context); Status statusBusiness = new Status(_user, _context); payment = new Entity.Payment(); payment.Date = DateTime.Now; payment.Description = string.Empty; payment.IsScheduled = false; payment.PaymentMethodDetail = paymentMethodDetailBusiness.GetDefault(); payment.PaymentType = (int)Entity.Enums.PaymentTypes.None; payment.Status = statusBusiness.GetDefault(); payment.User = this._user; payment.Value = 0; payment.Captures.Add(capture); capture.Payment = payment; _context.Payments.Add(payment); } else { response.Message = validateCapture.Message; } } else { payment = capture.Payment; _context.Captures.Add(capture); } try { _context.SaveChanges(); } catch (DbUpdateConcurrencyException cex) { response.Message = _resourceReacher.GetString("PaymentSaveDbUpdateConcurrencyException"); } catch (DbUpdateException uex) { response.Message = _resourceReacher.GetString("PaymentSaveDbUpdateException"); } catch (DbEntityValidationException eex) { response.Message = _resourceReacher.GetString("PaymentSaveDbEntityValidationException"); } catch (NotSupportedException sex) { response.Message = _resourceReacher.GetString("PaymentSaveNotSupportedException"); } catch (ObjectDisposedException dex) { response.Message = _resourceReacher.GetString("PaymentSaveObjectDisposedException"); } catch (InvalidOperationException iex) { response.Message = _resourceReacher.GetString("PaymentSaveInvalidOperationException"); } finally { if (string.IsNullOrEmpty(response.Message)) { response.Entity = payment; response.IsError = false; } } return(response); }