Esempio n. 1
0
 public void AddChatToDatabase(Chat chat)
 {
     chat transposed = Mapper.Map<Chat, chat>(chat);
     db_mysql db = new db_mysql();
     db.chats.Add(transposed);
     db.SaveChanges();
 }
Esempio n. 2
0
        public List<Chat> PopulateChatMessagesFromDatabase(string room)
        {
            // check the database to see if there
            // are any -- load the most recent 200
            // if yes

            db_mysql db = new db_mysql();

            chat most_recent = (from m in db.chats orderby m.id descending select m).First();

            List<chat> database_chats = new List<chat>();

            if (room == "")
            {
                database_chats = (from m in db.chats
                                  orderby m.id ascending
                                  where m.id > most_recent.id - 200
                                  select m).ToList();

            }
            else
            {
                database_chats = (from m in db.chats
                                  orderby m.id ascending
                                  where m.id > most_recent.id - 200
                                  && m.Room.Equals(room)
                                  select m).ToList();
            }

            return Mapper.Map<List<chat>, List<Chat>>(database_chats);
        }
Esempio n. 3
0
        public int Vote(int letter_id, string user_ip)
        {
            db_mysql db_mysql = new db_mysql();
            db_mssql db_mssql = new db_mssql();

            letter letterToView = (from l in db_mysql.letters where l.Id == letter_id select l).FirstOrDefault();

            vote loveVote = new vote();

            loveVote.letterID = letter_id;
            loveVote.voterIP = user_ip;
            loveVote.voteValue = 1;
            loveVote.voteDate = DateTime.Now;

            db_mssql.votes.Add(loveVote);
            db_mssql.SaveChanges();

            db_mysql.letters.Attach(letterToView);
            var letter = db_mysql.Entry(letterToView);

            letter.Property(e => e.letterUp).IsModified = true;
            letterToView.letterUp = (short)(letterToView.letterUp + 1);

            db_mysql.SaveChanges();

            return (int)letterToView.letterUp;
        }
Esempio n. 4
0
        public void AddLetter(Letter letter)
        {
            db_mysql db_mysql = new db_mysql();

            if (letter.Id == 0)
            {
                letter last_letter = db_mysql.letters.OrderByDescending(u => u.Id).FirstOrDefault();
                letter.Id = last_letter.Id + 1;
            }

            letter new_letter = Mapper.Map<Letter, letter>(letter);
            db_mysql.letters.Add(new_letter);
            db_mysql.SaveChanges();
        }
Esempio n. 5
0
        public Letter PublishQueue()
        {
            db_mssql db_mssql = new db_mssql();
            db_mysql db_mysql = new db_mysql();

            List<Queued> qry = (from m in db_mssql.Queueds where m.State == 0 orderby m.LetterID ascending select m).ToList();
            if (qry.Count() == 0)
            {
                return null;
            }

            Queued latest_unpublished_queued = qry.First();

            letter latest_front_page = (from l in db_mysql.letters where l.letterLevel == 1 orderby l.letterPostDate descending select l).First();
            letter lucky_letter = (from l in db_mysql.letters where l.Id == latest_unpublished_queued.LetterID select l).FirstOrDefault();

            if (lucky_letter == null)
            {
                return null;
            }

            db_mysql.letters.Attach(lucky_letter);
            var letter = db_mysql.Entry(lucky_letter);
            letter.Property(e => e.letterLevel).IsModified = true;
            lucky_letter.letterLevel = 1;

            db_mssql.Queueds.Attach(latest_unpublished_queued);
            var queued = db_mssql.Entry(latest_unpublished_queued);
            queued.Property(e => e.State).IsModified = true;
            latest_unpublished_queued.State = 1;

            db_mysql.SaveChanges();
            db_mssql.SaveChanges();

            edit new_edit = new edit();
            new_edit.editComment = "Published from queue.";
            new_edit.previousLetter = lucky_letter.letterMessage;
            new_edit.newLetter = lucky_letter.letterMessage;
            new_edit.editDate = DateTime.Now;
            new_edit.letterID = lucky_letter.Id;
            new_edit.status = "accepted";
            new_edit.editor = "auto post";
            db_mssql.edits.Add(new_edit);
            db_mssql.SaveChanges();

            return Mapper.Map<letter, Letter>(lucky_letter);
        }
