Exemplo n.º 1
0
        public void InsertCaptureErrorTestMethod()
        {
            IResponseBusiness <Entity.Payment> valueReturned = null;
            Payment paymentBusiness = new Business.Payment(new Entity.User());

            Entity.Capture capture = new Entity.Capture()
            {
                Id        = 0,
                Image     = System.Text.Encoding.UTF8.GetBytes(new char[] { 'z', 'a' }),
                Payment   = null,
                PaymentId = 0
            };

            valueReturned = paymentBusiness.InsertCapture(capture);
            Assert.IsTrue(valueReturned.IsError);
        }
Exemplo n.º 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);
        }