// For Task 4 - Queries //private void PrintAlbumsWithAGivenTag(SocialNetworkDbContext db) //{ // var tagText = Console.ReadLine(); // var result = db // .Albums // .Select(a => new // { // a.Name, // a.User.Username, // a.Tags // }) // .Where(a => a.Tags.All(t => t.Tag.Name == tagText)) // .OrderByDescending(a => a.Tags.Count) // .ThenBy(a => a.Name) // .ToList(); // foreach (var album in result) // { // Console.WriteLine($"Album: {album.Name}"); // Console.WriteLine($"--Owner: {album.Username}"); // } //} private void SeedAlbumsInUsers() { Console.WriteLine("Adding Albums to User..."); using (var db = new SocialNetworkDbContext()) { var users = db.Users.ToList(); var albums = db.Albums.ToList(); for (int i = 0; i < users.Count; i++) { var user = users[i]; var albumsInUserCount = random.Next(5, 15); for (int j = 0; j < albumsInUserCount; j++) { var album = albums[random.Next(0, albums.Count)]; if (user.Albums.All(a => a.AlbumId != album.Id)) { var albumInUser = new UserAlbum { AlbumId = album.Id }; user.Albums.Add(albumInUser); db.SaveChanges(); } } } } }
public static async Task AddUserAlbum(UserAlbum userAlbum) { var con = await GetUserDbConnection(); await con.InsertOrReplaceAsync(userAlbum); await con.CloseAsync(); }
private void AddUserAlbumToDb(User user, Album album) { var userAlbum = new UserAlbum { UserId = user.Id, AlbumId = album.Id, }; this.Db.UserAlbums.Add(userAlbum); this.Db.SaveChanges(); }
public static int Save( this IRepository <UserAlbum> repository, [NotNull] int userId, [NotNull] string title, [NotNull] int?coverImageId) { var entity = new UserAlbum { UserID = userId, Title = title, CoverImageID = coverImageId, Updated = DateTime.UtcNow }; var newId = repository.Insert(entity); repository.FireNew(entity); return(newId); }
public static int AddAlbum(string idUser, string nameAlbum) { TokenDatabaseContext context = new TokenDatabaseContext(); Album album = new Album(); album.NameOfAlbum = nameAlbum; context.Album.Add(album); context.SaveChanges(); int idAlbum = (from u in context.Album select u.Id).ToList().Last(); UserAlbum userAlbum = new UserAlbum(); userAlbum.UserId = idUser; userAlbum.AlbumId = idAlbum; context.UserAlbum.Add(userAlbum); context.SaveChanges(); return(idAlbum); }
public async Task <IActionResult> AddAlbum(AddAlbumModel model, string returnUrl = null) { if (string.IsNullOrEmpty(model.Name)) //这里应该是要前端检查的。 { return(View(model)); } if (ModelState.IsValid) { ViewData["ReturnUrl"] = returnUrl; var user = await _userManager.GetUserAsync(User); if (user == null) { return(View(model)); //失败,因为用户不存在 } //查看是否有重名Album var query = _context.Albums.Where(q => q.BelongerId == user.Id && q.Name == model.Name); if (query.Any()) { return(View(model)); //有重名,失败 } //创建album var album = new UserAlbum() { Name = model.Name, BelongerId = user.Id }; _context.Albums.Add(album); _context.SaveChanges(); //为该相册创建目录 var webRootPath = _hostingEnvironment.WebRootPath; var albumPath = $"{webRootPath}/images/Albums/{album.Id}"; Directory.CreateDirectory(albumPath); album.AlbumPath = $"/images/Albums/{album.Id}"; _context.SaveChanges(); //之所以访问两遍数据库时,是因为第一次访问数据库后,album.Id才能确定。 return(Redirect(returnUrl)); } return(View(model)); //失败 }
public IEnumerable <UserAlbum> GetThumbnailList() { List <UserAlbum> userAlbumList = new List <UserAlbum>(); UserAlbum userAlbum; IEnumerable <tbl_UserAlbum> source = null; // Return List of Customer //source = db.tbl_UserAlbum.Where(p=>p.col_PostedDateTime.Day==DateTime.Now.Day).ToList(); source = db.tbl_UserAlbum.ToList(); foreach (var p in source) { var postedById = db.AspNetUsers.Where(m => m.Id == p.col_UserId).FirstOrDefault(); var postedBy = postedById.FirstName + " " + postedById.LastName + " " + postedById.School + " " + postedById.RollNo; userAlbum = new UserAlbum(); userAlbum.col_Description = p.col_Description; userAlbum.col_Photo = p.col_Photo; userAlbum.col_UserId = postedBy; userAlbum.col_UserAlbumID = p.col_UserAlbumID; userAlbumList.Add(userAlbum); } return(userAlbumList); }
private static void SeedSharePhotoAlbums(SocialNetworkDbContext context) { var users = context .Users .Where(x => x.Friends.Any()) .Select(x => new { User = x, UserFriends = x.Friends.Select(f => f.Friend).ToArray(), Albums = x.Albums.Select(a => a).ToArray() }) .ToArray(); var random = new Random(); for (int i = 0; i < users.Length; i++) { var currentUserData = users[i]; var currentUser = currentUserData.User; var currentUserAlbumsData = currentUserData.Albums; for (int j = 0; j < currentUserAlbumsData.Count(); j++) { var currentAlbum = currentUserAlbumsData[j]; try { var userAlbum = new UserAlbum() { UserId = currentUser.Id, User = currentUser, AlbumId = currentAlbum.Id, Album = currentAlbum, UserRole = UserRole.Owner, }; currentUser.UserAlbum.Add(userAlbum); context.SaveChanges(); } catch (Exception) { } var randomFriendsNumber = random.Next(1, currentUserData.UserFriends.Count()); for (int k = 0; k < randomFriendsNumber; k++) { try { var currentFriend = currentUserData.UserFriends[k]; var userAlbum = new UserAlbum() { UserId = currentFriend.Id, User = currentFriend, AlbumId = currentAlbum.Id, Album = currentAlbum, UserRole = UserRole.Viewer }; currentFriend.UserAlbum.Add(userAlbum); context.SaveChanges(); } catch (Exception) { } } } } }
public IHttpResponse PostCreateAlbum(DoAlbumInputViewModel model) { Regex albumNameRegex = new Regex(@"^\w{3,30}$"); Regex coverUrlRegex = new Regex(@"^\b((http|https):\/\/?)[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|\/?))$"); string cookieValue = this.Request.Cookies.GetCookie(AuthenticationCookieKey).Value; string username = this.UserCookieService.DecryptString(cookieValue, EncryptKey); string userId = this.Context .Users .First(user => user.Username == username) .Id; string albumId = Guid.NewGuid().ToString(); model.Cover = StringExtensions.UrlDecode(model.Cover); Album album = new Album() { Id = albumId, Name = model.Name, Cover = model.Cover }; UserAlbum userAlbum = new UserAlbum() { Id = Guid.NewGuid().ToString(), UserId = userId, AlbumId = albumId }; if (!albumNameRegex.Match(model.Name).Success || !coverUrlRegex.Match(model.Cover).Success) { GetCreateAlbumPageViewModel createPageViewModel = new GetCreateAlbumPageViewModel() { ErrorMessage = InvalidAlbumInformationError }; return(this.View("AlbumsCreate", HttpResponseStatusCode.BadRequest, createPageViewModel)); } else if (this.Context.UserAlbums.Where(ua => ua.UserId == userId).Any(a => a.Album.Name == model.Name)) { GetCreateAlbumPageViewModel createPageViewModel = new GetCreateAlbumPageViewModel() { ErrorMessage = AlbumAlreadyExistsError }; return(this.View("AlbumsCreate", HttpResponseStatusCode.BadRequest, createPageViewModel)); } using (this.Context) { this.Context .Add(album); this.Context .UserAlbums .Add(userAlbum); this.Context.SaveChanges(); } AlbumDetailsViewModel viewModel = new AlbumDetailsViewModel() { Name = model.Name, Price = $"{album.Price.ToString(CultureInfo.InvariantCulture):F2}", Tracks = new AlbumTrack[0], Cover = model.Cover, CreateTrack = $"'/Tracks/Create?albumId={album.Id}'" }; return(this.View("album", HttpResponseStatusCode.Ok, viewModel)); }
public HomeController() { _userAlbum = new UserAlbum(); logger = LogManager.GetCurrentClassLogger(); }