Ejemplo n.º 1
0
        /// <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
                });
            }
        }
Ejemplo n.º 5
0
        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,
                });
            }
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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());
            }
        }
Ejemplo n.º 8
0
        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());
            }
        }
Ejemplo n.º 10
0
        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());
            }
        }
Ejemplo n.º 11
0
        /// <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);
            }
        }