public ActionResult Create(AddMonetaryOfferViewModel vm) { if (ModelState.IsValid) { if (vm.Amount <= 0) { AddError("Amount cannot be lower or equal to 0!"); return(RedirectToAction("IndexSpecified", new { buyCurrencyID = vm.BuyCurrencyID, sellCurrencyID = vm.SellCurrencyID })); } if (vm.OfferType.HasValue == false) { AddError("You need to select offer type!"); return(RedirectToAction("IndexSpecified", new { buyCurrencyID = vm.BuyCurrencyID, sellCurrencyID = vm.SellCurrencyID })); } if (vm.Rate <= 0) { AddError("Rate cannot be lower or equal to 0!"); return(RedirectToAction("IndexSpecified", new { buyCurrencyID = vm.BuyCurrencyID, sellCurrencyID = vm.SellCurrencyID })); } var entity = SessionHelper.CurrentEntity; var cost = monetaryMarketService.GetMonetaryOfferCost(vm.SellCurrencyID.Value, vm.BuyCurrencyID.Value, vm.Amount, vm.Rate, (MonetaryOfferTypeEnum)vm.OfferType); if (walletService.HaveMoney(entity.WalletID, new Money(cost.Currency, (decimal)cost.Sum)) == false) { AddError("You do not have enough money!"); return(RedirectToAction("IndexSpecified", new { buyCurrencyID = vm.BuyCurrencyID, sellCurrencyID = vm.SellCurrencyID })); } var param = new CreateMonetaryOfferParam() { Amount = vm.Amount, BuyCurrency = Persistent.Currencies.GetById(vm.BuyCurrencyID.Value), SellCurency = Persistent.Currencies.GetById(vm.SellCurrencyID.Value), OfferType = (MonetaryOfferTypeEnum)vm.OfferType, Rate = vm.Rate, Seller = SessionHelper.CurrentEntity }; monetaryMarketService.CreateOffer(param); return(RedirectToAction("IndexSpecified", new { buyCurrencyID = vm.BuyCurrencyID, sellCurrencyID = vm.SellCurrencyID })); } return(RedirectToAction("Index")); }
public ActionResult Create() { var vm = new AddMonetaryOfferViewModel(); return(View(vm)); }