/// <summary> /// Validates the the session is valid and bumps its Timeout. Throws InvalidSession exception if not valid. Sets Session property if session is valid. /// </summary> /// <param name="session"></param> private void ValidateSession(Guid session) { ClearOldSessions(); User = (from s in _context.DB_LoginSessions where s.Id == session select s.DB_User).FirstOrDefault(); if (User == null) { throw new FOEServiceException(FOEStatusCodes.InvalidSession); } try { lock (validateLock) { DataAccess.Database.DB_LoginSession da_session = User.DB_LoginSessions.FirstOrDefault(s => s.Id == session); if (da_session == null) { throw new FOEServiceException(FOEStatusCodes.InvalidSession); } da_session.Timeout = DateTime.UtcNow + TimeSpan.FromHours(1); _context.SubmitChanges(); Session = session; } } catch (ChangeConflictException) { // This can happen if multiple request is performed // simultaneously on the same session. // Verify that the session is still valid // and accept the missing update. _context.Refresh(RefreshMode.OverwriteCurrentValues, User.DB_LoginSessions); if (User.DB_LoginSessions.FirstOrDefault(s => s.Id == session) == null) { throw new FOEServiceException(FOEStatusCodes.InvalidSession); } } }
/// <summary> /// 从Token获取用户信息 /// </summary> /// <param name="context"></param> /// <returns></returns> public static async Task <Userinfo> GetUserAsync(this HttpContext context) { AuthenticateResult result = await context.AuthenticateAsync(JwtBearerDefaults.AuthenticationScheme); if (result.Principal == null) { context.Response.ContentType = "application/json"; await context.Response.WriteAsync(new Basemessage() { state = 500, message = "Token签名错误,请检查是否授权" }.ToJson()); return(new Userinfo()); } var ClaimResult = result.Principal.Claims.ToList().FirstOrDefault(x => x.Type == JwtClaimTypes.Id); var userId = ClaimResult != null?ClaimResult.Value.ToInt() : 0; var userInfo = new DB_User().GetUser(userId); if (userId == 0 || userInfo == null) { context.RemoveCookie(CoreConfiguration.JwtCookiesTokenKey); context.Response.ContentType = "application/json"; await context.Response.WriteAsync(new Basemessage() { state = 500, message = "Token签名错误,未找到该用户信息" }.ToJson()); return(new Userinfo()); } userInfo.group = new DB_Group().Get(userInfo.Power_ID); return(userInfo); }
public HttpResponseMessage deleteUser([FromBody] USER u) { Result <USER> ru = new Result <USER>(); int result = 0; try { result = DB_User.deleteUser(u); if (result == 1) { ru.code = "2040"; ru.success = "true"; ru.message = "删除成功!"; } else { ru.code = "2041"; ru.success = "false"; ru.message = "删除失败"; } } catch (Exception e) { ru.code = "2042"; ru.success = "false"; ru.message = e.Message; } ru.systemTime = Conn.GetTimeStamp(); ru.data = null; return(Conn.toJson(ru)); }
public bool Buy(int id, int userid) { DB_Product product = db.Products.GetItem(id); DB_User user = db.Users.GetItem(userid); if (product == null || user == null) { throw new ArgumentNullException(); } foreach (DB_Product p in user.Products) { if (p == product) { return(false); } else { user.Products.Add(product); db.Users.Update(user); db.Save(); return(true); } } return(false); }
public HttpResponseMessage queryUser() { Result <USER> ru = new Result <USER>(); List <USER> luser = new List <USER>(); try { luser = DB_User.getUser(); if (luser.Count > 0) { ru.code = "2020"; ru.success = "true"; ru.message = "获取成功!"; } else { ru.code = "2021"; ru.success = "false"; ru.message = "无数据"; } } catch (Exception e) { ru.code = "2022"; ru.success = "false"; ru.message = e.Message; } ru.systemTime = Conn.GetTimeStamp(); ru.data = luser; return(Conn.toJson(ru)); }
public UserBLL(WindownApplication _app) { app = _app; OperateDBUser = new DB_User(app.UserDao, app.UserFuncDao); OperateDBUserGroup = new DB_UserGroup(app.UserGroupDao); OperateDBUserGroupFunc = new DB_UserGroupFunc(app.UserFuncDao); OperateDBFunctionCode = new DB_FunctionCode(app.FunctionCodeDao); }
/// <summary> /// Looks for all invites to the provided game session. If all are accepted, start the game. /// </summary> /// <param name="guid"></param> public void AttemptGameStart(DB_Game da_game) { var gameInvites = from i in _context.DB_Invites where i.GameId == da_game.Id select i; if (gameInvites.Count <DB_Invite>() < 5) { throw new FOEServiceException(FOEStatusCodes.InternalError, "Game start attempted with fewer than 5 players"); } //Check if all invites are accepted. else we just wont start the game. bool allInvitesAccepted = true; List <DB_User> invitedUsers = new List <DB_User>(); foreach (DB_Invite invite in gameInvites) { if (invite.Status != (int)DB_Invite.InviteStatus.Accepted) { allInvitesAccepted = false; break; } invitedUsers.Add((from u in _context.DB_Users where u.Id == invite.InvitedUser.Value select u).FirstOrDefault()); } if (allInvitesAccepted == true) { //Randomize which user that plays which nation. //TODO: Add ability to pick nations? Random rnd = new Random(); DB_User da_user = invitedUsers.OrderBy(x => rnd.Next()).FirstOrDefault(); da_game.GermanPlayer = da_user.Id; SendEventToUser(da_user.ToUser(FOEDataInclusion.Everything), GameEvents.GameStarted); invitedUsers.Remove(da_user); da_user = invitedUsers.OrderBy(x => rnd.Next()).FirstOrDefault(); da_game.JapanesePlayer = da_user.Id; SendEventToUser(da_user.ToUser(FOEDataInclusion.Everything), GameEvents.GameStarted); invitedUsers.Remove(da_user); da_user = invitedUsers.OrderBy(x => rnd.Next()).FirstOrDefault(); da_game.AmericanPlayer = da_user.Id; SendEventToUser(da_user.ToUser(FOEDataInclusion.Everything), GameEvents.GameStarted); invitedUsers.Remove(da_user); da_user = invitedUsers.OrderBy(x => rnd.Next()).FirstOrDefault(); da_game.EnglishPlayer = da_user.Id; SendEventToUser(da_user.ToUser(FOEDataInclusion.Everything), GameEvents.GameStarted); invitedUsers.Remove(da_user); da_game.RussianPlayer = invitedUsers.FirstOrDefault().Id; SendEventToUser(invitedUsers.FirstOrDefault().ToUser(FOEDataInclusion.Everything), GameEvents.GameStarted); da_game.IsActive = true; da_game.Phase = (int)DB_Game.GamePhases.Buy; da_game.Turn = 0; _context.DB_Invites.DeleteAllOnSubmit(gameInvites); _context.SubmitChanges(); } }
public FriendStatus Fill(DB_User user, OnlineStatus status) { ID = user.ID; PlayerID = 0; Status = status; UserName = user.Name; CharacterName = "none"; return(this); }
public void Start() { DontDestroyOnLoad(gameObject); users = FindObjectOfType <DB_User>(); scene = SceneManager.GetActiveScene(); Req_Data_Country(); }
/// <summary> /// Looks up the loginSession provided and returns the user saved in that session. /// </summary> /// <param name="session"></param> /// <returns></returns> public User GetUserBySession(Guid session) { DB_User da_user = (from s in _context.DB_LoginSessions where s.Id == session select s.DB_User).FirstOrDefault(); if (da_user == null) { throw new FOEServiceException(FOEStatusCodes.InvalidSession); } return(da_user.ToUser(FOEDataInclusion.Everything)); }
/// <summary> /// returns a User if found in the database, else throws an exception. /// </summary> /// <param name="userName"></param> /// <returns></returns> public User GetUserByUserName(string userName) { DB_User da_user = (from u in _context.DB_Users where u.UserName == userName select u).FirstOrDefault(); if (da_user == null) { throw new FOEServiceException(FOEStatusCodes.UnknownUser, string.Format("Could not find user {0}.", userName)); } return(da_user.ToUser(FOEDataInclusion.Everything)); }
public void CreateUser(User user) { var newUser = new DB_User() { Name = user.Name, Surname = user.Surname, Status = user.Status, Login = user.Login, Password = user.Password }; db.Users.Create(newUser); db.Save(); }
/// <summary> /// Adds a user to the database /// </summary> /// <param name="userName"></param> /// <param name="password"></param> /// <param name="email"></param> /// <returns></returns> public User AddUser(string userName, string password, string email) { DB_User da_user = DB_User.FromUser(new User() { Password = password, UserName = userName }, _context); if (da_user == null) { throw new FOEServiceException(FOEStatusCodes.InternalError, "Creation of user failed."); } return(da_user.ToUser(FOEDataInclusion.Everything)); }
private void Start() { DontDestroyOnLoad(gameObject); apps = FindObjectOfType <AppMessage>(); users = FindObjectOfType <DB_User>(); products = FindObjectOfType <DB_Product>(); countries = FindObjectOfType <DB_Country>(); product_groups = FindObjectOfType <DB_ProductGroup>(); scene_history = FindObjectOfType <SceneHistory>(); scene = SceneManager.GetActiveScene(); Initialized(); }
public void EditUser(User user) { var temp = new DB_User() { Name = user.Name, Surname = user.Surname, Status = user.Status, Login = user.Login, Password = user.Password }; db.Users.Update(temp); db.Save(); }
public void TestGetUser() { Data(); List <DB_User> users = new List <DB_User>(); DB_User u1 = new DB_User(); users.Add(u1); mockConteiner.Setup(a => a.Users).Returns(mockUsers.Object); mockUsers.Setup(a => a.Get()).Returns(users); User result = new User(); result = Mapper.Map <DB_User, User>(u1); NUnit.Framework.Assert.AreEqual(result.Id, UserO.GetUser(0).Id); }
public void TestCheckUser() { ResetData(); List <DB_User> users = new List <DB_User>(); DB_User user1 = new DB_User(); DB_User user2 = new DB_User(); string login = "******"; user1.Login = login; users.Add(user1); users.Add(user2); mockUsers.Setup(a => a.Get()).Returns(users); var result = UserO.CheckUser(login); Assert.AreEqual(true, result); }
public void TestCheckUser() { Mapper_Config.Initialize(); Data(); List <DB_User> users = new List <DB_User>(); DB_User u1 = new DB_User(); DB_User u2 = new DB_User(); users.Add(u1); users.Add(u2); mockConteiner.Setup(a => a.Users).Returns(mockUsers.Object); mockUsers.Setup(a => a.Get()).Returns(users); List <User> result = new List <User>(); result = Mapper.Map <List <DB_User>, List <User> >(users); NUnit.Framework.Assert.AreEqual(true, UserO.CheckUser(null, null)); }
public HttpResponseMessage register([FromBody] USER u) { Result <USER> ru = new Result <USER>(); int result = 0; string id; List <USER> lu = new List <USER>(); try { result = DB_User.register(u, out id); if (result == 1) { ru.code = "2010"; ru.success = "true"; ru.message = "注册成功!"; u.id = id; } else if (result == -1) { ru.code = "2013"; ru.success = "false"; ru.message = "用户名已存在"; } else { ru.code = "2011"; ru.success = "false"; ru.message = "注册失败"; } } catch (Exception e) { ru.code = "2012"; ru.success = "false"; ru.message = e.Message; } lu.Add(u); ru.systemTime = Conn.GetTimeStamp(); ru.data = lu; return(Conn.toJson(ru)); }
public void TestGetUsers() { ResetData(); List <DB_User> users = new List <DB_User>(); DB_User user1 = new DB_User(); DB_User user2 = new DB_User(); users.Add(user1); users.Add(user2); mockUsers.Setup(a => a.Get()).Returns(users); List <User> expected = new List <User>(); expected = Mapper.Map <List <DB_User>, List <User> >(users); var result = UserO.GetUsers(); Assert.AreEqual(expected.Capacity, result.Capacity); }
public ActionResult Register(string username, string password) { if (db.DB_User.Any(u => u.Username.Equals(username))) { return(Json(new { error = "Username already taken!" })); } DB_User user = new DB_User(); user.Username = username; user.Password = Encryption.GetMD5Hash(password); user.UserType = 0; db.DB_User.Add(user); db.SaveChanges(); Session["Username"] = username; return(Json(new { url = "/DB_Favourite/Index" })); }
public void TestChangeBet() { BLL_AutoMapper.Initialize(); ResetData(); int lot_id = 1; int user_id = 1; int bet = 100; DB_Lot lot1 = new DB_Lot(); DB_User user1 = new DB_User(); lot1.LotId = lot_id; lot1.Step = 0; user1.UserId = user_id; mockUsers.Setup(a => a.FindById(user_id)).Returns(user1); mockLots.Setup(a => a.FindById(lot_id)).Returns(lot1); var result = LotO.ChangeBet(bet, user_id, lot_id); Assert.AreEqual(true, result); }
public void TestCheckUser3() { ResetData(); List <DB_User> users = new List <DB_User>(); DB_User user1 = new DB_User(); DB_User user2 = new DB_User(); string name = "name"; string surname = "surname"; string patr = "patr"; user1.Name = name; user1.Surname = surname; user1.Patronymic = patr; users.Add(user1); users.Add(user2); mockUsers.Setup(a => a.Get()).Returns(users); var result = UserO.CheckUser(name, surname, patr); Assert.AreEqual(true, result); }
public void TestCheckUser2() { ResetData(); List <DB_User> users = new List <DB_User>(); DB_User user1 = new DB_User(); DB_User user2 = new DB_User(); string login = "******"; string password = "******"; user1.Login = login; user1.Password = password; user1.UserId = 1; users.Add(user1); users.Add(user2); mockUsers.Setup(a => a.Get()).Returns(users); int expected = Mapper.Map <DB_User, User>(user1).UserId; var result = UserO.CheckUser(login, password).UserId; Assert.AreEqual(expected, result); }
public HttpResponseMessage modUser([FromBody] USER u) { Result <USER> ru = new Result <USER>(); int result = 0; try { result = DB_User.modUser(u); if (result == 1) { ru.code = "2030"; ru.success = "true"; ru.message = "修改成功!"; } else if (result == -1) { ru.code = "2033"; ru.success = "false"; ru.message = "此手机号已注册过"; } else { ru.code = "2031"; ru.success = "false"; ru.message = "修改失败"; } } catch (Exception e) { ru.code = "2032"; ru.success = "false"; ru.message = e.Message; } ru.systemTime = Conn.GetTimeStamp(); ru.data = null; return(Conn.toJson(ru)); }
public HttpResponseMessage login([FromBody] USER u) { Result <USER> ru = new Result <USER>(); USER ou = new USER(); int result = 0; List <USER> lu = new List <USER>(); try { result = DB_User.Login(u, out ou); lu.Add(ou); if (result == 1) { ru.code = "2000"; ru.success = "true"; ru.message = "登录成功!"; } else { ru.code = "2001"; ru.success = "false"; ru.message = "登录失败"; } } catch (Exception e) { ru.code = "2002"; ru.success = "false"; ru.message = e.Message; } ru.systemTime = Conn.GetTimeStamp(); ru.data = lu; return(Conn.toJson(ru)); }
public static bool SelectUser(int id, out DB_User entry) { var locked = false; entry = DB_User.Empty; if (!IsConnected) { return(false); } try { using (MySqlCommand _cmd = _connection.CreateCommand()) { _cmd.CommandText = $"SELECT login, phash, access, session FROM {tb_01} WHERE id={id};"; Monitor.Enter(_connection, ref locked); using (MySqlDataReader _result = _cmd.ExecuteReader()) { if (_result.HasRows && _result.Read()) { entry.ID = id; entry.Name = _result.GetString(0); entry.Hash = _result.GetString(1); entry.Access = (AccessLevel)_result.GetByte(2); entry.SID = _result.GetNullString(3); return(true); } } } return(false); } catch { return(false); } finally { if (locked) { Monitor.Exit(_connection); } } }
public HttpResponseMessage getTotalAmount([FromBody] USER u) { Result <USER> ru = new Result <USER>(); USER ou = new USER(); List <USER> result = new List <USER>(); try { result = DB_User.getTotalAmount(u); if (result.Count > 0) { ru.code = "2050"; ru.success = "true"; ru.message = "获取成功!"; } else { ru.code = "2051"; ru.success = "false"; ru.message = "无资料"; } } catch (Exception e) { ru.code = "2052"; ru.success = "false"; ru.message = e.Message; } ru.systemTime = Conn.GetTimeStamp(); ru.data = result; return(Conn.toJson(ru)); }