public async Task <UserCurrency> CreateAsync(Guid userId, string currency, bool isPrimary) { UserCurrency userCurrency = new UserCurrency(userId, currency, isPrimary); EntityEntry <UserCurrency> result = await _set.AddAsync(userCurrency); return(result.Entity); }
public async Task <IActionResult> AddCurrencyToUser([FromBody] AddCurrencyToUserModel model) { if (model.Secret != _applicationSettings.DiscordBotSecret) { return(Unauthorized()); } var user = await _userManager.Users.SingleOrDefaultAsync(u => u.DiscordId.StartsWith(model.DiscordId)); if (user == null) { return(NotFound($"No user was found for DiscordId: {model.DiscordId}")); } var lastMessage = _storeRepository.GetMostRecentUserCurrencyByUserIdAndReason(user.Id, model.CurrencyTransactionReason); if (lastMessage == null || (DateTime.UtcNow - lastMessage.DateNoted).TotalSeconds >= _applicationSettings.DiscordPointCooldownInSeconds) { var uc = new UserCurrency { Amount = model.Amount, CurrencyTransactionReasonId = model.CurrencyTransactionReason, CurrencyTypeId = CurrencyType.Normal, DateNoted = DateTime.UtcNow, UserId = user.Id }; await _storeRepository.SaveUserCurrency(uc); } return(Ok()); }
public async Task <bool> DeleteFavCurrency(int currencyId, ClaimsPrincipal user) { bool result = false; var loggedInUser = await _userManager.Users .Include(u => u.UserFavoriteCurrencies) .SingleAsync(u => u.UserName == user.Identity.Name); if (loggedInUser != null) { UserCurrency userCurrency = await _userCurrencyRepository.GetUserCurrency(loggedInUser.Id, currencyId); if (userCurrency != null) { try { _userCurrencyRepository.DeleteUserFavoriteCurrency(userCurrency); result = true; } catch (ArgumentException e) { result = false; } } } return(result); }
/// <summary> /// 获取商品类型 /// </summary> /// <param name="context"></param> private void GetShopHome(HttpContext context) { AjaxJsonValid _ajv = new AjaxJsonValid(); int typeid = GameRequest.GetQueryInt("typeid", 0); int userid = GameRequest.GetQueryInt("userid", 0); _ajv.msg = "获取数据成功"; _ajv.SetValidDataValue(true); DataSet ds = FacadeManage.aideNativeWebFacade.GetAwardHomeList(typeid); UserCurrency Currency = FacadeManage.aideTreasureFacade.GetUserCurrency(userid); IList <AwardInfo> list = DataHelper.ConvertDataTableToObjects <AwardInfo>(ds.Tables[1]); foreach (AwardInfo Info in list) { Info.AwardImg = Info.AwardImg.IndexOf("http://", StringComparison.Ordinal) < 0 ? Fetch.GetUploadFileUrl(Info.AwardImg) : Info.AwardImg; } _ajv.SetDataItem("type", ds.Tables[0]); _ajv.SetDataItem("list", list); _ajv.SetDataItem("AwardTicket", Currency == null?0: Currency.AwardTicket); context.Response.Write(_ajv.SerializeToJson()); }
/// <summary> /// 获取下单信息 /// </summary> /// <param name="context"></param> private void GetOrderAwardInfo(HttpContext context) { int id = GameRequest.GetQueryInt("id", 0); int userid = GameRequest.GetQueryInt("uid", 0); AjaxJsonValid _ajv = new AjaxJsonValid(); if (id == 0) { _ajv.msg = "缺少参数奖品ID"; context.Response.Write(_ajv.SerializeToJson()); return; } UserCurrency Currency = FacadeManage.aideTreasureFacade.GetUserCurrency(userid); _ajv.msg = "获取数据成功"; _ajv.SetValidDataValue(true); DataSet ds = FacadeManage.aideNativeWebFacade.GetOrderAwardInfo(userid, id); _ajv.SetDataItem("award", ds.Tables[0]); _ajv.SetDataItem("uinfo", ds.Tables[1]); _ajv.SetDataItem("AwardTicket", Currency.AwardTicket); context.Response.Write(_ajv.SerializeToJson()); }
public async Task <List <BalancePrimaryCurrencyModel> > GetUserPrimaryCurrencyBalancesAsync(Guid userId) { UserCurrency userCurrency = await _userCurrencyRepository.GetPrimaryCurrencyAsync(userId); IEnumerable <Balance> balances = await _balanceRepository.GetLatestBalancesAsync(userId); List <BalancePrimaryCurrencyModel> result = new List <BalancePrimaryCurrencyModel>(); if (balances.Count() == 0) { return(result); } DateTime effectiveDate = balances.First().EffectiveDate; List <ExchangeRateModel> exchangeRates = await _exchangeRateService.GetExchangeRatesAsync(userId, effectiveDate); foreach (Balance balance in balances) { ExchangeRateModel rate = exchangeRates.First(r => r.BaseCurrency.Equals(balance.Asset.Balance.Currency, StringComparison.OrdinalIgnoreCase) && r.CounterCurrency.Equals(userCurrency.Currency, StringComparison.OrdinalIgnoreCase)); result.Add(new BalancePrimaryCurrencyModel(userCurrency.Currency, balance, rate)); } return(result); }
public UserFixture() { UserId = 123456; EmptyUser = new User { UserTelegramId = 123456 }; UserWithCurrencies = new User { Currencies = new List <UserCurrency> { new UserCurrency { Currency = Currencies.EUR }, new UserCurrency { Currency = Currencies.USD } }, UserTelegramId = 123456 }; UserWithLanguageCode = new User { LanguageCode = "uk" }; RubCurrency = new UserCurrency { Currency = Currencies.RUB }; }
public static string TezToCurrency(this decimal tz, Tezos.MarketData md, UserCurrency currency) { var code = currency.GetDisplayName(); return((tz * md.CurrencyRate((Currency)currency)) .ToString($"###,###,###,###,##0.00 {code}", CultureInfo.InvariantCulture).Trim()); }
public async Task <bool> CheckIsPrimaryAsync(Guid userId, string currency) { UserCurrency userCurrency = await _set.FirstOrDefaultAsync(uc => uc.Currency == currency && uc.UserId == userId); return(userCurrency != null ? userCurrency.IsPrimary : false); }
public async Task <UserCurrencyModel> GetUserCurrencyAsync(Guid userId, string currency) { UserCurrency userCurrency = await _userCurrencyRepository.GetCurrencyAsync(userId, currency); UserCurrencyModel result = new UserCurrencyModel(userCurrency.Currency, userCurrency.IsPrimary); return(result); }
public async Task <UserCurrency> SetPrimaryAsync(Guid userId, string currency) { List <UserCurrency> userCurrencies = await _set.Where(uc => uc.UserId == userId).ToListAsync(); userCurrencies.Select(uc => uc.IsPrimary = false); UserCurrency primary = userCurrencies.First(uc => uc.Currency == currency); return(primary); }
public async Task <UserCurrencyModel> SetUserPrimaryCurrencyAsync(Guid userId, string currency) { UserCurrency userCurrency = await _userCurrencyRepository.SetPrimaryAsync(userId, currency); await _unitOfWork.SaveChangesAsync(); UserCurrencyModel result = new UserCurrencyModel(userCurrency.Currency, userCurrency.IsPrimary); return(result); }
public void Refresh(UserCurrency currency) { foreach (var current in currency.Current) { var indicator = indicators.FirstOrDefault(i => i.Type == current.Type); var max = currency.Max.FirstOrDefault(x => x.Type == current.Type); indicator.Refresh(current.Count, max.Count); } }
public async void InsertUserCurrencyAsync(UserCurrency userCurrency) { if (userCurrency.UserCurrencyId != Guid.Empty) { throw new InvalidOperationException("UserCurrency objects can only be inserted, not updated."); } _context.UserCurrency.Add(userCurrency); await _context.SaveChangesAsync(); }
public async Task SaveUserCurrency(UserCurrency userCurrency) { if (userCurrency.UserCurrencyId == Guid.Empty) { _context.Add(userCurrency); } else { _context.Update(userCurrency); } await _context.SaveChangesAsync(); }
public void Awake() { if (Instance == null) { Instance = GetComponent <UserCurrency> (); } else { Destroy(gameObject); } DontDestroyOnLoad(gameObject); }
/// <summary> /// 领取排行榜奖励 /// </summary> /// <param name="dateid"></param> /// <param name="typeid"></param> private static void ReceiveRankingAward(int dateid, int typeid) { //领取排行榜奖励 Message msg = FacadeManage.aideNativeWebFacade.ReceiveRankingAward(_userid, dateid, typeid, GameRequest.GetUserIP()); if (msg.Success) { _ajv.SetValidDataValue(true); UserCurrency currency = msg.EntityList[0] as UserCurrency; _ajv.SetDataItem("diamond", currency?.Diamond ?? 0); } _ajv.msg = msg.Content; }
protected void Page_Load(object sender, EventArgs e) { Card.Site.Menu = 3; if (!IsPostBack) { //获取登录信息 UserTicketInfo user = userTicket; //身上钻石数 UserCurrency currency = FacadeManage.aideTreasureFacade.GetUserCurrency(user.UserID); lbDiamond.Text = currency?.Diamond.ToString() ?? "0"; //获取今日赠送钻石 lbPresentDiamond.Text = FacadeManage.aideRecordFacade.GetTodayAgentPresentDiamond(user.UserID).ToString(); } }
public async Task <System.Net.HttpStatusCode> AddCrypto(string cryptoname, int userid) { UserCurrency curr = new UserCurrency(); curr.crypto = cryptoname; var json = JsonConvert.SerializeObject(curr); var data = new StringContent(json, Encoding.UTF8, "application/json"); using var client = new HttpClient(); var content = await client.PostAsync("https://crmonapi.azurewebsites.net/crypto/useraddcrypto/" + userid, data); System.Net.HttpStatusCode state = content.StatusCode; return(state); }
public async Task <bool> DeleteAsync(Guid userId, string currency) { UserCurrency userCurrency = await _set.FirstOrDefaultAsync(uc => uc.Currency == currency && uc.UserId == userId); if (userCurrency != null) { _set.Remove(userCurrency); return(true); } else { return(false); } }
protected void Page_Init(object sender, EventArgs e) { if (AbleContext.Current.Store.Currencies.Count > 1) { Store store = AbleContext.Current.Store; HelpText.Text = string.Format(HelpText.Text, store.Name, store.BaseCurrency.Name); UserCurrency.DataSource = store.Currencies; UserCurrency.DataBind(); } else { WidgetPanel.Visible = false; } }
public async Task <IReadOnlyCollection <ExchangeRateProviderModel> > FetchProviderExchangeRatesAsync( Guid userId, string provider) { IEnumerable <Currency> currenciesEntities = await _currencyRepository.GetAllAsync(); List <string> currencies = currenciesEntities.Select(c => c.Name).ToList(); UserCurrency primaryCurrency = await _userCurrencyRepository.GetPrimaryCurrencyAsync(userId); IReadOnlyCollection <ExchangeRateProviderModel> result = await _exchangeRateExternalService .FetchProviderExchangeRateAsync(provider, primaryCurrency.Currency, currencies); return(result); }
public async Task <UserCurrencyModel> AddUserCurrencyAsync(Guid userId, string currency, bool isPrimary) { UserCurrency userCurrency = await _userCurrencyRepository.GetCurrencyAsync(userId, currency); if (userCurrency == null) { userCurrency = await _userCurrencyRepository.CreateAsync(userId, currency, isPrimary); await _unitOfWork.SaveChangesAsync(); } UserCurrencyModel result = new UserCurrencyModel(userCurrency.Currency, userCurrency.IsPrimary); return(result); }
public async Task PurchaseItem(StoreItem item, ApplicationUser user) { var uc = new UserCurrency { Amount = -item.Price, CurrencyTransactionReasonId = CurrencyTransactionReason.Purchase, CurrencyTypeId = CurrencyType.Normal, User = user, DateNoted = DateTime.UtcNow }; _context.UserCurrency.Add(uc); await _context.SaveChangesAsync(); return; }
private UserManager <User> CreateUserManagerMock() { var userManagerMock = new Mock <UserManager <User> >( new Mock <IUserStore <User> >().Object, new Mock <IOptions <IdentityOptions> >().Object, new Mock <IPasswordHasher <User> >().Object, new IUserValidator <User> [0], new IPasswordValidator <User> [0], new Mock <ILookupNormalizer>().Object, new Mock <IdentityErrorDescriber>().Object, new Mock <IServiceProvider>().Object, new Mock <ILogger <UserManager <User> > >().Object); List <User> users = new List <User>(); User testUser = new User() { UserName = _testUserName, Id = _testUserId, UserFavoriteCurrencies = new List <UserCurrency>() }; UserCurrency testUserCurrency = new UserCurrency() { CurrencyId = 1, Currency = null, UserId = testUser.Id, User = testUser, }; Currency testCurrency = new Currency() { Id = _firstTestCurrencyId, Name = _firstTestCurrencyName, FavoritedByUsers = new List <UserCurrency> { testUserCurrency } }; testUserCurrency.Currency = testCurrency; testUser.UserFavoriteCurrencies.Add(testUserCurrency); var mock = users.AsQueryable().BuildMock(); users.Add(testUser); userManagerMock.Setup(x => x.Users).Returns(mock.Object); return(userManagerMock.Object); }
public async Task AddCurrencyForUser(string gamerTag, decimal amount, CurrencyTransactionReason currencyTransactionReason, CurrencyType currencyType = CurrencyType.Normal) { using (var scope = _serviceProvider.CreateScope()) using (var userManager = scope.ServiceProvider.GetRequiredService <UserManager <ApplicationUser> > ()) { var user = userManager.Users.SingleOrDefault(u => string.Equals(gamerTag, u.GamerTag, StringComparison.CurrentCultureIgnoreCase)); var uc = new UserCurrency { Amount = amount, CurrencyTransactionReasonId = currencyTransactionReason, CurrencyTypeId = currencyType, DateNoted = DateTime.UtcNow, UserId = user.Id }; await _storeRepository.SaveUserCurrency(uc); } }
public async Task <List <ExchangeRateModel> > AddExchangeRatesAsync(Guid userId, DateTime effectiveDate) { IEnumerable <Currency> currenciesEntities = await _currencyRepository.GetAllAsync(); IEnumerable <string> currencies = currenciesEntities.Select(c => c.Name); IEnumerable <ExchangeRate> existingRates = await _exchangeRateRepository.GetByEffectiveDateAsync(effectiveDate); List <string> missingCurrencies = currencies.Except(existingRates.Select(r => r.BaseCurrency)).ToList(); List <ExchangeRateModel> result = existingRates.Select(r => new ExchangeRateModel(r)).ToList(); if (missingCurrencies.Any()) { UserCurrency primaryCurrency = await _userCurrencyRepository.GetPrimaryCurrencyAsync(userId); IReadOnlyCollection <ExchangeRateProviderModel> providerRates = await _exchangeRateExternalService .TryFetchRatesAsync(primaryCurrency.Currency, missingCurrencies); if (providerRates != null) { foreach (ExchangeRateProviderModel rate in providerRates) { ExchangeRate exchangeRate = await _exchangeRateRepository .AlterAsync( effectiveDate, rate.BaseCurrency, primaryCurrency.Currency, rate.Buy, rate.Sell, rate.Provider); result.Add(new ExchangeRateModel(exchangeRate)); } await _unitOfWork.SaveChangesAsync(); } } return(result); }
private IUserCurrencyRepository CreateUserCurrencyRepository() { Mock <IUserCurrencyRepository> userCurrencyRepositoryMock = new Mock <IUserCurrencyRepository>(); List <Currency> currenciesToReturn; User testUser = new User() { UserName = _testUserName, Id = _testUserId, UserFavoriteCurrencies = new List <UserCurrency>() }; UserCurrency testUserCurrency = new UserCurrency() { CurrencyId = 1, Currency = null, UserId = testUser.Id, User = testUser, }; Currency testCurrency = new Currency() { Id = _firstTestCurrencyId, Name = _firstTestCurrencyName, FavoritedByUsers = new List <UserCurrency> { testUserCurrency } }; testUserCurrency.Currency = testCurrency; currenciesToReturn = new List <Currency>() { testCurrency }; userCurrencyRepositoryMock.Setup(x => x.GetUserFavoriteCurrencies(testUser.Id)).ReturnsAsync(currenciesToReturn); userCurrencyRepositoryMock.Setup(x => x.GetUserCurrency(testUser.Id, testCurrency.Id)).ReturnsAsync(testUserCurrency); return(userCurrencyRepositoryMock.Object); }
public UserCurrency GetUserCurrency(UUID agentId) { object remoteValue = DoRemoteByURL("CurrencyServerURI", agentId); if (remoteValue != null || m_doRemoteOnly) return (UserCurrency) remoteValue; Dictionary<string, object> where = new Dictionary<string, object> (1); where ["PrincipalID"] = agentId; List<string> query = GD.Query (new [] { "*" }, _REALM, new QueryFilter () { andFilters = where }, null, null, null); UserCurrency currency; if ((query == null) || (query.Count == 0)) { currency = new UserCurrency(agentId, 0, 0, 0, false, 0); UserCurrencyCreate(agentId); return currency; } return new UserCurrency(query); }
void UserCurrencyUpdate(UserCurrency agent, bool full) { if (full) GD.Update (_REALM, new Dictionary<string, object> { { "LandInUse", agent.LandInUse }, { "Tier", agent.Tier }, { "IsGroup", agent.IsGroup }, { "Amount", agent.Amount }, { "StipendsBalance", agent.StipendsBalance } }, null, new QueryFilter () { andFilters = new Dictionary<string, object> { { "PrincipalID", agent.PrincipalID } } }, null, null ); else GD.Update (_REALM, new Dictionary<string, object> { { "LandInUse", agent.LandInUse }, { "Tier", agent.Tier }, { "IsGroup", agent.IsGroup } }, null, new QueryFilter () { andFilters = new Dictionary<string, object> { { "PrincipalID", agent.PrincipalID } } }, null, null); }
public async Task <ObjectResult> AddCrypto([FromBody] UserCurrency item, string id) { UserList dBUserItemsDBFind = JsonConvert.DeserializeObject <UserList>(System.IO.File.ReadAllText(path)); Commands comm = new Commands(); comm.DBCheck(comm, dBUserItemsDBFind, id); if (comm.Exist == false) { Response.StatusCode = 404; return(new ObjectResult(null)); } client = new CoinpaprikaAPI.Client(); var coins = await client.GetCoinsAsync(); string s = JsonConvert.SerializeObject(coins); Value st = JsonConvert.DeserializeObject <Value>(s); Dictionary <string, string> names = new Dictionary <string, string>(); int lenght = st.value.Count; for (int i = 0; i < lenght; i++) { st.value[i].Name = st.value[i].Name.ToLower(); names.Add(st.value[i].Id, st.value[i].Name); } item.crypto = item.crypto.ToLower(); item.crypto = names.FirstOrDefault(x => x.Value == item.crypto).Key; string item1 = item.crypto; if (item1 == null) { Response.StatusCode = 400; return(new ObjectResult(null)); } if (dBUserItemsDBFind.users[comm.Index].Currency == null) { UserMoney p1 = new UserMoney { Crypto = item1, }; List <UserMoney> users = new List <UserMoney>(); users.Add(p1); dBUserItemsDBFind.users[comm.Index].Currency = users; await System.IO.File.WriteAllTextAsync(path, JsonConvert.SerializeObject(dBUserItemsDBFind, Formatting.Indented)); } else { for (int i = 0; i < dBUserItemsDBFind.users[comm.Index].Currency.Count; i++) { if (dBUserItemsDBFind.users[comm.Index].Currency[i].Crypto == item1) { Response.StatusCode = 409; item1 = null; return(new ObjectResult(null)); } } dBUserItemsDBFind.users[comm.Index].Currency.Add(new UserMoney() { Crypto = item1 }); } if (dBUserItemsDBFind.users[comm.Index].Real == null) { dBUserItemsDBFind.users[comm.Index].Real = "usd"; } await System.IO.File.WriteAllTextAsync(path, JsonConvert.SerializeObject(dBUserItemsDBFind, Formatting.Indented)); return(new ObjectResult(null)); }
/// <summary> /// 购买商品 /// </summary> /// <param name="context"></param> private void BuyAward(HttpContext context) { Message msg = new Message(); AjaxJsonValid ajaxJson = new AjaxJsonValid(); int userid = GameRequest.GetQueryInt("userid", 0); //判断登录 //if (!Fetch.IsUserOnline()) //{ // ajaxJson.code = 1; // ajaxJson.msg = "请先登录"; // context.Response.Write(ajaxJson.SerializeToJson()); // return; //} //获取参数 // int typeID = GameRequest.GetQueryInt("TypeID", 0); int awardID = GameRequest.GetQueryInt("awardID", 0); //商品ID int counts = GameRequest.GetQueryInt("counts", 0); //购买数量 AccountsInfo userinfo = FacadeManage.aideAccountsFacade.GetAccountsInfoByUserID(userid); //验证奖品 if (awardID == 0) { ajaxJson.msg = "非常抱歉,你所选购的商品不存在!"; context.Response.Write(ajaxJson.SerializeToJson()); return; } //验证数量 if (counts <= 0) { ajaxJson.msg = "请输入正确的兑换数量!"; context.Response.Write(ajaxJson.SerializeToJson()); return; } if (counts > 100) { ajaxJson.msg = "兑换数量不能超过100!"; context.Response.Write(ajaxJson.SerializeToJson()); return; } AwardInfo awardInfo = FacadeManage.aideNativeWebFacade.GetAwardInfo(awardID); AwardUser awardUser = FacadeManage.aideNativeWebFacade.GetAwardUser(userid); //验证用户 UserCurrency Currency = FacadeManage.aideTreasureFacade.GetUserCurrency(userid); //验证余额 int totalAmount = awardInfo.UnitPrice * counts; //总金额 if (totalAmount <= 0) { ajaxJson.msg = "很抱歉!兑换的奖品配置额度太大或为零"; context.Response.Write(ajaxJson.SerializeToJson()); return; } if (totalAmount > (Currency == null?0:Currency.AwardTicket)) { ajaxJson.msg = "很抱歉!您的奖券数不足,不能兑换该奖品"; ajaxJson.code = -1; context.Response.Write(ajaxJson.SerializeToJson()); return; } //验证库存 if (awardInfo.Inventory <= 0 && awardInfo.AwardType != 1) { ajaxJson.msg = "很抱歉!奖品的库存数不足,请更新其他奖品或者等待补充库存"; context.Response.Write(ajaxJson.SerializeToJson()); return; } //扣除奖牌 Currency.AwardTicket = Currency.AwardTicket - totalAmount; //更新奖牌 AwardOrder awardOrder = new AwardOrder(); awardOrder.OrderID = Fetch.GetOrderIDByPrefix("XT"); awardOrder.UserID = Currency.UserID; awardOrder.GameID = userinfo.GameID; awardOrder.AwardID = awardID; awardOrder.AwardType = awardInfo.AwardType; awardOrder.AwardName = awardInfo.AwardName; awardOrder.UnitPrice = awardInfo.UnitPrice; awardOrder.BuyNum = counts; awardOrder.PayTicket = totalAmount; awardOrder.Gold = awardInfo.Gold; awardOrder.Diamond = awardInfo.Diamond; awardOrder.Compellation = awardUser == null?"": awardUser.Compellation; awardOrder.MobilePhone = awardUser == null ? "" : awardUser.MobilePhone; awardOrder.Province = awardUser == null ? "" : awardUser.Province; awardOrder.City = awardUser == null ? "" : awardUser.City; awardOrder.Area = awardUser == null ? "" : awardUser.Area; awardOrder.DetailAddress = awardUser == null ? "" : awardUser.DetailAddress; awardOrder.ClinetIP = Utility.UserIP; msg = FacadeManage.aideNativeWebFacade.BuyAward(awardOrder); if (msg.Success) { ajaxJson.SetValidDataValue(true); ajaxJson.msg = "兑换成功!实物商品请注意查收"; if (awardInfo.AwardType == 1) { ajaxJson.msg = "兑换成功!将在5分钟内发放至游戏中"; } awardOrder = msg.EntityList[0] as AwardOrder; ajaxJson.SetDataItem("rs", 1); context.Response.Write(ajaxJson.SerializeToJson()); } else { ajaxJson.msg = msg.Content; ajaxJson.SetDataItem("rs", -1); context.Response.Write(ajaxJson.SerializeToJson()); } }