public bool ChangePassword(string username, string oldPassword, string newPassword) { using (ColorettaDataContext context = new ColorettaDataContext()) { User user = context.Users.Where(u => u.Username.Equals(username.ToUpper()) || u.Email.Equals(username.ToUpper())) .SingleOrDefault(); if (user == null) { return false; } else { if (user.Deleted == user.Created) { user.Deleted = null; } user.Password = newPassword; context.SubmitChanges(); return true; } } }
public Guid CreateGame() { using (ColorettaDataContext context = new ColorettaDataContext()) { try { Coloretto.Services.Data.Game game = new Coloretto.Services.Data.Game() { Status = GameStates.Created.ToString(), GameId = Guid.NewGuid(), owner = CurrentUser, Start = DateTime.Now }; game.GamePlayers.Add(new GamePlayer { GameId = game.GameId, Order = 0, Username = CurrentUser }); context.Games.InsertOnSubmit(game); context.SubmitChanges(); return game.GameId; } catch (Exception) { return Guid.Empty; } } }
public byte[] JoinGame(Guid gameId) { using (ColorettaDataContext context = new ColorettaDataContext()) { GameInfo alreadyInGame = GetMyGames().Where(info => info.GameId == gameId).SingleOrDefault(); if (alreadyInGame != null) { } else { _manager.JoinGame(gameId, CurrentUser); } return null; } }
public IEnumerable<GameInfo> GetMyGames() { using (ColorettaDataContext context = new ColorettaDataContext()) { var l = context.GamePlayers.Where(player => player.Username == CurrentUser && (player.Game.Status == GameStates.Created.ToString() || player.Game.Status == GameStates.InProgress.ToString())) .Select(p => new GameInfo { Players = p.Game.GamePlayers.Select(gp => gp.Username).ToList(), GameId = p.Game.GameId, State = (GameStates)Enum.Parse(typeof(GameStates), p.Game.Status, true), Creation = p.Game.Start, Owner = p.Game.owner }) .ToList(); return l; } }
protected void Button_Signup_Click(object sender, EventArgs e) { bool hasProblem = false; if (TextBox_Username.Text.Trim().Length == 0) { TextBox_Username.BorderColor = Color.Red; Panel_UsernameMessage.Visible = true; Panel_UsernameMessage.Controls.Add(new Literal { Text = "* Username is a required field." }); hasProblem = true; } if (TextBox_Email.Text.Trim().Length == 0) { TextBox_Email.BorderColor = Color.Red; Panel_EmailMessage.Visible = true; Panel_EmailMessage.Controls.Add(new Literal { Text = "* Email is a required field." }); hasProblem = true; } else if (TextBox_Email.Text.Trim().Length < 3 || !TextBox_Email.Text.Trim().Contains('@') || !TextBox_Email.Text.Trim().Contains('.')) { TextBox_Email.BorderColor = Color.Red; Panel_EmailMessage.Visible = true; Panel_EmailMessage.Controls.Add(new Literal { Text = "* An email is required to receive a password." }); hasProblem = true; } if (hasProblem) { return; } string password = System.Guid.NewGuid().ToString(); MembershipCreateStatus status = MembershipCreateStatus.Success; MembershipUser user = Membership.CreateUser(TextBox_Username.Text, password, TextBox_Email.Text, null,null,true, out status); if (status == MembershipCreateStatus.DuplicateEmail) { TextBox_Email.BorderColor = Color.Red; Panel_EmailMessage.Visible = true; Panel_EmailMessage.Controls.Add(new Literal { Text = "* This email address already has an account." }); } else if (status == MembershipCreateStatus.DuplicateUserName) { TextBox_Username.BorderColor = Color.Red; Panel_UsernameMessage.Visible = true; Panel_UsernameMessage.Controls.Add(new Literal { Text = "* Username is already taken." }); } else if (status != MembershipCreateStatus.Success) { TextBox_Username.BorderColor = Color.Red; Panel_UsernameMessage.Visible = true; Panel_UsernameMessage.Controls.Add(new Literal { Text = "* There was a problem creating this user." }); } else { if (!CheckBox_Updates.Checked) { using (ColorettaDataContext context = new ColorettaDataContext()) { User udb = context.Users.Where(u => u.Username.Equals(user.UserName.ToUpper())).Single(); udb.Newsletter = false; context.SubmitChanges(); } } string emailBody = string.Format(File.ReadAllText(MapPath("~/users/WelcomeEmail.txt")), TextBox_Username.Text, TextBox_Email.Text, password); SmtpClient client = new SmtpClient(); client.Send("*****@*****.**", TextBox_Email.Text, "Coloretta account information", emailBody); MultiView1.ActiveViewIndex = 1; } }
public override void Validate(string userName, string password) { using (ColorettaDataContext context = new ColorettaDataContext()) { User user = GetUser(userName, false); if (user.Password == password && (user.Deleted == null || user.Deleted.Value == user.Created)) { try { AccessLog log = new AccessLog { Username = userName, AccessPoint = "WCF Service", LoginTime = DateTime.Now, Origination = "Unknown", Success = true, AccessLogId = Guid.NewGuid() }; context.AccessLogs.InsertOnSubmit(log); context.SubmitChanges(); } catch (Exception) { } } else { AccessLog log = new AccessLog { Username = userName, AccessPoint = "WCF Service", LoginTime = DateTime.Now, Origination = "Unknown", Success = false, Duration = new DateTimeOffset(DateTime.Now, TimeSpan.FromMilliseconds(0)) }; context.AccessLogs.InsertOnSubmit(log); context.SubmitChanges(); throw new FaultException(new FaultReason("Unable to verify username and password information.")); } } }
public bool ValidateUser(string username, string password) { using (ColorettaDataContext context = new ColorettaDataContext()) { User user = context.Users.Where(u => u.Username.Equals(username.ToUpper().Trim()) || u.Email.Equals(username.ToUpper().Trim())).SingleOrDefault(); if (user == null || (user.Deleted != null && user.Deleted != user.Created)) { return false; } else { bool valid = user.Password.Equals(password.Trim()); return valid; } } }
public string GetPassword(string username, string answer) { using (ColorettaDataContext context = new ColorettaDataContext()) { User user = context.Users.Where(u => u.Username.Equals(username.ToUpper().Trim()) || u.Email.Equals(username.ToUpper().Trim())).SingleOrDefault(); if (user == null) { return null; } else { return user.Password; } } }
public User GetUser(string username, bool userIsOnline) { using (ColorettaDataContext context = new ColorettaDataContext()) { User user = context.Users.Where(u => u.Username.Equals(username.ToUpper().Trim()) || u.Email.Equals(username.ToUpper().Trim())).SingleOrDefault(); return user; } }
public IEnumerable<User> GetAllUsers(int pageIndex, int pageSize, out int totalRecords) { using (ColorettaDataContext context = new ColorettaDataContext()) { context.ObjectTrackingEnabled = false; int userCount = context.Users.Where(u => u.Deleted == null).Count(); totalRecords = userCount; int actualSkip = Math.Min(userCount, pageSize * pageIndex); int actualTake = Math.Min(userCount - (pageSize * pageIndex), pageSize); var users = context.Users.Where(u => u.Deleted == null).OrderBy(u => u.Username) .Skip(actualSkip) .Take(actualTake); return users.ToList(); } }
public IEnumerable<User> FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords) { using (ColorettaDataContext context = new ColorettaDataContext()) { int userCount = context.Users.Where(u => u.Username.StartsWith(usernameToMatch.ToUpper())).Count(); totalRecords = userCount; if (totalRecords == 0) { return new List<User>(0); } // TODO: I know I'm not covering all scenerios. For now there will just be exceptions if I make stupid requests. int actualSkip = Math.Min(userCount, pageSize * pageIndex); int actualTake = pageSize; if (pageSize > totalRecords) actualTake = totalRecords; var users = context.Users.Where(u => u.Username.StartsWith(usernameToMatch.ToUpper())) .Skip(actualSkip) .Take(actualTake); return users.ToList(); } }
public IEnumerable<User> FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords) { using (ColorettaDataContext context = new ColorettaDataContext()) { int userCount = context.Users.Where(u => u.Email.StartsWith(emailToMatch.ToUpper())).Count(); totalRecords = userCount; int actualSkip = Math.Max(userCount, pageSize * pageIndex); int actualTake = Math.Min(userCount - (pageSize * pageIndex), pageSize); var users = context.Users.Where(u => u.Email.StartsWith(emailToMatch.ToUpper())) .Skip(actualSkip) .Take(actualTake); return users.ToList(); } }
public bool DeleteUser(string username, bool deleteAllRelatedData) { using (ColorettaDataContext context = new ColorettaDataContext()) { var user = context.Users.Where(u => u.Email.Equals(username.ToUpper().Trim()) || u.Username.Equals(username.ToUpper().Trim())) .FirstOrDefault(); if (user == null) { return false; } try { if (deleteAllRelatedData) { context.Users.DeleteOnSubmit(user); context.SubmitChanges(); return true; } else if (user.Deleted.HasValue == false) { user.Deleted = DateTime.UtcNow; context.SubmitChanges(); return true; } else { return false; } } catch (Exception ex) { Debug.Fail("Unable to delete user as requested. (Full data purce == " + deleteAllRelatedData, ex.ToString()); return false; } } }
public User CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) { using (ColorettaDataContext context = new ColorettaDataContext()) { string em = email.Trim(); string uname = username.Trim(); string passwd = password.Trim(); if (uname.Length < 3) { status = MembershipCreateStatus.InvalidUserName; return null; } if (context.Users.Where(u => u.Username.Equals(uname.ToUpper()) || u.Email.Equals(uname.ToUpper())).Any()) { status = MembershipCreateStatus.DuplicateUserName; return null; } else if (context.Users.Where(u => u.Email.Equals(em.ToUpper()) || u.Email.Equals(uname.ToUpper())).Any()) { status = MembershipCreateStatus.DuplicateEmail; return null; } try { DateTime creationDate = DateTime.Now; User user = new User { Username = username.ToUpper(), Password = password, Email = email, Newsletter = true, Created = creationDate, Deleted = creationDate, DisplayName = username }; context.Users.InsertOnSubmit(user); status = MembershipCreateStatus.Success; context.SubmitChanges(); return user; } catch { Debug.Fail("Unable to insert player into database."); status = MembershipCreateStatus.UserRejected; return null; } } }