Ejemplo n.º 1
0
        public PaymentView(Payment payment)
        {
            ShopRepository shopRepository;
            BasketItemRepository basketItemRepository;
            IndividualRepository individualRepository;

            shopRepository = new ShopRepository();
            individualRepository = new IndividualRepository();
            basketItemRepository = new BasketItemRepository();

            this.Id = payment.Id;
            this.isPayed = payment.isPayed;
            this.ShopId = payment.ShopId;

            if (this.ShopId != null)
                this.Shop = (Shop)shopRepository.FindById(this.ShopId);

            this.IndividualId = payment.IndividualId;
            if (this.IndividualId != null)
                this.Individual = (Individual)
                    individualRepository.FindById(this.IndividualId);

            this.BasketItems = basketItemRepository.FindBasketItemsByPayment(
                this.Id);
        }
Ejemplo n.º 2
0
        //oldPayment и newPayment указывают на один и тот же экземпляр, но
        //для надежности оставлю обмен значений полей
        public void Edit(Payment newPayment)
        {
            Payment oldPayment;

            using (BookMarketDbContext db = new BookMarketDbContext())
            {
                db.EditPayment(newPayment.Id, newPayment.isPayed,
                    newPayment.ShopId, newPayment.IndividualId);
            }
        }
Ejemplo n.º 3
0
        //Добавление платежа магазина вместе с платежом WalletOne
        //Они добавляются вместе
        public Payment AddPayment(Payment payment, W1Payment w1Payment)
        {
            W1Payment dbW1Payment;
            Payment dbPayment;

            if (payment != null && w1Payment != null)
            {
                dbW1Payment = (W1Payment) this._w1PaymentRepository.Add(w1Payment);
                payment.Id = dbW1Payment.WMI_PAYMENT_NO;
                dbPayment = (Payment) this._paymentRepository.Add(payment);

                return dbPayment;
            }
            else throw new Exception("Payment не задан!");

            return null;
        }
Ejemplo n.º 4
0
        //Привязка элементов корзины покупателя к платежу и открепление их
        //от корзины.
        //payment должен быть известен БД или стоит его в ней найти по id?
        public void BasketToPaymentMigration(Basket basket, Payment payment)
        {
            IList<BasketItem> basketItems;
            BasketItemRepository basketItemRepository;

            if (basket != null && payment != null)
            {
                //прикрепление заказов к платежу
                basketItemRepository = (BasketItemRepository)this._basketItemRepository;
                basketItems = basketItemRepository.FindAllByBasket(basket.Id);

                foreach (BasketItem item in basketItems)
                {
                    item.PaymentId = payment.Id;
                    basketItemRepository.Edit(item);
                }

                //открепление заказов от корзины и ее очистка
                ClearBasket(basket);
            }
            else throw new Exception("Корзина или платеж не заданы!");
        }
Ejemplo n.º 5
0
        public ActionResult SelectShop(Shop shop)
        {
            Basket basket;
            IList<Shop> shops;
            PaymentView paymentView;
            UrlGenerator urlGenerator;
            Payment payment, dbPayment;
            W1Payment w1Payment, dbW1Payment;
            W1PaymentView w1PaymentView;
            Individual individual;
            BasketService basketService;
            IndividualRepository individualRepository;
            PaymentRepository paymentRepository;
            PaymentService paymentService;

            //Необходимо вызвать UrlGenerator в любом Post-методе контроллера,
            //иначе Request и Url поля не будут доступны.
            //В будующем нужно исправить!
            urlGenerator = new UrlGenerator(this.Request, this.Url);

            basketService = new BasketService();
            paymentRepository = new PaymentRepository();
            paymentService = new PaymentService();
            individualRepository = new IndividualRepository();
            //----
            shop = (Shop)this._shopRepository.FindById(shop.Id); //для адреса

            basket = basketService.GetBasket(User.Identity.Name);

            //Вычитаем заказанныек книги из BookVariableInfo и
            //обвновляем Basket
            basketService.ShopProcessing(basket, shop);
            shop.Address = (Address)this._addressRepository.FindById(shop.Id);
            //--
            //Создание платежной формы W1Payment
            individual = (Individual)individualRepository
                .FindIndividualByUserProfileName(User.Identity.Name);

            w1Payment = new W1Payment();
            w1Payment.WMI_PAYMENT_AMOUNT = paymentService.DecimalCounting(
                basket.TotalAmount, shop.BookDeliveryCost);
            w1Payment.WMI_DESCRIPTION = paymentService.MakeDescription(basket.Id);
            dbW1Payment = paymentService.MakeW1Payment(w1Payment);
            //добавление payment и w1Payment
            payment = new Payment()
            {
                Id = dbW1Payment.WMI_PAYMENT_NO,
                ShopId = shop.Id,
                IndividualId = individual.Id
            };
            dbPayment = paymentService.AddPayment(payment, w1Payment);
            payment.Id = dbPayment.Id;

            //Перемещение заказов из корзины в платеж и очистка корзины
            basketService.BasketToPaymentMigration(basket, payment);

            //-Создали представление для отображения w1Payment и передачи его в POST
            w1PaymentView = new W1PaymentView(dbW1Payment);//payment, basket);

            return RedirectToAction("BasketPay", w1PaymentView);//shop); //payment);
        }
Ejemplo n.º 6
0
        // Получает платеж по представлению
        public Payment GetPayment(PaymentView paymentView)
        {
            Payment payment;

            payment = new Payment()
            {
                Id = paymentView.Id,
                isPayed = paymentView.isPayed,
                ShopId = paymentView.ShopId
            };
            payment.Shop = (Shop)this._shopRepository.FindById(payment.ShopId);

            return payment;
        }