public IActionResult Index(string?id) { IEnumerable <Дружба> друзья; if (id == null) { Guid Id = Guid.Parse(HttpContext.User.Identity.Name); ViewData["id"] = Id; Microsoft.Data.SqlClient.SqlParameter param = new Microsoft.Data.SqlClient.SqlParameter("@FriendID", Id); друзья = _context.Дружба.FromSqlRaw("EXEC GetFriends @FriendID", param).ToList(); друзья = друзья.Where(t => t.Код_статуса == 2).ToList(); } else { ViewData["id"] = id; Microsoft.Data.SqlClient.SqlParameter param = new Microsoft.Data.SqlClient.SqlParameter("@FriendID", Guid.Parse(id)); друзья = _context.Дружба.FromSqlRaw("EXEC GetFriends @FriendID", param).ToList(); друзья = друзья.Where(t => t.Код_статуса == 2).ToList(); } List <UserFriendBlogViewModel> users = new List <UserFriendBlogViewModel>(); foreach (var друг in друзья) { Аватарка аватарка = _context.Аватарка.Include(t => t.Данные).FirstOrDefault(t => t.ID_Пользователя == друг.ID_Друга); users.Add(new UserFriendBlogViewModel() { Аватарка = аватарка, CountBlogs = 0, CountFollowers = 0, дружбы = null, пользователь = _context.Пользователь.FirstOrDefault(t => t.ID == друг.ID_Друга), }); } return(View(users)); }
public IActionResult FindByName(string?pattern) { Guid IdUser = Guid.Parse(HttpContext.User.Identity.Name); IEnumerable <Пользователь> пользователи = _context.Пользователь.Where(t => EF.Functions.Like(t.Фамилия, pattern + "%") || EF.Functions.Like(t.Имя, pattern + "%")).ToList(); пользователи = пользователи.Where(t => t.ID != IdUser).ToList(); List <UserFriendBlogViewModel> users = new List <UserFriendBlogViewModel>(); foreach (var user in пользователи) { Аватарка аватарка = _context.Аватарка.Include(t => t.Данные).FirstOrDefault(t => t.ID_Пользователя == user.ID && t.Используется == true); users.Add(new UserFriendBlogViewModel() { CountBlogs = 0, Аватарка = аватарка, дружбы = null, CountFollowers = 0, пользователь = user, записи_пользователя = null }); } return(View(users)); }
public IActionResult EditAvatar(AvatarViewModel files) { Пользователь пользователь = _context.Пользователь.FirstOrDefault(t => t.ID == files.ID_Пользователя); Guid Data_ID = Guid.NewGuid(); byte[] avatarData = null; using (var binaryReader = new BinaryReader(files.Avatar.OpenReadStream())) { avatarData = binaryReader.ReadBytes((int)files.Avatar.Length); } List <Аватарка> аватарки = _context.Аватарка.Where(t => t.ID_Пользователя == пользователь.ID).ToList(); foreach (var ава in аватарки) { ава.Используется = false; } Данные данные = new Данные() { ID = Data_ID, Data = avatarData, }; Аватарка аватарка = new Аватарка() { ID_Пользователя = пользователь.ID, Используется = true, Дата_изменения = DateTime.Now, ID_Data = Data_ID, Данные = данные, Пользователь = пользователь, }; _context.Данные.Add(данные); _context.Аватарка.Add(аватарка); _context.SaveChanges(); return(RedirectToAction("GetUserInfo")); }
public IActionResult GetUserInfo(string?id) { Пользователь пользователь; if (id == null) { id = HttpContext.User.Identity.Name; } пользователь = _context.Пользователь.FirstOrDefault(t => t.ID == Guid.Parse(id)); Microsoft.Data.SqlClient.SqlParameter param = new Microsoft.Data.SqlClient.SqlParameter("@FriendID", пользователь.ID); IEnumerable <Дружба> Friends = _context.Дружба.FromSqlRaw("EXEC GetFriends @FriendID", param).ToList().ToList(); int CountFollowers = _context.Дружба.FromSqlRaw("EXEC GetFriends @FriendID", param).ToList().Where(t => t.Код_статуса == 1).Count(); int BlogsCount = (from блог in _context.Блог join подписчик in _context.Подписчик on блог.ID_Блога equals подписчик.ID_Блога where подписчик.ID_Пользователя == пользователь.ID select new { id = блог.ID_Блога }).ToList().Count(); Аватарка аватарка = _context.Аватарка.Include(t => t.Данные).FirstOrDefault(t => t.ID_Пользователя == Guid.Parse(id) && t.Используется == true); List <Запись> записи = _context.Запись.Include(t => t.Блог).Include(t => t.Коментарии).Include(t => t.Действия).Include(t => t.Приложения) .Where(t => t.Блог.Код_типа == 4 && t.Блог.Код_типа_тематики == 15 && t.Блог.ID_Создателя == Guid.Parse(id) && t.Удалён == 0) .OrderByDescending(t => t.Дата_публикации).ToList(); List <PostBlogCommentActionViewModel> posts = new List <PostBlogCommentActionViewModel>(); List <Данные> все_данные = (from данные in _context.Данные join приложение in _context.Приложение on данные.ID equals приложение.ID_Data join запись in _context.Запись on приложение.ID_Записи equals запись.ID_Записи join блог in _context.Блог on запись.ID_Блога equals блог.ID_Блога where блог.ID_Создателя == Guid.Parse(id) && блог.Код_типа == 4 select данные).ToList(); foreach (var item in записи) { List <Дествие> дествия = _context.Дествие.Include(t => t.Пользователь).Where(t => t.ID_Записи == item.ID_Записи).ToList(); List <Данные> данные = (from данное in все_данные join приложение in item.Приложения on данное.ID equals приложение.ID_Data select данное).ToList(); posts.Add(new PostBlogCommentActionViewModel() { Блог = item.Блог, Дествия = дествия, Запись = item, Коментарии = item.Коментарии, Данные = данные }); } Guid id_personal_blog = _context.Блог.First(t => t.ID_Создателя == пользователь.ID && t.Код_типа == 4).ID_Блога; UserFriendBlogViewModel userFriendBlogViewModel = new UserFriendBlogViewModel { пользователь = пользователь, CountBlogs = BlogsCount, CountFollowers = CountFollowers, дружбы = Friends, Аватарка = аватарка, записи_пользователя = posts, Id_personal_Blog = id_personal_blog }; return(View(userFriendBlogViewModel)); }