Esempio n. 6
0
        public void AddComment(Comment comment, Letter letter)
        {
            letter transposed = Mapper.Map<Letter, letter>(letter);

            db_mysql db_mysql = new db_mysql();
            db_mysql.letters.Attach(transposed);
            var letter_obj = db_mysql.Entry(transposed);

            if (comment.level > -1)
            {
                letter_obj.Property(e => e.letterComments).IsModified = true;
                transposed.letterComments = transposed.letterComments + 1;
            }

            db_mysql.comments.Add(Mapper.Map<Comment, comment>(comment));
            db_mysql.SaveChanges();
        }
Esempio n. 7
0
        public bool editLetter(int letter_id, string new_letter, string userip, string cookie_value, string user_name, bool is_user_mod)
        {
            db_mysql db_mysql = new db_mysql();
            db_mssql db_mssql = new db_mssql();

            Letter lucky = getLetter(letter_id);
            letter lucky_letter = Mapper.Map<Letter, letter>(lucky);

            HtmlUtility utility = HtmlUtility.Instance;

            edit new_edit = new edit();

            new_edit.editComment = "Edited by " + user_name;
            new_edit.editor = user_name;

            new_edit.editDate = DateTime.Now;

            String letter_contents = utility.SanitizeHtml(new_letter);
            letter_contents = letter_contents.Replace("text-decoration%3a%20line-through%3b", "text-decoration: line-through");
            letter_contents = letter_contents.Replace("text-decoration%3a%20underline%3b", "text-decoration: underline;");

            new_edit.newLetter = letter_contents;

            new_edit.previousLetter = lucky.letterMessage;
            new_edit.status = "accepted";
            new_edit.letterID = lucky.Id;
            new_edit.editDate = DateTime.UtcNow;

            db_mssql.edits.Add(new_edit);

            db_mysql.letters.Attach(lucky_letter);
            var letter = db_mysql.Entry(lucky_letter);

            letter.Property(e => e.letterMessage).IsModified = true;
            lucky_letter.letterMessage = letter_contents;

            db_mysql.SaveChanges();

            db_mssql.SaveChanges();

            return true;
        }
Esempio n. 8
0
        public List<Letter> getQueuedLetters()
        {
            db_mssql db_mssql = new db_mssql();
            db_mysql db_mysql = new db_mysql();

            List<Queued> qry = (from m in db_mssql.Queueds where m.State == 0 orderby m.LetterID ascending select m).ToList();
            List<letter> queued_letters = new List<letter>();

            foreach (Queued que in qry)
            {
                letter queued_letter = (from m in db_mysql.letters where m.Id == que.LetterID select m).FirstOrDefault();

                if (queued_letter != null)
                {
                    queued_letters.Add(queued_letter);
                }
            }

            return Mapper.Map<List<letter>, List<Letter>>(queued_letters);
        }
Esempio n. 9
0
        public string GetStats(string name)
        {
            String stats = "";
            db_mysql db = new db_mysql();

            if (name == "")
            {
                // return general stats
                stats = (from m in db.chats select m).Count() + " chats total.";
            }
            else
            {
                // ugh bad seth
                String fixed_name = name + ":";

                // return user based stats
                stats = (from m in db.chats where m.Nick.ToLower().Equals(fixed_name.ToLower()) select m).Count() + " chats from '" + name + "'";
            }

            return stats;
        }
Esempio n. 10
0
        public bool editComment(string commentText, int id, string commenter_guid, string user_name)
        {
            db_mysql db_mysql = new db_mysql();
            db_mssql db_mssql = new db_mssql();

            Comment lucky_comment = getComment(id);
            comment comment = Mapper.Map<Comment, comment>(lucky_comment);

            HtmlUtility utility = HtmlUtility.Instance;

            edit new_edit = new edit();

            new_edit.editComment = "Comment edited by " + user_name;
            new_edit.editor = user_name;

            new_edit.editDate = DateTime.Now;

            String comment_contents = utility.SanitizeHtml(commentText);

            new_edit.newLetter = comment_contents;

            new_edit.previousLetter = lucky_comment.commentMessage;
            new_edit.status = "accepted";
            new_edit.letterID = lucky_comment.letterId;
            new_edit.editDate = DateTime.UtcNow;

            db_mssql.edits.Add(new_edit);

            db_mysql.comments.Attach(comment);
            var comment_var = db_mysql.Entry(comment);

            comment_var.Property(e => e.commentMessage).IsModified = true;
            comment.commentMessage = comment_contents;

            db_mysql.SaveChanges();
            db_mssql.SaveChanges();

            return true;
        }
