public async Task <ActionResult> UpdateAvatar(string ID)
        {
            var db         = new GeeksForLessTestDBEntities();
            var userAvatar = db.AspNetUsers.FirstOrDefault(m => m.Id == ID);


            if (string.IsNullOrEmpty(ID) || Request.Files["avatar"] == null)
            {
                return(PartialView("UserAvatar", userAvatar.Avatar));
            }

            var    file = @Request.Files["avatar"];
            string fileName;
            string filePath;
            string json = string.Empty;

            fileName = file.FileName;
            Directory.CreateDirectory(Server.MapPath("~/Content/img/"));
            filePath = Path.Combine(Server.MapPath("~/Content/img/" + fileName));
            file.SaveAs(filePath);



            userAvatar.Avatar = "/Content/img/" + fileName;
            await db.SaveChangesAsync();

            return(PartialView("UserAvatar", userAvatar.Avatar ?? ""));
        }
        public async Task <ActionResult> AddComment(CommentViewModel model)
        {
//            ViewBag.str = model.Reply_to + ' ' + model.Text + ' ' + model.Theme + ' ' + model.Author.Id;

            if (!ModelState.IsValid)
            {
                return(PartialView(new CommentViewModel()));
            }

            var  db = new GeeksForLessTestDBEntities();
            long temp;

            long.TryParse(model.Reply_to.ToString(), out temp);

            var message = new Themes_messages()
            {
                Theme            = model.Theme,
                Text             = model.Text,
                Reply_to         = temp == 0 ? null : (long?)temp,
                Publication_date = DateTime.Now,
                Author           = User.Identity.GetIdOfUser()
            };

            db.Themes_messages.Add(message);
            await db.SaveChangesAsync();

            return(RedirectToAction("GetTheme", "Themes", new { ID = model.Theme }));
        }
示例#3
0
        public async Task <ActionResult> AddTheme(AddThemeViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            using (var db = new GeeksForLessTestDBEntities())
            {
                long temp;
                long.TryParse(model.MainThemeId, out temp);
                string authorID = db.AspNetUsers.Where(user => user.UserName == User.Identity.Name).FirstOrDefault().Id;
                var    theme    = new Themes
                {
                    Name             = model.Name,
                    Text             = model.Text,
                    Main_theme       = temp == 0 ? null : (long?)temp,
                    Publication_date = DateTime.Now,
                    Author           = authorID
                };

                db.Themes.Add(theme);
                await db.SaveChangesAsync();

                return(RedirectToAction("GetTheme", "Themes", new { ID = theme.Id }));
            }
        }
示例#4
0
        public async Task <ActionResult> RemoveTheme(long ID)
        {
            var db = new GeeksForLessTestDBEntities();

            db.Themes.Remove(db.Themes.FirstOrDefault(theme => theme.Id == ID));

            await db.SaveChangesAsync();

            return(RedirectToAction("Index", "Themes"));
        }
        public async Task <ActionResult> RemoveComment(long?ID)
        {
            var db      = new GeeksForLessTestDBEntities();
            var comment = db.Themes_messages.Find(ID);
            var theme   = comment.Themes;

            db.Themes_messages.Remove(comment);

            await db.SaveChangesAsync();

            return(RedirectToAction("GetTheme", "Themes", new { ID = theme.Id }));
        }
示例#6
0
        public async Task <ActionResult> ChangeTheme(ChangeThemeViewModel model, string returnUrl)
        {
            if (model == null)
            {
                return(RedirectToLocal(returnUrl));
            }

            var db    = new GeeksForLessTestDBEntities();
            var Theme = db.Themes.FirstOrDefault(m => m.Id == model.Id);

            if (Theme != null)
            {
                Theme.Main_theme = model.MainThemeId;
                Theme.Name       = model.Name;
                Theme.Text       = model.Text;
            }
            await db.SaveChangesAsync();

            return(RedirectToAction("GetTheme", "Themes", new { ID = model.Id }));
        }
        public async Task <ActionResult> ChangeComment(ChangeCommentViewModel model, string returnUrl)
        {
            if (model == null || !model.Id.HasValue)
            {
                return(RedirectToLocal(returnUrl));
            }

            var db      = new GeeksForLessTestDBEntities();
            var Comment = db.Themes_messages.FirstOrDefault(m => m.Id == model.Id.Value);

            if (Comment != null)
            {
                Comment.Reply_to = model.ReplyToId;
                Comment.Text     = model.Message.Text;
            }
            await db.SaveChangesAsync();


            var theme        = Comment.Themes;
            var Messages     = db.Themes_messages.Where(themeMessage => themeMessage.Theme == theme.Id);
            var MessageLikes = new List <CommentLikesView>();

            foreach (var message in Messages)
            {
                var Likes = db.Likes.Where(Like => Like.Target == message.Id /* && Like.Target_type == 1*/);
                MessageLikes.Add(new CommentLikesView()
                {
                    Comment = message, Likes = Likes
                });
            }

            ViewBag.ReturnUrl = returnUrl;
            ViewBag.user      = db.AspNetUsers.Where(u => u.UserName == User.Identity.Name).FirstOrDefault();
            ViewBag.Theme     = theme;
            return(PartialView("Messages", MessageLikes));
        }