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 void Delete()
 {
     using (var db = new Database.NPGuildEntities())
     {
         var post = db.Posts.Find(PostId);
         post.Removed = true;
         db.SaveChanges();
     }
 }
        /// <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);
            }
        }
Beispiel #4
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);
            }
        }
        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);
            }
        }