public async Task<ActionResult> ExchangeCalculate(ExchangeViewModel model) { var api = GoPlayApi.Instance; Game game = api.GetGame(model.gameID).Data; var user = api.GetUserById(CurrentUser.Id).Data; dynamic exchangeOption = BaseExchangeHandler.retrieveExchangeOption(model.exchangeOption, model.exchangeOptionID); BaseExchangeHandlerInterface handler = BaseExchangeHandler.retrieveExchangeHandler(user, game, exchangeOption, model.exchangeAmount, Request.GetClientIp()); Tuple<decimal, decimal> tuple = await handler.calculate(); if (!(tuple.Item1 > 0 || tuple.Item2 > 0)) return null; var result = String.Empty; if (tuple.Item1 > 0 && tuple.Item2 > 0) { result = String.Format(Resources.Resources.This_exchange_will_cost_you_Free_Play_Token_and_Play_Token, tuple.Item1, tuple.Item2); } else if (tuple.Item1 > 0) { result = String.Format(Resources.Resources.This_exchange_will_cost_you_Free_Play_Token, tuple.Item1); } else { result = String.Format(Resources.Resources.This_exchange_will_cost_you_Play_Token, tuple.Item2); } return Json(new { success = true, msg = result, timespan = TimeHelper.epoch() }); }
public async Task<ActionResult> Exchange(ExchangeViewModel model) { var api = GoPlayApi.Instance; Game game = api.GetGame(model.gameID).Data; var user = api.GetUserById(CurrentUser.Id).Data; dynamic exchangeOption = BaseExchangeHandler.retrieveExchangeOption(model.exchangeOption, model.exchangeOptionID); BaseExchangeHandlerInterface handler = BaseExchangeHandler.retrieveExchangeHandler(user, game, exchangeOption, model.exchangeAmount, Request.GetClientIp()); if (!handler.validate()) { return Json(new { errors = handler.getErrors(), timespan = TimeHelper.epoch() }); } if (!String.IsNullOrEmpty(model.executeExchange)) { if (!handler.exchange().Result) { return Json(new { errors = handler.getErrors(), timespan = TimeHelper.epoch() }); } else { var message = Resources.Resources.Exchanged_successfully; this.Flash(message, FlashLevel.Success); return Json(new { success = true, message = message }); } } return Json(new { success = true, timespan = TimeHelper.epoch() }); }