Exemplo n.º 1
0
        public AdminModule(IdeastrikeContext dbContext, ISettingsRepository settings)
            : base("/admin")
        {
            Get["/"] = _ => "";
            Get["/moderation"] = _ => "";
            Get["/search"] = _ => "";
            Get["/forums"] = _ => "";
            Get["/forum/{forumId}"] = _ => "";
            Get["/settings"] = _ => View["Admin/Settings", settings];
            Post["/settings"] = _ =>
                                    {
                                        settings.WelcomeMessage = Request.Form.welcomemessage;
                                        settings.Title = Request.Form.title;
                                        settings.Name = Request.Form.yourname;
                                        settings.HomePage = Request.Form.homepage;
                                        settings.GAnalyticsKey = Request.Form.analyticskey;
                                        try
                                        {
                                            dbContext.SaveChanges();
                                        }
                                        catch (Exception ex)
                                        {
                                            var y = ex.Message;
                                        }

                                        return Response.AsRedirect("/admin/settings");
                                    };
        }
Exemplo n.º 2
0
 public HomeModule()
 {
     Get["/"] = _ =>
     {
         using (var db = new IdeastrikeContext())
         {
             db.Ideas.Add(new Idea {Title = "I heard you like ideas, so I put an idea in your ideas", Time = DateTime.UtcNow});
             db.SaveChanges();
             return View["Home/Index", string.Format("Hello, world. There are {0} ideas", db.Ideas.Count())];
         }
     };
 }
Exemplo n.º 3
0
        public bool Add(int ideaid, Activity activity)
        {
            var idea = db.Ideas.FirstOrDefault(i => i.Id == ideaid);

            if (idea == null)
            {
                return(false);
            }

            idea.Activities.Add(activity);
            db.SaveChanges();
            return(true);
        }
Exemplo n.º 4
0
        public IdeaModule()
        {
            Get["/idea/{id}"] = parameters =>
            {
                using (var db = new IdeastrikeContext())
                {
                    double id = parameters.id;
                    var idea = db.Ideas.FirstOrDefault(i => i.Id == id);
                    return string.Format("Id:{0} Title:{1} Description:{2}", idea.Id, idea.Title, idea.Description);
                }
            };

            Get["/idea/{id}/delete"] = parameters =>
            {
                using (var db = new IdeastrikeContext())
                {
                    double id = parameters.id;
                    var idea = db.Ideas.FirstOrDefault(i => i.Id == id);
                    db.Ideas.Remove(idea);
                    db.SaveChanges();
                    return string.Format("Deleted Item {0}", id);
                }
            };

                        Post["/idea/add"] = parameters =>
            {
                using (var db = new IdeastrikeContext())
                {
                    var author = Request.Form.author;
                    var title = Request.Form.title;
                    var desc = Request.Form.description;

                    var newIdea = db.Ideas.Add(new Idea {Title = title, Author = author, Description = desc });
                    if(newIdea.isValid())
                    {
                        // store the new idea and redirect to the new idea
                        db.SaveChanges();
                        return Response.AsRedirect(string.Format("/idea/{0}/", newIdea.Id));
                    }
                    else
                    {
                        // return to form with errors
                        List<string> errorList = newIdea.generateErrorList();
                        return View["Home/Add", new { errorList, author, title, desc }];
                    }
                }
            };
        }
Exemplo n.º 5
0
        public bool Add(int ideaid, Feature feature)
        {
            var idea = db.Ideas.FirstOrDefault(i => i.Id == ideaid);

            if (idea == null)
            {
                return(false);
            }

            if (idea.Features == null)
            {
                idea.Features = new Collection <Feature>();
            }

            idea.Features.Add(feature);
            db.SaveChanges();
            return(true);
        }
Exemplo n.º 6
0
        public CommentModule()
            : base("/idea")
        {
            Get["/{idea}/comment"] = parameters =>
            {
                using (var db = new IdeastrikeContext())
                {
                    db.Comments.Add(new Comment {IdeaId = parameters.idea });
                    db.SaveChanges();
                    return View["Comment/Index", string.Format("Hello, world. There are {0} comments for Idea {1}", db.Comments.Count(), parameters.idea)];
                }
            };

            Get["/{idea}/comment/{id}"] = parameters =>
            {
                using (var db = new IdeastrikeContext())
                {
                    int id = parameters.id;
                    int idea = parameters.idea;
                    var comment = db.Comments.FirstOrDefault(i => i.Id == id && i.IdeaId == idea);
                    return string.Format("Comment Id:{0}", comment.Id);
                }
            };

            Get["/{idea}/comment/{id}/delete"] = parameters =>
            {
                using (var db = new IdeastrikeContext())
                {
                    int id = parameters.id;
                    int idea = parameters.idea;

                    var comment = db.Comments.FirstOrDefault(i => i.Id == id && i.IdeaId == idea);
                    db.Comments.Remove(comment);
                    db.SaveChanges();
                    return string.Format("Deleted Comment {0} for Idea {1}", id, idea);
                }
            };
        }
