示例#1
0
        public async Task AddComment(string?id, string?text = "")
        {
            var        UserName   = Context.User.Identity.Name;
            Коментарий коментарий = new Коментарий()
            {
                ID_коментария    = Guid.NewGuid(),
                ID_Записи        = Guid.Parse(id),
                ID_Пользователя  = Guid.Parse(UserName),
                Текст_коментария = text,
                Дата_коментария  = DateTime.Now
            };

            _context.Add(коментарий);
            Блог блог = (from запись in _context.Запись
                         join блог_таблица in _context.Блог
                         on запись.ID_Блога equals блог_таблица.ID_Блога
                         where запись.ID_Записи == Guid.Parse(id)
                         select блог_таблица).ToList().First();
            Пользователь  пользователь = _context.Пользователь.Find(Guid.Parse(UserName));
            List <string> подписчики   = _context.Подписчик.Where(t => t.ID_Блога == блог.ID_Блога)
                                         .Select(t => t.ID_Пользователя.ToString().ToLower())
                                         .ToList();

            _context.SaveChanges();
            await Clients.All.SendAsync("CommentAdded", new
            {
                id               = коментарий.ID_коментария,
                id_post          = коментарий.ID_Записи,
                text             = коментарий.Текст_коментария,
                user_name        = пользователь.Имя,
                user_second_name = пользователь.Фамилия
            });
        }
示例#2
0
        public async Task Create(string?text, string?BlogId, IList <string> files)
        {
            var attachments       = new List <byte[]>();
            var stringattachments = new List <string>();

            foreach (var data in files)
            {
                var hernya = data.Split(',');
                var suka   = hernya[1];
                stringattachments.Add(hernya[1]);
                attachments.Add(Convert.FromBase64String(suka));
            }
            var           UserName   = Context.User.Identity.Name;
            Блог          блог       = _context.Блог.Find(Guid.Parse(BlogId));
            List <string> подписчики = _context.Подписчик.Where(t => t.ID_Блога == блог.ID_Блога).Select(t => t.ID_Пользователя.ToString().ToLower()).ToList();
            Запись        запись     = new Запись
            {
                ID_Записи       = Guid.NewGuid(),
                ID_Блога        = Guid.Parse(BlogId),
                Дата_публикации = DateTime.Now,
                Название        = null,
                Текст           = text
            };

            _context.Add(запись);
            foreach (var file in attachments)
            {
                Guid   ID_Data = Guid.NewGuid();
                Данные данные  = new Данные()
                {
                    Data = file,
                    ID   = ID_Data
                };
                Приложение приложение = new Приложение()
                {
                    ID_Data   = ID_Data,
                    ID_Записи = запись.ID_Записи,
                    Данные    = данные,
                    Запись    = запись
                };
                _context.Add(данные);
                _context.Add(приложение);
            }
            _context.SaveChanges();
            await Clients.All.SendAsync("Publicated", new
            {
                id_блога        = блог.ID_Блога,
                id_записи       = запись.ID_Записи,
                блог            = блог.Название,
                запись          = запись.Название,
                лайки           = 0,
                коментарии      = 0,
                дата_публикации = запись.Дата_публикации.ToLocalTime(),
                текст           = запись.Текст,
                приложения      = stringattachments,
            });
        }
示例#3
0
        public IActionResult CreateSociety(Блог блог)
        {
            Guid IdUser = Guid.Parse(HttpContext.User.Identity.Name);

            блог.ID_Создателя  = IdUser;
            блог.ID_Блога      = Guid.NewGuid();
            блог.Дата_создания = DateTime.Now;
            Подписчик подписчик = new Подписчик
            {
                ID_Блога        = блог.ID_Блога,
                ID_Пользователя = блог.ID_Создателя,
            };

            _context.Блог.Add(блог);
            _context.Подписчик.Add(подписчик);
            _context.SaveChanges();
            return(RedirectToAction("PublicsList", "Blogs"));
        }
示例#4
0
        public IActionResult BlogPosts(string?id, int page = 0)
        {
            int pagesize = 4;
            List <PostBlogCommentActionViewModel> postBlogCommentActionViewModels = new List <PostBlogCommentActionViewModel>();
            Guid Id   = Guid.Parse(id);
            Блог blog = _context.Блог.Include(t => t.Подписчики).FirstOrDefault(t => t.ID_Блога == Id);
            IEnumerable <Запись> Записи = _context.Запись.Where(t => t.ID_Блога == blog.ID_Блога && t.Удалён == 0).OrderByDescending(t => t.Дата_публикации).Skip(page * pagesize).Take(pagesize).ToList();

            foreach (var post in Записи)
            {
                IEnumerable <Коментарий> коментарии = _context.Коментарий.Include(t => t.Пользователь).Where(t => t.ID_Записи == post.ID_Записи).ToList();
                IEnumerable <Дествие>    дествия    = _context.Дествие.Include(t => t.Пользователь).Where(t => t.ID_Записи == post.ID_Записи).ToList();
                IEnumerable <Данные>     data       = (from данные in _context.Данные
                                                       join приложения in _context.Приложение on данные.ID equals приложения.ID_Data
                                                       where приложения.ID_Записи == post.ID_Записи
                                                       select данные).ToList();
                postBlogCommentActionViewModels.Add(new PostBlogCommentActionViewModel
                {
                    Запись     = post,
                    Блог       = blog,
                    Коментарии = коментарии,
                    Дествия    = дествия,
                    Данные     = data,
                });
            }
            if (Записи.Count() == 0)
            {
                postBlogCommentActionViewModels.Add(new PostBlogCommentActionViewModel
                {
                    Запись     = null,
                    Блог       = blog,
                    Коментарии = null,
                    Дествия    = null,
                });
            }
            if (page != 0)
            {
                return(PartialView("_Posts", postBlogCommentActionViewModels));
            }
            return(View(postBlogCommentActionViewModels));
        }