public ViewResult MakeOrder(OrderViewModel viewModel)
        {
            var packageId = viewModel.ContentPackageId;
            var package = UnitOfWork.GetRepository<ContentPackage>().GetByID(packageId);

            var order = new Order
                        {
                            ContentPackage = package,
                            UserProfile = CurrentUserProfile
                        };

            var financeService = new FinanceService(UnitOfWork);
            financeService.MakeOrder(order);

            return InformationView("Покупка успешно произведена.",
                                   "",
                                   new ActionLinkInfo("Content",
                                                      "Details",
                                                      "Вернуться к просмотру",
                                                      new {id = package.ID}));
        }
        public ViewResult Order(int id)
        {
            var package = UnitOfWork.GetRepository<ContentPackage>().GetByID(id);
            if (package == null)
                return ErrorView("Материал не найден", "Указанный материал отсутствует в базе данных.");

            var viewModel = new OrderViewModel
                            {
                                OrderPrice = package.Price,
                                UserBalance = CurrentUserProfile.Balance,
                                ContentPackageId = package.ID
                            };

            var financeService = new FinanceService(UnitOfWork);
            var order = new Order
                        {
                            ContentPackage = package,
                            UserProfile = CurrentUserProfile,
                        };
            if (!financeService.IsOrderAvailable(order))
                ModelState.AddModelError("balance", "Недостаточно средств для покупки текущего материала.");

            return View(viewModel);
        }