Exemplo n.º 7
0
        public IdeaModule()
        {
            Get["/idea/{id}"] = parameters =>
            {
                using (var db = new IdeastrikeContext())
                {
                    double id = parameters.id;
                    var idea = db.Ideas.FirstOrDefault(i => i.Id == id);
                    return string.Format("Id:{0} Title:{1} Description:{2}", idea.Id, idea.Title, idea.Description);
                }
            };

            Get["/idea/{id}/delete"] = parameters =>
            {
                using (var db = new IdeastrikeContext())
                {
                    double id = parameters.id;
                    var idea = db.Ideas.FirstOrDefault(i => i.Id == id);
                    db.Ideas.Remove(idea);
                    db.SaveChanges();
                    return string.Format("Deleted Item {0}", id);
                }
            };
        }
Exemplo n.º 8
0
        public AdminModule(IdeastrikeContext dbContext, ISettingsRepository settings, IUserRepository users)
            : base("/admin")
        {
            this.RequiresAuthentication();

            Get["/"] = _ =>
            {
                var m = Context.Model(string.Format("Admin - {0}", settings.Title));
                m.Name = settings.Name;
                m.WelcomeMessage = settings.WelcomeMessage;
                m.HomePage = settings.HomePage;
                m.GAnalyticsKey = settings.GAnalyticsKey;
                return View["Admin/Index", m];
            };

            Get["/users"] = _ =>
            {
                var m = Context.Model(string.Format("Admin - {0}", settings.Title));
                m.Name = settings.Name;
                m.WelcomeMessage = settings.WelcomeMessage;
                m.HomePage = settings.HomePage;
                m.GAnalyticsKey = settings.GAnalyticsKey;
                m.Users = users.GetAll();
                return View["Admin/Users", m];
            };

            Get["/moderation"] = _ =>
            {
                var m = Context.Model(string.Format("Admin - {0}", settings.Title));
                m.Name = settings.Name;
                m.WelcomeMessage = settings.WelcomeMessage;
                m.HomePage = settings.HomePage;
                m.GAnalyticsKey = settings.GAnalyticsKey;
                return View["Admin/Moderation", m];
            };

            Get["/settings"] = _ =>
            {
                var m = Context.Model(string.Format("Admin - {0}", settings.Title));
                m.Name = settings.Name;
                m.WelcomeMessage = settings.WelcomeMessage;
                m.HomePage = settings.HomePage;
                m.GAnalyticsKey = settings.GAnalyticsKey;

                return View["Admin/Settings", m];
            };

            Post["/settings"] = _ =>
            {
                settings.WelcomeMessage = Request.Form.welcomemessage;
                settings.Title = Request.Form.title;
                settings.Name = Request.Form.yourname;
                settings.HomePage = Request.Form.homepage;
                settings.GAnalyticsKey = Request.Form.analyticskey;
                try
                {
                    dbContext.SaveChanges();
                }
                catch (Exception ex)
                {
                    var y = ex.Message;
                }

                return Response.AsRedirect("/admin/settings");
            };

            Get["/search"] = _ => "";
            Get["/forums"] = _ => "";
            Get["/forum/{forumId}"] = _ => "";
        }
Exemplo n.º 9
0
 public virtual void Add(User entity)
 {
     _entities.Set <User>().Add(entity);
     _entities.SaveChanges();
 }
Exemplo n.º 10
0
 public void Add(Idea idea)
 {
     db.Ideas.Add(idea);
     db.SaveChanges();
 }
Exemplo n.º 11
0
 public void Add(Image image)
 {
     _dataContext.Images.Add(image);
     _dataContext.SaveChanges();
 }
