示例#1
0
        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);
        }
示例#2
0
        /// <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);
        }