public IHttpActionResult Pictures(int page = 0) { return(this.Ok(JsonResultWrapper.Create( this.Data.Pictures.All().Select(ContentOverviewDataModel.FromPicture) .OrderByDescending(c => c.Date) .Skip(page * PageSize) .Take(PageSize)))); }
public IHttpActionResult Create([FromBody] NewPictureDataModel model) { if (!ModelState.IsValid) { return(this.BadRequest(ModelState)); } var category = this.Data.Categories.All().FirstOrDefault(c => c.Name == model.Category); if (category == null) { return(this.BadRequest("Invalid category")); } var tags = Regex.Split(model.Title, @"\W+").Where(tag => tag.Length > 2).ToArray(); var url = backendServices.UrlFromBase64Image(model.Data, category.Name, tags); var picture = new Picture() { CategoryId = category.Id, Created = DateTime.Now, IsAnonymous = model.IsAnonymous, UrlPath = url, Title = model.Title, UserId = this.User.Identity.GetUserId() }; //TODO: Remove after restoring authorize attribute if (picture.UserId == null) { picture.UserId = "3b7aca9e-bd08-4eae-b62e-d81a7d387957"; } this.Data.Pictures.Add(picture); foreach (var tagName in tags) { var tag = this.Data.Tags.All().FirstOrDefault(t => t.Name == tagName); if (tag == null) { tag = new Tag() { Name = tagName }; this.Data.Tags.Add(tag); } tag.Pictures.Add(picture); } this.Data.SaveChanges(); return(this.Ok(JsonResultWrapper.Create(picture.Id))); }
public IHttpActionResult Hate(Guid id) { if (!this.Data.Jokes.All().Any(l => l.Id == id)) { return(this.BadRequest("Invalid Id")); } this.VoteJoke(id, false); return(this.Ok(JsonResultWrapper.Create(id))); }
public IHttpActionResult Like(Guid id) { if (!this.Data.Links.All().Any(l => l.Id == id)) { return(this.BadRequest("Invalid Id")); } this.VoteLink(id, true); return(this.Ok(JsonResultWrapper.Create(id))); }
public IHttpActionResult Create([FromBody] NewJokeDataModel model) { if (!ModelState.IsValid) { return(this.BadRequest(ModelState)); } var category = this.Data.Categories.All().FirstOrDefault(c => c.Name == model.Category); if (category == null) { return(this.BadRequest("Invalid category")); } var tags = Regex.Split(model.Text, @"\W+").Union(Regex.Split(model.Title, @"\W+")).Where(tag => tag.Length > 2); var joke = new Joke() { CategoryId = category.Id, Created = DateTime.Now, IsAnonymous = model.IsAnonymous, Text = model.Text, Title = model.Title, UserId = this.User.Identity.GetUserId() }; //TODO: Remove after restoring authorize attribute if (joke.UserId == null) { joke.UserId = "3b7aca9e-bd08-4eae-b62e-d81a7d387957"; } this.Data.Jokes.Add(joke); foreach (var tagName in tags) { var tag = this.Data.Tags.All().FirstOrDefault(t => t.Name == tagName); if (tag == null) { tag = new Tag() { Name = tagName }; this.Data.Tags.Add(tag); } tag.Jokes.Add(joke); } this.Data.SaveChanges(); return(this.Ok(JsonResultWrapper.Create(joke.Id))); }
public IHttpActionResult Home() { return(this.Ok(JsonResultWrapper.Create(new { UsersCount = this.Data.Users.All().Count(), JokesCount = this.Data.Jokes.All().Count(), LinksCount = this.Data.Links.All().Count(), PicturesCount = this.Data.Pictures.All().Count(), LastJoke = this.Data.Jokes.All().OrderByDescending(j => j.Created).Take(1).Select(ContentOverviewDataModel.FromJoke).FirstOrDefault(), LastLink = this.Data.Links.All().OrderByDescending(l => l.Created).Take(1).Select(ContentOverviewDataModel.FromLink).FirstOrDefault(), LastPicture = this.Data.Pictures.All().OrderByDescending(p => p.Created).Take(1).Select(ContentOverviewDataModel.FromPicture).FirstOrDefault(), BestJoke = this.Data.Jokes.All().OrderByDescending(j => j.Views.Count()).Take(1).Select(ContentOverviewDataModel.FromJoke).FirstOrDefault(), BestLink = this.Data.Links.All().OrderByDescending(l => l.Views.Count()).Take(1).Select(ContentOverviewDataModel.FromLink).FirstOrDefault(), BestPicture = this.Data.Pictures.All().OrderByDescending(p => p.Views.Count()).Take(1).Select(ContentOverviewDataModel.FromPicture).FirstOrDefault(), }))); }
public IHttpActionResult Find(string text, int page = 0) { if (string.IsNullOrEmpty(text)) { return(this.BadRequest("Search text is empty")); } text = text.ToLower(); return(this.Ok(JsonResultWrapper.Create( this.Data.Jokes.All().Where(j => j.Text.ToLower().Contains(text) || j.Title.ToLower().Contains(text)).Select(ContentOverviewDataModel.FromJoke) .Union(this.Data.Links.All().Where(j => j.URL.ToLower().Contains(text) || j.Title.ToLower().Contains(text)).Select(ContentOverviewDataModel.FromLink)) .Union(this.Data.Pictures.All().Where(j => j.UrlPath.ToLower().Contains(text) || j.Title.ToLower().Contains(text)).Select(ContentOverviewDataModel.FromPicture)) .OrderByDescending(c => c.Date) .Skip(page * PageSize) .Take(PageSize)))); }
public async Task <IHttpActionResult> Register(RegisterBindingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = new User() { UserName = model.Email, Email = model.Email }; IdentityResult result = await UserManager.CreateAsync(user, model.Password); if (!result.Succeeded) { return(GetErrorResult(result)); } return(Ok(JsonResultWrapper.Create("success"))); }
public IHttpActionResult Comment([FromBody] NewCommentDataModel model) { if (!ModelState.IsValid) { return(this.BadRequest(ModelState)); } var joke = this.Data.Jokes.Find(model.Id); if (joke == null) { return(this.BadRequest("Invalid id")); } joke.Comments.Add(new Comment() { UserId = this.User.Identity.GetUserId(), Text = model.Text, Created = DateTime.Now }); this.Data.Jokes.Update(joke); this.Data.SaveChanges(); return(this.Ok(JsonResultWrapper.Create(model))); }
public IHttpActionResult Details(Guid id) { var joke = this.Data.Jokes.Find(id); if (joke == null) { return(this.BadRequest("Invalid id")); } var userId = this.User.Identity.GetUserId(); if (!joke.Views.Any(v => v.UserId == userId)) { joke.Views.Add(new View() { UserId = userId }); this.Data.Jokes.Update(joke); this.Data.SaveChanges(); } return(this.Ok(JsonResultWrapper.Create( this.Data.Jokes.All().Where(j => j.Id == id).Select(DetailsJokeDataModel.FromJoke).FirstOrDefault()))); }
public IHttpActionResult Details(Guid id) { var link = this.Data.Links.Find(id); if (link == null) { return(this.BadRequest("Invalid id")); } var userId = this.User.Identity.GetUserId(); if (!link.Views.Any(v => v.UserId == userId)) { link.Views.Add(new View() { UserId = userId }); this.Data.Links.Update(link); this.Data.SaveChanges(); } return(this.Ok(JsonResultWrapper.Create( this.Data.Links.All().Where(l => l.Id == id).Select(DetailsLinkDataModel.FromLink).FirstOrDefault()))); }
public IHttpActionResult Categories() { return(this.Ok(JsonResultWrapper.Create(this.Data.Categories.All().Select(c => c.Name)))); }
public IHttpActionResult Logout() { Authentication.SignOut(CookieAuthenticationDefaults.AuthenticationType); return(Ok(JsonResultWrapper.Create("success"))); }