Esempio n. 11
0
        public void Queue(int letter_id, string user_name)
        {
            db_mssql db_mssql = new db_mssql();
            db_mysql db_mysql = new db_mysql();

            letter lucky = (from m in db_mysql.letters where m.Id.Equals(letter_id) select m).FirstOrDefault();

            if (lucky != null)
            {

                edit new_edit = new edit();

                new_edit.editComment = "Added to queue by " + user_name;
                new_edit.editor = user_name;

                new_edit.newLetter = lucky.letterMessage;
                new_edit.previousLetter = lucky.letterMessage;
                new_edit.status = "accepted";
                new_edit.letterID = lucky.Id;
                new_edit.editDate = DateTime.UtcNow;

                Queued new_queued_letter = new Queued();

                new_queued_letter.AddedToQueueDate = DateTime.UtcNow;
                new_queued_letter.LetterID = lucky.Id;
                new_queued_letter.PostDate = DateTime.UtcNow;
                new_queued_letter.QueueID = lucky.Id;
                new_queued_letter.State = 0;

                db_mssql.Queueds.Add(new_queued_letter);
                db_mssql.edits.Add(new_edit);
                db_mssql.SaveChanges();

            }
        }
Esempio n. 12
0
        public List<Comment> getComments(int id, Boolean include_hidden)
        {
            db_mysql db_mysql = new db_mysql();
            List<comment> comments = new List<comment>();

            if (include_hidden == true)
            {

                comments = (from m in db_mysql.comments where m.letterId.Equals(id) && m.level != -2 select m).ToList();

            }
            else
            {
                comments = (from m in db_mysql.comments where m.letterId.Equals(id) && m.level >= 0 select m).ToList();
            }

            return Mapper.Map<List<comment>, List<Comment>>(comments);
        }
Esempio n. 13
0
 public int getCommentCount()
 {
     db_mysql db_mysql = new db_mysql();
     return db_mysql.comments.Count();
 }
Esempio n. 14
0
 public Comment getComment(int id)
 {
     db_mysql db_mysql = new db_mysql();
     comment selected_comment = (from m in db_mysql.comments where m.Id.Equals(id) select m).FirstOrDefault();
     return Mapper.Map<comment, Comment>(selected_comment);
 }
Esempio n. 15
0
        public List<Core.Model.Letter> search(string terms)
        {
            db_mysql db_mysql = new db_mysql();

            List<letter> results = new List<letter>();
            results = db_mysql.quickSearch(terms).ToList();

            return Mapper.Map<List<letter>, List<Letter>>(results);
        }
Esempio n. 16
0
        public bool unhideComment(int id, string commenter_guid, string user_name)
        {
            db_mysql db_mysql = new db_mysql();
            db_mssql db_mssql = new db_mssql();

            Comment lucky_comment = getComment(id);
            comment comment = Mapper.Map<Comment, comment>(lucky_comment);

            letter letter = (from m in db_mysql.letters where m.Id.Equals(lucky_comment.letterId) select m).FirstOrDefault();

            HtmlUtility utility = HtmlUtility.Instance;

            edit new_edit = new edit();

            new_edit.editComment = "Comment un-hidden by " + user_name;
            new_edit.editor = user_name;

            new_edit.editDate = DateTime.Now;

            new_edit.newLetter = lucky_comment.commentMessage;

            new_edit.previousLetter = lucky_comment.commentMessage;
            new_edit.status = "accepted";
            new_edit.letterID = lucky_comment.letterId;
            new_edit.editDate = DateTime.UtcNow;

            db_mssql.edits.Add(new_edit);

            db_mysql.comments.Attach(comment);
            db_mysql.letters.Attach(letter);

            var comment_var = db_mysql.Entry(comment);
            var letter_var = db_mysql.Entry(letter);

            comment_var.Property(e => e.level).IsModified = true;
            comment.level = 0;

            letter_var.Property(e => e.letterComments).IsModified = true;
            letter.letterComments = letter.letterComments + 1;

            db_mysql.SaveChanges();
            db_mssql.SaveChanges();

            return true;
        }
