public ActionResult Index() { ViewBag.Selected = SelectedTab.Popular; ViewBag.Items = _ideas.GetAll(); return(View()); }
public HomeModule(IIdeaRepository ideas, ISettingsRepository settings) { _ideas = ideas; _settings = settings; Get["/"] = _ => ListIdeas(_ideas.GetAll(), SelectedTab.Popular); Get["/top"] = _ => ListIdeas(_ideas.GetAll().OrderByDescending(i => i.Votes.Count), SelectedTab.Hot); Get["/new"] = _ => ListIdeas(_ideas.GetAll().OrderByDescending(i => i.Time), SelectedTab.New); }
public HomeModule(IIdeaRepository ideas, IUserRepository users, ISettingsRepository settings) { _ideas = ideas; _users = users; _settings = settings; Get["/"] = _ => ListIdeas(_ideas.GetAll(), SelectedTab.Popular, ""); Get["/top"] = _ => ListIdeas(_ideas.GetAll().OrderByDescending(i => i.Votes.Sum(s => s.Value)), SelectedTab.Hot, ""); Get["/new"] = _ => ListIdeas(_ideas.GetAll().OrderByDescending(i => i.Time), SelectedTab.New, ""); Get["/login"] = _ => { return(ListIdeas(_ideas.GetAll(), SelectedTab.Popular, Strings.HomeModule_LoginRequired)); }; }
public HomeModule(IIdeaRepository ideas, IUserRepository users, ISettingsRepository settings) { _ideas = ideas; _users = users; _settings = settings; Get["/"] = _ => ListIdeas(_ideas.GetAll(), SelectedTab.Popular, ""); Get["/top"] = _ => ListIdeas(_ideas.GetAll().OrderByDescending(i => i.Votes.Count), SelectedTab.Hot, ""); Get["/new"] = _ => ListIdeas(_ideas.GetAll().OrderByDescending(i => i.Time), SelectedTab.New, ""); Get["/login"] = _ => { return ListIdeas(_ideas.GetAll(), SelectedTab.Popular, "You need to login to do that"); }; }
public HomeModule(IIdeaRepository ideas, IUserRepository users, Settings settings) { _ideas = ideas; _users = users; _settings = settings; Get["/"] = _ => ListIdeas(_ideas.GetAll(), SelectedTab.Popular, ""); Get["/top"] = _ => ListIdeas(_ideas.GetAll().OrderByDescending(i => i.Votes.Sum(s => s.Value)), SelectedTab.Hot, ""); Get["/new"] = _ => ListIdeas(_ideas.GetAll().OrderByDescending(i => i.Time), SelectedTab.New, ""); Get["/login"] = _ => { return ListIdeas(_ideas.GetAll(), SelectedTab.Popular, Strings.HomeModule_LoginRequired); }; }
public HomeModule(IIdeaRepository ideas, IUserRepository users, ISettingsRepository settings) { _ideas = ideas; _users = users; _settings = settings; Get["/"] = _ => ListIdeas(_ideas.GetAll(), SelectedTab.Popular, ""); Get["/top"] = _ => ListIdeas(_ideas.GetAll().OrderByDescending(i => i.Votes.Count), SelectedTab.Hot, ""); Get["/new"] = _ => ListIdeas(_ideas.GetAll().OrderByDescending(i => i.Time), SelectedTab.New, ""); Get["/login"] = _ => { return(ListIdeas(_ideas.GetAll(), SelectedTab.Popular, "You need to login to do that")); }; }
public async Task <IActionResult> GetIdeas() { var ideas = await _ideaRepo.GetAll(); var ideaToReturn = _mapper.Map <IEnumerable <IdeaForListDto> >(ideas); return(Ok(ideaToReturn)); }
public HomeModule(IIdeaRepository ideas, ISettingsRepository settings) { Get["/"] = _ => View["Home/Index", new { Ideas= ideas.GetAll(), Title = settings.Title, WelcomeMessage = MarkdownHelper.Markdown(settings.WelcomeMessage) }]; }
public HomeModule(IIdeaRepository ideas, ISettingsRepository settings) { Get["/"] = _ => View["Home/Index", new { Ideas = ideas.GetAll(), Title = settings.Title, WelcomeMessage = MarkdownHelper.Markdown(settings.WelcomeMessage) }]; }
public ActionResult Index() { var user = _users.GetUserFromUserIdentity(Request.GetIdentity()); var usersIdeas = _ideas.GetAll().Where(u => u.Author.Id == user.Id).ToList(); var usersFeatures = _features.GetAll().Where(u => u.User.Id == user.Id).ToList(); var usersVotes = _users.GetVotes(user.Id).ToList(); return(View(new { Ideas = usersIdeas, Features = usersFeatures, Votes = usersVotes, Id = user.Id, UserName = user.UserName, Email = user.Email, Github = user.Github, AvatarUrl = user.AvatarUrl, }.ToExpando())); }
public IdeaSecuredModule(IIdeaRepository ideas, IUserRepository users, ISettingsRepository settings, IImageRepository imageRepository) : base("/idea") { _ideas = ideas; _settings = settings; _imageRepository = imageRepository; _users = users; this.RequiresAuthentication(); Get["/new"] = _ => { var m = Context.Model(string.Format("New Idea - {0}", _settings.Title)); m.Ideas = _ideas.GetAll(); m.Errors = false; if (Request.Query["validation"] == "failed") { m.Errors = true; } return View["Idea/New", m]; }; Get["/{id}/edit"] = parameters => { int id = parameters.id; var idea = _ideas.Get(id); if (idea == null) return View["404"]; if (idea.Author.UserName != Context.CurrentUser.UserName) return View["404"]; var m = Context.Model(string.Format(Strings.IdeaSecuredModule_EditIdea, idea.Title, _settings.Title)); m.PopularIdeas = _ideas.GetAll(); m.Idea = idea; m.StatusChoices = _settings.IdeaStatusChoices.Split(','); m.Errors = false; if (Request.Query["validation"] == "failed") { m.Errors = true; } return View["Idea/Edit", m]; }; // save result of edit to database Post["/{id}/edit"] = parameters => { int id = parameters.id; if (string.IsNullOrEmpty(Request.Form.Title) || string.IsNullOrEmpty(Request.Form.Description)) { return Response.AsRedirect(string.Format("/idea/{0}/edit?validation=failed", id)); } var idea = _ideas.Get(id); if (idea == null) return View["404"]; idea.Title = Request.Form.Title; idea.Description = Request.Form.Description; idea.Status = Request.Form.Status; //Add any images IEnumerable<string> keys = Context.Request.Form; var x = keys.Where(c => c.StartsWith("imageId")); var ids = x.Select(c => Context.Request.Form[c].ToString()).Cast<string>(); var images = ids.Select(y => _imageRepository.Get(Convert.ToInt32(y))); foreach (var i in images) { if (!idea.Images.Contains(i, i)) { idea.Images.Add(i); } } _ideas.Save(); return Response.AsRedirect(string.Format("/idea/{0}", idea.Id)); }; // save result of create to database Post["/new"] = _ => { if (string.IsNullOrEmpty(Request.Form.Title) || string.IsNullOrEmpty(Request.Form.Description)) { return Response.AsRedirect("/idea/new?validation=failed"); } var user = _users.FindBy(u => u.UserName == Context.CurrentUser.UserName).FirstOrDefault(); if (user == null) return Response.AsRedirect("/login"); var idea = new Idea { Author = user, Time = DateTime.UtcNow, Title = Request.Form.Title, Description = Request.Form.Description, Status = settings.IdeaStatusDefault }; IEnumerable<string> keys = Context.Request.Form; var parameters = keys.Where(c => c.StartsWith("imageId")); var ids = parameters.Select(c => Context.Request.Form[c].ToString()).Cast<string>(); var images = ids.Select(id => _imageRepository.Get(Convert.ToInt32(id))); idea.Images = images.ToList(); //i.Images = form.Cast<string>() // .Where(k => k.StartsWith("imageId")) // .Select(k => _imageRepository.Get(Convert.ToInt32(form[k]))) // .ToList(); //is there a way to do this using Nancy? if (idea.Votes.Any(u => u.UserId == user.Id)) idea.UserHasVoted = true; ideas.Add(idea); return Response.AsRedirect("/idea/" + idea.Id); }; // someone else votes for the idea Post["/{id}/vote"] = parameters => { var user = Context.GetCurrentUser(_users); if (user == null) return Response.AsRedirect("/login"); int ideaId = parameters.id; int votes = ideas.Vote(ideaId, user.Id, 1); return Response.AsJson(new { Status = "OK", NewVotes = votes }); }; // the user decides to repeal his vote Post["/{id}/unvote"] = parameters => { var user = Context.GetCurrentUser(_users); int votes = ideas.Unvote(parameters.id, user.Id); return Response.AsJson(new { Status = "OK", NewVotes = votes }); }; Post["/{id}/delete"] = parameters => { int id = parameters.id; ideas.Delete(id); ideas.Save(); // TODO: test return Response.AsJson(new { Status = "Error" }); }; // TODO: do we want unauthenticated users to be allowed to upload posts? Post["/uploadimage"] = parameters => { var user = Context.GetCurrentUser(_users); if (user == null) return Response.AsJson(new { status = "Error" }); var imageFile = Request.Files.FirstOrDefault(); if (imageFile == null) { return null; //TODO: handle error case } var image = new Image { Name = imageFile.Name }; var bytes = new byte[imageFile.Value.Length]; imageFile.Value.Read(bytes, 0, bytes.Length); image.ImageBits = bytes; imageRepository.Add(image); var status = new ImageFileStatus(image.Id, bytes.Length, image.Name); return Response.AsJson(new[] { status }).WithHeader("Vary", "Accept"); }; Delete["/deleteimage/{id}"] = parameters => { var user = Context.GetCurrentUser(_users); if (user == null) return Response.AsJson(new { status = "Error" }); imageRepository.Delete(parameters.id); return null; }; }
public UserModule(IUserRepository users, IIdeaRepository ideas, IFeatureRepository features) { _users = users; _ideas = ideas; _features = features; this.RequiresAuthentication(); Get["/profile"] = _ => { User user = Context.GetCurrentUser(_users); if (user == null) return Response.AsRedirect("/"); var i = _ideas.GetAll().Where(u => u.Author.Id == user.Id).ToList(); var f = _features.GetAll().Where(u => u.User.Id == user.Id).ToList(); var v = _users.GetVotes(user.Id).ToList(); return View["Profile/Index", new { Title = "Profile", Id = user.Id, UserName = user.UserName, Email = user.Email, Github = user.Github, Ideas = i, Features = f, Votes = v, Claims = user.Claims.ToList(), IsLoggedIn = Context.IsLoggedIn() }]; }; Get["/profile/edit"] = _ => { User user = Context.GetCurrentUser(_users); if (user == null) return Response.AsRedirect("/"); return View["Profile/Edit", new { Title = "Profile", Id = user.Id, UserName = user.UserName, Email = user.Email, Github = user.Github, Claims = user.Claims.ToList(), IsLoggedIn = Context.IsLoggedIn(), }]; }; Post["/profile/checkuser"] = _ => { string username = Request.Form.username; var userExists = _users.FindBy(u => u.UserName == username).Any(); string msg = ""; if (username == Context.CurrentUser.UserName) msg = ""; else if (string.IsNullOrWhiteSpace(username)) msg = Strings.UserModule_UsernameNotValid; else if (userExists) msg = Strings.UserModule_UsernameTaken; else msg = Strings.UserModule_UsernameAvailable; return Response.AsJson(new { Status = "OK", msg = msg }); }; Post["/profile/save"] = _ => { var user = Context.GetCurrentUser(_users); user.UserName = Request.Form.username; user.Email = Request.Form.email; user.AvatarUrl = user.Email.ToGravatarUrl(40); user.Github = Request.Form.github; _users.Edit(user); return Response.AsRedirect("/profile"); }; }
public ProfileModule(IUserRepository users, IIdeaRepository ideas, IFeatureRepository features) { _users = users; _ideas = ideas; _features = features; this.RequiresAuthentication(); Get["/profile"] = _ => { User user = Context.GetCurrentUser(_users); if (user == null) { return(Response.AsRedirect("/")); } var usersIdeas = _ideas.GetAll().Where(u => u.Author.Id == user.Id).ToList(); var usersFeatures = _features.GetAll().Where(u => u.User.Id == user.Id).ToList(); var usersVotes = _users.GetVotes(user.Id).ToList(); return(View["Profile/Index", new { Title = "Profile", Id = user.Id, UserName = user.UserName, Email = user.Email, Github = user.Github, Ideas = usersIdeas, Features = usersFeatures, Votes = usersVotes, AvatarUrl = user.AvatarUrl, Claims = user.Claims.ToList(), IsLoggedIn = Context.IsLoggedIn() }]); }; Get["/profile/edit"] = _ => { User user = Context.GetCurrentUser(_users); if (user == null) { return(Response.AsRedirect("/")); } return(View["Profile/Edit", new { Title = "Profile", Id = user.Id, UserName = user.UserName, Email = user.Email, Github = user.Github, Claims = user.Claims.ToList(), IsLoggedIn = Context.IsLoggedIn(), }]); }; Post["/profile/checkuser"] = _ => { string username = Request.Form.username; var userExists = _users.FindBy(u => u.UserName == username).Any(); string msg = ""; if (username == Context.CurrentUser.UserName) { msg = ""; } else if (string.IsNullOrWhiteSpace(username)) { msg = Strings.UserModule_UsernameNotValid; } else if (userExists) { msg = Strings.UserModule_UsernameTaken; } else { msg = Strings.UserModule_UsernameAvailable; } return(Response.AsJson(new { Status = "OK", msg = msg })); }; Post["/profile/save"] = _ => { var user = Context.GetCurrentUser(_users); user.UserName = Request.Form.username; user.Email = Request.Form.email; user.AvatarUrl = user.Email.ToGravatarUrl(40); user.Github = Request.Form.github; _users.Edit(user); return(Response.AsRedirect("/profile")); }; }
public IEnumerable <Idea> GetAllIdeas() { return(_ideaRepository.GetAll()); }
public IEnumerable <Idea> Get() { // cRud return(_repository.GetAll().AsEnumerable()); }
public async Task <List <Idea> > GetAll(PagingParameters pagingParameters) { return(await _ideaRepository.GetAll(pagingParameters)); }
public ActionResult New() { ViewBag.Errors = false; ViewBag.Ideas = _ideas.GetAll().OrderByDescending(i => i.Time).Take(5); return(View(new Idea())); }
public IActionResult Index() { return(View(_repository.GetAll())); }
public IEnumerable <Idea> Get() { // cRud //return _repository.GetAll().AsEnumerable(); return(_repository.GetAll().ToList()); }
public IdeaSecuredModule(IIdeaRepository ideas, IUserRepository users, ISettingsRepository settings, IImageRepository imageRepository) : base("/idea") { _ideas = ideas; _settings = settings; _imageRepository = imageRepository; _users = users; this.RequiresAuthentication(); Get["/new"] = _ => { var m = Context.Model(string.Format("New Idea - {0}", _settings.Title)); m.Ideas = _ideas.GetAll(); m.Errors = false; if (Request.Query["validation"] == "failed") { m.Errors = true; } return(View["Idea/New", m]); }; Get["/{id}/edit"] = parameters => { int id = parameters.id; var idea = _ideas.Get(id); var m = Context.Model(string.Format(Strings.IdeaSecuredModule_EditIdea, idea.Title, _settings.Title)); m.PopularIdeas = _ideas.GetAll(); m.Idea = idea; m.StatusChoices = _settings.IdeaStatusChoices.Split(','); m.Errors = false; if (Request.Query["validation"] == "failed") { m.Errors = true; } return(View["Idea/Edit", m]); }; // save result of edit to database Post["/{id}/edit"] = parameters => { int id = parameters.id; if (string.IsNullOrEmpty(Request.Form.Title) || string.IsNullOrEmpty(Request.Form.Description)) { return(Response.AsRedirect(string.Format("/idea/{0}/edit?validation=failed", id))); } var idea = _ideas.Get(id); if (idea == null) { return(View["404"]); } idea.Title = Request.Form.Title; idea.Description = Request.Form.Description; idea.Status = Request.Form.Status; //Add any images IEnumerable <string> keys = Context.Request.Form; var x = keys.Where(c => c.StartsWith("imageId")); var ids = x.Select(c => Context.Request.Form[c].ToString()).Cast <string>(); var images = ids.Select(y => _imageRepository.Get(Convert.ToInt32(y))); foreach (var i in images) { if (!idea.Images.Contains(i, i)) { idea.Images.Add(i); } } _ideas.Save(); return(Response.AsRedirect(string.Format("/idea/{0}", idea.Id))); }; // save result of create to database Post["/new"] = _ => { if (string.IsNullOrEmpty(Request.Form.Title) || string.IsNullOrEmpty(Request.Form.Description)) { return(Response.AsRedirect("/idea/new?validation=failed")); } var user = _users.FindBy(u => u.UserName == Context.CurrentUser.UserName).FirstOrDefault(); if (user == null) { return(Response.AsRedirect("/login")); } var idea = new Idea { Author = user, Time = DateTime.UtcNow, Title = Request.Form.Title, Description = Request.Form.Description, Status = settings.IdeaStatusDefault }; IEnumerable <string> keys = Context.Request.Form; var parameters = keys.Where(c => c.StartsWith("imageId")); var ids = parameters.Select(c => Context.Request.Form[c].ToString()).Cast <string>(); var images = ids.Select(id => _imageRepository.Get(Convert.ToInt32(id))); idea.Images = images.ToList(); //i.Images = form.Cast<string>() // .Where(k => k.StartsWith("imageId")) // .Select(k => _imageRepository.Get(Convert.ToInt32(form[k]))) // .ToList(); //is there a way to do this using Nancy? if (idea.Votes.Any(u => u.UserId == user.Id)) { idea.UserHasVoted = true; } ideas.Add(idea); return(Response.AsRedirect("/idea/" + idea.Id)); }; // someone else votes for the idea Post["/{id}/vote"] = parameters => { var user = Context.GetCurrentUser(_users); if (user == null) { return(Response.AsRedirect("/login")); } int ideaId = parameters.id; int votes = ideas.Vote(ideaId, user.Id, 1); return(Response.AsJson(new { Status = "OK", NewVotes = votes })); }; // the user decides to repeal his vote Post["/{id}/unvote"] = parameters => { var user = Context.GetCurrentUser(_users); int votes = ideas.Unvote(parameters.id, user.Id); return(Response.AsJson(new { Status = "OK", NewVotes = votes })); }; Post["/{id}/delete"] = parameters => { int id = parameters.id; ideas.Delete(id); ideas.Save(); // TODO: test return(Response.AsJson(new { Status = "Error" })); }; // TODO: do we want unauthenticated users to be allowed to upload posts? Post["/uploadimage"] = parameters => { var user = Context.GetCurrentUser(_users); if (user == null) { return(Response.AsJson(new { status = "Error" })); } var imageFile = Request.Files.FirstOrDefault(); if (imageFile == null) { return(null); //TODO: handle error case } var image = new Image { Name = imageFile.Name }; var bytes = new byte[imageFile.Value.Length]; imageFile.Value.Read(bytes, 0, bytes.Length); image.ImageBits = bytes; imageRepository.Add(image); var status = new ImageFileStatus(image.Id, bytes.Length, image.Name); return(Response.AsJson(new[] { status }).WithHeader("Vary", "Accept")); }; Delete["/deleteimage/{id}"] = parameters => { var user = Context.GetCurrentUser(_users); if (user == null) { return(Response.AsJson(new { status = "Error" })); } imageRepository.Delete(parameters.id); return(null); }; }
public IdeaModule(IIdeaRepository ideas, ISettingsRepository settings) : base("/idea") { _ideas = ideas; _settings = settings; Get["/new"] = _ => View["Idea/New", new { Title = string.Format("New Idea - {0}", _settings.Title), Ideas = _ideas.GetAll() }]; Get["/{id}/edit"] = parameters => { int id = parameters.id; var idea = _ideas.Get(id); if (idea == null) return View["404"]; return View["Idea/Edit", new { Title = string.Format("Edit Idea: '{0}' - {1}", idea.Title, _settings.Title), PopularIdeas = _ideas.GetAll(), Idea = idea }]; }; Get["/{id}"] = parameters => { int id = parameters.id; var idea = _ideas.Get(id); if (idea == null) return View["404"]; var viewModel = new IdeaViewModel(idea) { UserHasVoted = false }; return View["Idea/Index", new { Title = string.Format("{0} - {1}", idea.Title, _settings.Title), Idea = viewModel, UserId = 2 // TODO: not hard-code these }]; }; // save result of edit to database Post["/{id}/edit"] = parameters => { int id = parameters.id; var idea = _ideas.Get(id); if (idea == null) return View["404"]; idea.Title = Request.Form.Title; idea.Description = Request.Form.Description; _ideas.Save(); return Response.AsRedirect(string.Format("/idea/{0}", idea.Id)); }; // save result of create to database Post["/new"] = _ => { var i = new Idea { Time = DateTime.UtcNow, Title = Request.Form.Title, Description = Request.Form.Description, }; ideas.Add(i); return Response.AsRedirect("/idea/" + i.Id); }; // someone else votes for the idea Post["/{id}/vote/{userid}"] = parameters => { int votes = ideas.Vote(parameters.id, parameters.userid, 1); return Response.AsJson(new { Status = "OK", NewVotes = votes }); }; // the user decides to repeal his vote Post["/{id}/unvote/{userid}"] = parameters => { int votes = ideas.Unvote(parameters.id, parameters.userid); return Response.AsJson(new { Status = "OK", NewVotes = votes }); }; Post["/{id}/delete"] = parameters => { int id = parameters.id; ideas.Delete(id); ideas.Save(); // TODO: test return Response.AsJson(new { Status = "Error" }); }; }
public IActionResult Index() { var ideas = _repository.GetAll(); return(View(ideas)); }
public IEnumerable <Idea> Get() { return(repository.GetAll().AsEnumerable()); }