Exemplo n.º 12
0
        public AdminModule(IdeastrikeContext dbContext, ISettingsRepository settings, IUserRepository users, IIdeaRepository ideas, IActivityRepository activities)
            : base("/admin")
        {
            this.RequiresAuthentication();
            _settings = settings;
            _users = users;
            _ideas = ideas;
            _activities = activities;

            Get["/"] = _ =>
            {
                var m = Context.Model(string.Format("Admin - {0}", settings.Title));
                m.Name = settings.Name;
                m.WelcomeMessage = settings.WelcomeMessage;
                m.HomePage = settings.HomePage;
                m.GAnalyticsKey = settings.GAnalyticsKey;
                return View["Admin/Index", m];
            };

            Get["/users"] = _ =>
            {
                var m = Context.Model(string.Format("Admin - {0}", settings.Title));
                m.Name = settings.Name;
                m.WelcomeMessage = settings.WelcomeMessage;
                m.HomePage = settings.HomePage;
                m.GAnalyticsKey = settings.GAnalyticsKey;
                m.Users = users.GetAll();
                return View["Admin/Users", m];
            };

            Get["/moderation"] = _ =>
            {
                var m = Context.Model(string.Format("Admin - {0}", settings.Title));
                m.Name = settings.Name;
                m.WelcomeMessage = settings.WelcomeMessage;
                m.HomePage = settings.HomePage;
                m.GAnalyticsKey = settings.GAnalyticsKey;
                return View["Admin/Moderation", m];
            };

            Get["/settings"] = _ =>
            {
                var m = Context.Model(string.Format("Admin - {0}", settings.Title));
                m.Name = settings.Name;
                m.WelcomeMessage = settings.WelcomeMessage;
                m.HomePage = settings.HomePage;
                m.GAnalyticsKey = settings.GAnalyticsKey;

                return View["Admin/Settings", m];
            };

            Post["/settings"] = _ =>
            {
                settings.WelcomeMessage = Request.Form.welcomemessage;
                settings.Title = Request.Form.title;
                settings.Name = Request.Form.yourname;
                settings.HomePage = Request.Form.homepage;
                settings.GAnalyticsKey = Request.Form.analyticskey;
                try
                {
                    dbContext.SaveChanges();
                }
                catch (Exception ex)
                {
                    var y = ex.Message;
                }

                return Response.AsRedirect("/admin/settings");
            };

            Get["/search"] = _ => "";
            Get["/forums"] = _ => "";
            Get["/forum/{forumId}"] = _ => "";

            Get["/uservoice"] = _ => View["Admin/Uservoice", Context.Model("Admin")];
            Post["/uservoice"] = _ =>
            {
                var client = new WebClient();
                var suggestions = GetSuggestions(client, Request.Form.channel, Request.Form.forumid, Request.Form.apikey, Request.Form.trusted);

                foreach (var s in suggestions)
                {
                    string title = s.title;

                    //If the idea exists, skip it
                    if (ideas.FindBy(i => i.Title == title).Any())
                        continue;

                    string date = s.created_at;
                    var idea = new Idea
                    {
                        Title = title,
                        Description = s.text,
                        Time = DateTime.Parse(date.Substring(0, date.Length - 5)),
                    };

                    string status = string.Empty;
                    switch ((string)s.state)
                    {
                        case "approved":
                            status = "Active";
                            break;
                        case "closed" :
                            if (s.status.key == "completed")
                                status = "Completed";
                            else
                                status = "Declined";
                            break;
                        default:
                            status = "New";
                            break;
                    }
                    idea.Status = status;

                    //Get the author, or create
                    string name = s.creator.name;
                    var existing = users.FindBy(u => u.UserName == name).FirstOrDefault();
                    if (existing != null)
                        idea.Author = existing;
                    else
                    {
                        idea.Author = NewUser(s.creator);
                        users.Add(idea.Author);
                    }

                    ideas.Add(idea);

                    //Process all comments
                    var comments = GetComments(client, (string)s.id, Request.Form.channel, Request.Form.forumid, Request.Form.apikey, Request.Form.trusted);
                    List<Activity> ideaComments = new List<Activity>();
                    foreach (var c in comments)
                    {
                        string commentdate = c.created_at;
                        var comment = new Comment
                        {
                            Time = DateTime.Parse(commentdate),
                            Text = c.text
                        };

                        string commentname = c.creator.name;
                        existing = users.FindBy(u => u.UserName == commentname).FirstOrDefault();
                        if (existing != null)
                            comment.User = existing;
                        else
                        {
                            comment.User = NewUser(c.creator);
                            users.Add(comment.User);
                        }

                        activities.Add(idea.Id, comment);
                    }

                    //Process all votes
                    var votes = GetVotes(client, (string)s.id, Request.Form.channel, Request.Form.forumid, Request.Form.apikey, Request.Form.trusted);
                    foreach (var v in votes)
                    {
                        string votername = v.user.name;
                        string votesfor = v.votes_for;
                        int vote;
                        if (Int32.TryParse(votesfor, out vote))
                        {
                            existing = users.FindBy(u => u.UserName == votername).FirstOrDefault();
                            if (existing != null)
                                ideas.Vote(idea.Id, existing.Id, vote);
                            else
                            {
                                var author = NewUser(v.user);
                                users.Add(author);
                                ideas.Vote(idea.Id, author.Id, vote);
                            }
                        }
                    }
                }

                return Response.AsRedirect("/admin");
            };
        }