Esempio n. 17
0
 public Letter getLetter(int id)
 {
     db_mysql db_mysql = new db_mysql();
     letter letter = (from m in db_mysql.letters where m.Id.Equals(id) select m).FirstOrDefault();
     return Mapper.Map<letter, Letter>(letter);
 }
Esempio n. 18
0
        public List<Letter> getLetters(int greater_than_level, int page, int _pagesize)
        {
            db_mysql db_mysql = new db_mysql();

            List<letter> results = new List<letter>();

            letter last = (from m in db_mysql.letters orderby m.Id descending select m).First();
            int greater_than_amount = 0;

            switch (greater_than_level)
            {
                case -1:
                    // assume that we can get our letters
                    // in a maximum of (10+5)*(1)= 12 letters
                    // for the first page... assumes 5 are hidden
                    // per page of 10.

                    // if we don't do this, it's mad slow...
                    greater_than_amount = last.Id - ((_pagesize + 5) * page);
                    break;
                case 0:
                    greater_than_amount = 0;
                    break;
            }

            var query = (from m in db_mysql.letters
                         where m.letterLevel > greater_than_level
                             && m.Id > greater_than_amount
                         orderby m.Id descending
                         select m);

            results = query.Skip((page - 1) * _pagesize).Take(_pagesize).ToList();
            return Mapper.Map<List<letter>, List<Letter>>(results);
        }
Esempio n. 19
0
        public Core.Model.Letter getLatestFrontPageLetter()
        {
            db_mysql db_mysql = new db_mysql();
            letter letter = (from l in db_mysql.letters where l.letterLevel == 1 orderby l.letterPostDate descending select l).First();

            return Mapper.Map<letter, Letter>(letter);
        }
Esempio n. 20
0
        public List<Letter> getModLetters(int page, int _pagesize)
        {
            db_mysql db_mysql = new db_mysql();

            List<letter> results = new List<letter>();

            var query = (from m in db_mysql.letters
                         where m.letterLevel == -10
                         orderby m.Id descending
                         select m);

            results = query.Skip((page - 1) * _pagesize).Take(_pagesize).ToList();
            return Mapper.Map<List<letter>, List<Letter>>(results);
        }
Esempio n. 21
0
        public void unhideLetter(int lucky_id, string userip, string cookie_value, string user_name, bool is_user_mod)
        {
            db_mysql db_mysql = new db_mysql();
            db_mssql db_mssql = new db_mssql();

            Letter lucky = getLetter(lucky_id);

            if (lucky == null) { return; }

            edit new_edit = new edit();
            new_edit.editComment = "Unhidden by " + user_name;
            new_edit.editor = user_name;

            new_edit.newLetter = lucky.letterMessage;
            new_edit.previousLetter = lucky.letterMessage;
            new_edit.status = "accepted";
            new_edit.letterID = lucky.Id;
            new_edit.editDate = DateTime.UtcNow;

            db_mssql.edits.Add(new_edit);

            letter transformed;
            transformed = Mapper.Map<Letter, letter>(lucky);

            db_mysql.letters.Attach(transformed);
            var letter = db_mysql.Entry(transformed);

            letter.Property(e => e.letterLevel).IsModified = true;
            transformed.letterLevel = 0;

            letter.CurrentValues.SetValues(transformed);

            db_mysql.SaveChanges();
        }
Esempio n. 22
0
        public List<Letter> searchDate(string terms, int year, int month, int day, int time_zone)
        {
            db_mysql db_mysql = new db_mysql();

            List<letter> results = new List<letter>();
            results = db_mysql.searchLettersByDate(terms, year, month, day, time_zone).ToList();

            return Mapper.Map<List<letter>, List<Letter>>(results);
        }
Esempio n. 23
0
 public int getLetterCount()
 {
     db_mysql db_mysql = new db_mysql();
     return db_mysql.letters.Count();
 }
