public ActionResult Account() { var data = UserProcessor.LoadUser(User.Identity.GetUserId()); GameUser user = new GameUser { FirstName = data.Fname, LastName = data.Lname, Age = data.Age, Balance = data.Balance }; user.GamesBought = PurchaseProcessor.GetGamesBought(User.Identity.GetUserId()); user.GamesSold = PurchaseProcessor.GetGamesSold(User.Identity.GetUserId()); var list = GameProcessor.GetGamesOnSale(User.Identity.GetUserId()); user.GamesOnSale = new List <Game>(); foreach (var row in list) { user.GamesOnSale.Add(new Game { Name = row.Name, CreatedBy = row.CreatedBy, Year = row.Year, GameConsole = row.Console }); } return(View(user)); }
public ActionResult BuyGame(Game game) { if (UserProcessor.CheckBalance(User.Identity.GetUserId())) { var data = GameProcessor.LoadGame(game.Id.ToString()); int rec = PurchaseProcessor.PurchaseGame(data.Name, data.OwnerId, User.Identity.GetUserId()); int recs = GameProcessor.BuyGame(game.Id); return(RedirectToAction("BrowseGames")); } return(RedirectToAction("UpdateBalance")); }
public void Returns_CreatePackagingSlipCommand_For_Book_Purchase() { Mock <IProductTypeEvaluator> evaluator = new Mock <IProductTypeEvaluator>(); evaluator.Setup(p => p.IsPhysical(_product)).Returns(true); IBusinessRuleMatcherRepository repository = new BusinessRuleMatcherRepository(evaluator.Object); ICommandComparerRepository commandComparerRepository = new CommandComparerRepository(); PurchaseProcessor rp = new PurchaseProcessor(repository, commandComparerRepository); PurchaseCommandSet purchaseCommandSet = rp.ProcessPurchase(_purchase); Assert.AreEqual(1, purchaseCommandSet.Commands.OfType <CreatePackagingSlipCommand>().Count()); }
public void Returns_Empty_CommandsSet_For_Zero_Products_Purchase() { Mock <IBusinessRuleMatcherRepository> ruleMatcherRepositoryMock = new Mock <IBusinessRuleMatcherRepository>(); ruleMatcherRepositoryMock.Setup(p => p.GetRuleMatchers()).Returns(new IBusinessRuleMatcher[0]); ICommandComparerRepository commandComparerRepository = new CommandComparerRepository(); PurchaseProcessor rp = new PurchaseProcessor(ruleMatcherRepositoryMock.Object, commandComparerRepository); Purchase emptyPurchase = new Purchase(new Product[0], new Payment()); PurchaseCommandSet purchaseCommandsSet = rp.ProcessPurchase(emptyPurchase); Assert.AreEqual(0, purchaseCommandsSet.Commands.Count); }
public void Returns_UpgradeMembershipCommand_For_Book_Purchase() { Mock <IProductTypeEvaluator> evaluator = new Mock <IProductTypeEvaluator>(); evaluator.Setup(p => p.IsMembershipActivation(_product)).Returns(true); IBusinessRuleMatcherRepository repository = new BusinessRuleMatcherRepository(evaluator.Object); ICommandComparerRepository commandComparerRepository = new CommandComparerRepository(); PurchaseProcessor rp = new PurchaseProcessor(repository, commandComparerRepository); PurchaseCommandSet purchaseCommandSet = rp.ProcessPurchase(_purchase); Assert.AreEqual(1, purchaseCommandSet.Commands.Count); Assert.IsInstanceOfType(purchaseCommandSet.Commands.Single(), typeof(ActivateMembershipCommand)); }
public void Returns_ActivateMembershipCommand_For_Book_Purchase() { Mock <IProductTypeEvaluator> evaluator = new Mock <IProductTypeEvaluator>(); evaluator.Setup(p => p.IsMembershipActivation(_product)).Returns(true); IBusinessRuleMatcherRepository repository = new BusinessRuleMatcherRepository(evaluator.Object); ICommandComparerRepository commandComparerRepository = new CommandComparerRepository(); PurchaseProcessor rp = new PurchaseProcessor(repository, commandComparerRepository); PurchaseCommandSet purchaseCommandSet = rp.ProcessPurchase(_purchase); ActivateMembershipCommand[] activateMembership = purchaseCommandSet.Commands.OfType <ActivateMembershipCommand>().ToArray(); Assert.AreEqual(1, activateMembership.Length); }
public void Returns_MultipleCommands_For_Purchase_With_Single_Product_Matching_Multiple_BusinessRules() { Mock <IProductTypeEvaluator> evaluator = new Mock <IProductTypeEvaluator>(); evaluator.Setup(p => p.IsPhysical(_product)).Returns(true); evaluator.Setup(p => p.IsBook(_product)).Returns(true); IBusinessRuleMatcherRepository repository = new BusinessRuleMatcherRepository(evaluator.Object); ICommandComparerRepository commandComparerRepository = new CommandComparerRepository(); PurchaseProcessor rp = new PurchaseProcessor(repository, commandComparerRepository); PurchaseCommandSet purchaseCommandSet = rp.ProcessPurchase(_purchase); Assert.IsTrue(purchaseCommandSet.Commands.Count > 1); }
public void Returns_CommandsBoundForDifferentProducts_For_PurchaseWithMultipleProducts() { Product product1 = new Product(new ProductCategory[0], ProductFlags.None, String.Empty); Product product2 = new Product(new ProductCategory[0], ProductFlags.None, String.Empty); Purchase purchase = new Purchase(new[] { product1, product2 }, new Payment()); Mock <IProductTypeEvaluator> evaluator = new Mock <IProductTypeEvaluator>(); evaluator.Setup(p => p.IsPhysical(product1)).Returns(true); evaluator.Setup(p => p.IsBook(It.IsAny <Product>())).Returns(true); IBusinessRuleMatcherRepository repository = new BusinessRuleMatcherRepository(evaluator.Object); ICommandComparerRepository commandComparerRepository = new CommandComparerRepository(); PurchaseProcessor rp = new PurchaseProcessor(repository, commandComparerRepository); PurchaseCommandSet purchaseCommandSet = rp.ProcessPurchase(purchase); Assert.AreEqual(2, purchaseCommandSet.Commands.OfType <IProductBoundPurchaseProcessingCommand>().Select(p => p.Product).Distinct().Count()); }
public void RoundingRules_FromInput3() { var purchaseInput = new List <string>() { "1 imported bottle of perfume at 27.99 1", "1 bottle of perfume at 18.99", "1 packet of headache pills at 9.75", "1 box of imported chocolates at 11.25", }; var factory = new MerchandiseFactory(); var merchandises = factory.Create(new InputReader(purchaseInput)); var availableTaxes = new List <ITax> { new SalesTax(new Exemptions()), new ImportTax() }; var output = new StringBuilder(); var saved = Console.Out; try { using (var writer = new StringWriter(output)) { Console.SetOut(writer); var processor = new PurchaseProcessor(new Purchase(merchandises), availableTaxes); processor.PrintReceipt(); string expected = "Sales Taxes: 6.70 Total: 74.68"; var text = output.ToString(); Assert.IsTrue(text.Contains(expected)); } } finally { Console.SetOut(saved); } }
public void RoundingRules_FromInput2() { var purchaseInput = new List <string>() { "1 imported box of chocolates at 10.00", "1 imported bottle of perfume at 47.50" }; var factory = new MerchandiseFactory(); var merchandises = factory.Create(new InputReader(purchaseInput)); var availableTaxes = new List <ITax> { new SalesTax(new Exemptions()), new ImportTax() }; var output = new StringBuilder(); var saved = Console.Out; try { using (var writer = new StringWriter(output)) { Console.SetOut(writer); var processor = new PurchaseProcessor(new Purchase(merchandises), availableTaxes); processor.PrintReceipt(); string expected = "Sales Taxes: 7.65 Total: 65.15"; var text = output.ToString(); Assert.IsTrue(text.Contains(expected)); } } finally { Console.SetOut(saved); } }
static void Main(string[] args) { Console.WriteLine("-----------------------------------"); Console.WriteLine(" Sales Taxes Problem "); Console.WriteLine("-----------------------------------"); while (true) { char selection = SelectInput(); var purchaseInput = GetInput(selection); if (purchaseInput is null) { return; } var factory = new MerchandiseFactory(); var merchandises = factory.Create(new InputReader(purchaseInput)); var availableTaxes = new List <ITax> { new SalesTax(new Exemptions()), new ImportTax() }; var processor = new PurchaseProcessor(new Purchase(merchandises), availableTaxes); processor.PrintReceipt(); Console.WriteLine("-----------------------------------"); Console.WriteLine(); } //Console.WriteLine(">> Press ENTER to quit."); //Console.ReadLine(); }
/// <summary> /// Purchase /// </summary> public PaymentResponse Purchase(PayfortAuthorizationInfoRequest request) { //Declarations var errInfo = new PaymentResponse(); //errInfo.UserId = request.UserId; //errInfo.BookingId = request.BookingId; if (request != null) { //1. Generate SHA256 Signature request.Signature = request.GenerateAuthorizationSHA256Signature(); //2. Generate Json Request Parameter var jsonRequest = request.GetAuthorizationRequestParams(); //3. Send Request return(PurchaseProcessor.Purchase(jsonRequest, request.Url, errInfo)); } else { return(ExceptionHandler.ExceptionHandler.GetPayfortExceptionResponseInfo(errInfo, PaymentCommandType.PURCHASE)); } }