Example #1
0
 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))));
 }
Example #2
0
        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)));
        }
Example #3
0
        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)));
        }
Example #4
0
        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)));
        }
Example #5
0
        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)));
        }
Example #6
0
 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(),
     })));
 }
Example #7
0
        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))));
        }
Example #8
0
        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")));
        }
Example #9
0
        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)));
        }
Example #10
0
        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())));
        }
Example #11
0
        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())));
        }
Example #12
0
 public IHttpActionResult Categories()
 {
     return(this.Ok(JsonResultWrapper.Create(this.Data.Categories.All().Select(c => c.Name))));
 }
Example #13
0
 public IHttpActionResult Logout()
 {
     Authentication.SignOut(CookieAuthenticationDefaults.AuthenticationType);
     return(Ok(JsonResultWrapper.Create("success")));
 }