/// <summary> /// Validates the user credentials. /// </summary> /// /// <returns> /// Returns true if the email and passwords match an active account /// in the system. /// </returns> /// public bool Login() { using (var db = new Database.NPGuildEntities()) { var member = db.Users.FirstOrDefault(f => f.Email == Email); if (member == null) { return(false); } var hashed = ComputeHMAC_SHA256(Password, member.PasswordSalt); if (member.Password.SequenceEqual(hashed)) { Resources.MySession.Email = Email; Resources.MySession.CharacterName = member.CharacterName; Resources.MySession.UserLevel = member.UserLevelId; Resources.MySession.UserId = member.UserId; var forumUser = db.ForumUsers.FirstOrDefault(f => f.UserName == member.CharacterName && f.Email == member.Email); Resources.MySession.aspnetforumUserID = forumUser.UserID; Resources.MySession.aspnetforumUserName = member.CharacterName; return(true); } else { return(false); } } }
public void Delete() { using (var db = new Database.NPGuildEntities()) { var post = db.Posts.Find(PostId); post.Removed = true; db.SaveChanges(); } }
public void SaveChanges() { using (var db = new Database.NPGuildEntities()) { var allEventIds = db.Events.Select(f => f.EventId); var recsToRemove = new List <int>(); foreach (var id in allEventIds) { if (!Events.Any(f => f.EventId == id)) { recsToRemove.Add(id); } } foreach (var id in recsToRemove) { var rec = db.Events.Find(id); rec.Removed = true; db.SaveChanges(); } db.SaveChanges(); foreach (var item in Events) { if (item.EventId > 0) { var rec = db.Events.Find(item.EventId); rec.Start = item.StartDate.Value; rec.End = item.EndDate.Value; rec.Description = item.Description; rec.Leader = item.Leader; db.SaveChanges(); } else { var rec = new Database.Event() { Start = item.StartDate.Value, End = item.EndDate.Value, Description = item.Description, Leader = item.Leader, Removed = false }; db.Events.Add(rec); db.SaveChanges(); item.EventId = rec.EventId; } } } }
public static DeletePostViewModel GetDetails(int id) { using (var db = new Database.NPGuildEntities()) { var post = db.Posts.Find(id); return(new DeletePostViewModel() { PostId = post.PostId, Title = post.Title }); } }
public static EditPostModel GetDetails(int id) { using (var db = new Database.NPGuildEntities()) { var post = db.Posts.Find(id); return(new EditPostModel() { PostId = id, Content = post.Content, Title = post.Title, }); } }
public int UpdatePost() { using (var db = new Database.NPGuildEntities()) { var post = db.Posts.Find(PostId); post.Content = Content; post.Title = Title; post.EditedDateTime = DateTime.UtcNow; post.Removed = false; db.SaveChanges(); return(post.PostId); } }
public static List <PostItemModel> GetPosts() { using (var db = new Database.NPGuildEntities()) { var posts = from p in db.Posts where p.Removed == false select new PostItemModel { PostId = p.PostId, Title = p.Title, Author = p.User.CharacterName, PostDate = p.TimeStamp }; return(posts.OrderByDescending(f => f.PostDate).ToList()); } }
public int CreatePost() { using (var db = new Database.NPGuildEntities()) { var post = new Database.Post() { TimeStamp = DateTime.UtcNow, Content = Content, AuthorId = Resources.MySession.UserId.Value, Title = Title, Removed = false }; db.Posts.Add(post); db.SaveChanges(); return(post.PostId); } }
//public DateTime GetStartDate() //{ // return new DateTime(StartDate.Value.Year, StartDate.Value.Month, StartDate.Value.Day, StartTime.Hours, StartTime.Minutes, StartTime.Seconds); //} //public DateTime GetEndDate() //{ // return new DateTime(EndDate.Value.Year, EndDate.Value.Month, EndDate.Value.Day, EndTime.Hours, EndTime.Minutes, EndTime.Seconds); //} public static List <EventItemModel> GetItems() { using (var db = new Database.NPGuildEntities()) { var start = DateTime.UtcNow.AddDays(-1); var easternZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); start += easternZone.BaseUtcOffset; start.AddHours(-12); var data = from p in db.Events where p.Removed == false && p.Start > start select new { p.EventId, p.Start, p.End, p.Description, p.Leader }; var events = new List <EventItemModel>(); foreach (var item in data.ToList()) { events.Add(new EventItemModel() { EventId = item.EventId, StartDate = item.Start, //StartTime = item.Start.TimeOfDay, EndDate = item.End, //EndTime = item.End.TimeOfDay, Description = item.Description, Leader = item.Leader }); } return(events.OrderBy(f => f.StartDate).ToList()); } }
public static (int, List <PostModel>) GetPosts(int pageIndex, int recsPerPage) { using (var db = new Database.NPGuildEntities()) { var posts = from p in db.Posts where p.Removed == false select new PostModel { Title = p.Title, Content = p.Content, Author = p.User.CharacterName, PostDate = p.TimeStamp, EditedDate = p.EditedDateTime }; var maxPages = (int)Math.Ceiling((decimal)posts.Count() / recsPerPage); pageIndex = pageIndex > maxPages ? maxPages : pageIndex; pageIndex = pageIndex < 0 ? 0 : pageIndex; return(maxPages, posts.OrderByDescending(f => f.PostDate).Skip(pageIndex * recsPerPage).Take(recsPerPage).ToList()); } }
/// <summary> /// Creates a new member from the current state of the model. /// </summary> /// /// <returns> /// Returns the database id of the member. /// </returns> /// public int CreateMember() { using (var db = new Database.NPGuildEntities()) { if (db.Users.Any(f => f.Email == Email)) { throw new Exception("There is already a member with that email!"); } var member = new Database.User() { Email = Email, CharacterName = CharacterName, UserLevelId = 1 // Guest }; member.PasswordSalt = GenerateSalt(); member.Password = ComputeHMAC_SHA256(Password, member.PasswordSalt); db.Users.Add(member); db.SaveChanges(); var forumUser = new Database.ForumUser() { UserName = CharacterName, Email = Email, Password = System.Text.Encoding.Unicode.GetString(member.Password), RegistrationDate = DateTime.UtcNow, Disabled = false, ActivationCode = string.Empty }; db.ForumUsers.Add(forumUser); db.SaveChanges(); return(member.UserId); } }