Esempio n. 24
0
        public Boolean Unsubscribe(string email, int letter_id)
        {
            Boolean result = false;

            db_mysql db_mysql = new db_mysql();
            List<comment> comments = (from m in db_mysql.comments where m.letterId.Equals(letter_id) && m.commenterEmail.Equals(email) select m).ToList();

            if (comments.Count > 0)
            {
                // update the settings so this user does not get emails
                // in the future

                foreach (comment cmt in comments)
                {
                    db_mysql.comments.Attach(cmt);
                    var letter_comment = db_mysql.Entry(cmt);

                    letter_comment.Property(e => e.sendEmail).IsModified = true;
                    cmt.sendEmail = false;
                    db_mysql.SaveChanges();
                }

                result = true;
            }

            return result;
        }
Esempio n. 25
0
 public Letter getLetterByTag(string guid)
 {
     db_mysql db_mysql = new db_mysql();
     letter letter = (from m in db_mysql.letters where m.letterTags.Equals(guid) select m).FirstOrDefault();
     return Mapper.Map<letter, Letter>(letter);
 }
Esempio n. 26
0
 public int getLetterCountMorePage()
 {
     db_mysql db_mysql = new db_mysql();
     return (from m in db_mysql.letters where m.letterLevel >= 0 select m).Count();
 }
Esempio n. 27
0
        public void facebookLetter(int lucky_id, long toFacebookUID, long fromFacebookUID, string userip, string cookie_value, string user_name, bool is_user_mod)
        {
            db_mysql db_mysql = new db_mysql();

            Letter lucky = getLetter(lucky_id);

            if (lucky == null) { return; }

            letter transformed;
            transformed = Mapper.Map<Letter, letter>(lucky);

            db_mysql.letters.Attach(transformed);
            var letter = db_mysql.Entry(transformed);

            letter.Property(e => e.fromFacebookUID).IsModified = true;
            transformed.fromFacebookUID = fromFacebookUID;

            letter.Property(e => e.toFacebookUID).IsModified = true;
            transformed.toFacebookUID = toFacebookUID;

            letter.CurrentValues.SetValues(transformed);

            db_mysql.SaveChanges();
        }
Esempio n. 28
0
        public List<Core.Model.Letter> getPopularLetters(Core.Model.Letter latest_front_page)
        {
            List<letter> results = new List<letter>();

            db_mysql db_mysql = new db_mysql();
            db_mssql db_mssql = new db_mssql();

            List<TopListData_Result> top_votes = new List<TopListData_Result>();
            top_votes = (from l in db_mssql.TopListData() where l.hearts > 5 select l).ToList();

            List<long> top_votes_id = new List<long>();
            top_votes_id = (from l in top_votes select l.letterID).ToList();
            //results = (from z in db_mysql.letters where top_votes_id.Contains(z.Id) && z.letterLevel == 0 && z.letterPostDate > latest_front_page.letterPostDate orderby z.letterPostDate ascending select z).Take(500).ToList();

            var foo = db_mysql.letters.AsQueryable<letter>()
                             .Where(pop_letter => top_votes_id.Contains(pop_letter.Id) && pop_letter.letterLevel == 0 && pop_letter.letterPostDate > latest_front_page.letterPostDate).Take(500).ToList();

            results = (from z in foo orderby z.letterPostDate ascending select z).ToList();

            return Mapper.Map<List<letter>, List<Letter>>(results);
        }
Esempio n. 29
0
        public List<Comment> getRecentComments(int page)
        {
            db_mysql db_mysql = new db_mysql();
            var query = (from m in db_mysql.comments
                         where m.level.Value != -2
                         orderby m.Id descending
                         select m);

            // hard coding page size, is it worth the extra parameter? it never changes
            List<comment> results = query.Skip((page - 1) * 10).Take(10).ToList();
            return Mapper.Map<List<comment>, List<Comment>>(results);
        }
Esempio n. 30
0
 public Letter getLastLetterSent()
 {
     db_mysql db_mysql = new db_mysql();
     letter letter = (from m in db_mysql.letters orderby m.Id descending select m).First();
     return Mapper.Map<letter, Letter>(letter);
 }