Beispiel #1
0
        public ActionResult AlbumForm(CreateAlbumPostForm model)
        {
            model.IsNew = model.AlbumID == null;

            using (var Context = new ProjectDBEntities())
            {
                if (!ModelState.IsValid)
                {
                    return(View(model));
                }

                var selectedGeneres = model.Generes.Where(x => x.IsChecked).ToList();

                var userGuid = (Context.SiteUsers.Where(ax => ax.UserName == User.Identity.Name).FirstOrDefault <SiteUser>()).UserID;

                if (model.IsNew)
                {
                    if (model.AlbumCover == null)
                    {
                        ModelState.AddModelError("AlbumCover", "Album Cover required..");
                    }

                    if (!ModelState.IsValid)
                    {
                        return(View(model));
                    }

                    if (!VerifyPictureExtension(model.AlbumCover.FileName))
                    {
                        ModelState.AddModelError("TrackCover", "Only \".jpg\" & \".png\" files are allowed for cover..");
                    }

                    if (!ModelState.IsValid)
                    {
                        return(View(model));
                    }

                    var albumCoverName       = Guid.NewGuid() + Path.GetExtension(model.AlbumCover.FileName);
                    var albumCoverUploadPath = Server.MapPath("~/users/albums/images");
                    model.AlbumCover.SaveAs(Path.Combine(albumCoverUploadPath, albumCoverName));
                    var albumCoverPathForDb = "/users/albums/images/" + albumCoverName;

                    Album album = new Album()
                    {
                        AlbumTitle     = model.Title,
                        AlbumCoverPath = albumCoverPathForDb,
                        DateAdded      = DateTime.UtcNow,
                        IsActive       = model.IsActive,
                        UserID         = userGuid
                    };

                    Context.Albums.Add(album);

                    Context.SaveChanges();

                    foreach (var item in selectedGeneres)
                    {
                        Context.AlbumGeneres.Add(new AlbumGenere
                        {
                            AlbumID  = album.AlbumID,
                            GenereID = (int)item.ID
                        });
                    }

                    Context.SaveChanges();
                }
                else
                {
                    var album = Context.Albums.Where(tx => tx.AlbumID == model.AlbumID).FirstOrDefault <Album>();

                    string albumCoverPathForDb = null;

                    string oldCover = null;

                    if (model.AlbumCover != null)
                    {
                        if (model.AlbumCover == null)
                        {
                            ModelState.AddModelError("AlbumCover", "Album Cover required..");
                        }

                        if (!ModelState.IsValid)
                        {
                            return(View(model));
                        }

                        if (!VerifyPictureExtension(model.AlbumCover.FileName))
                        {
                            ModelState.AddModelError("TrackCover", "Only \".jpg\" & \".png\" files are allowed for cover..");
                        }


                        if (!ModelState.IsValid)
                        {
                            return(View(model));
                        }

                        oldCover = album.AlbumCoverPath;
                        var albumCoverName       = Guid.NewGuid() + Path.GetExtension(model.AlbumCover.FileName);
                        var albumCoverUploadPath = Server.MapPath("~/users/albums/images");
                        model.AlbumCover.SaveAs(Path.Combine(albumCoverUploadPath, albumCoverName));
                        albumCoverPathForDb = "/users/albums/images/" + albumCoverName;
                    }
                    else
                    {
                        albumCoverPathForDb = album.AlbumCoverPath;
                    }

                    album.AlbumTitle     = model.Title;
                    album.AlbumID        = (Guid)model.AlbumID;
                    album.AlbumCoverPath = albumCoverPathForDb;
                    album.DateAdded      = DateTime.UtcNow;
                    album.IsActive       = model.IsActive;
                    album.UserID         = userGuid;

                    foreach (var item in Context.AlbumGeneres.Where(x => x.AlbumID == album.AlbumID).ToList())
                    {
                        Context.AlbumGeneres.Remove(item);
                    }

                    foreach (var item in selectedGeneres)
                    {
                        Context.AlbumGeneres.Add(new AlbumGenere
                        {
                            AlbumID  = album.AlbumID,
                            GenereID = (int)item.ID
                        });
                    }

                    Context.SaveChanges();

                    if (oldCover != null)
                    {
                        RemoveOld(oldCover);
                    }
                }
            }
            return(RedirectToAction("ListAlbums"));
        }
Beispiel #2
0
        public ActionResult AlbumForm(CreateAlbumPostForm model)
        {
            model.IsNew = model.AlbumID == null;

            using (var Context = new ProjectDBEntities())
            {
                if (!ModelState.IsValid)
                    return View(model);

                var selectedGeneres = model.Generes.Where(x => x.IsChecked).ToList();

                var userGuid = (Context.SiteUsers.Where(ax => ax.UserName == User.Identity.Name).FirstOrDefault<SiteUser>()).UserID;

                if (model.IsNew)
                {
                    if (model.AlbumCover == null)
                        ModelState.AddModelError("AlbumCover", "Album Cover required..");

                    if (!ModelState.IsValid)
                        return View(model);

                    if (!VerifyPictureExtension(model.AlbumCover.FileName))
                        ModelState.AddModelError("TrackCover", "Only \".jpg\" & \".png\" files are allowed for cover..");

                    if (!ModelState.IsValid)
                        return View(model);

                    var albumCoverName = Guid.NewGuid() + Path.GetExtension(model.AlbumCover.FileName);
                    var albumCoverUploadPath = Server.MapPath("~/users/albums/images");
                    model.AlbumCover.SaveAs(Path.Combine(albumCoverUploadPath, albumCoverName));
                    var albumCoverPathForDb = "/users/albums/images/" + albumCoverName;

                    Album album = new Album()
                    {
                        AlbumTitle = model.Title,
                        AlbumCoverPath = albumCoverPathForDb,
                        DateAdded = DateTime.UtcNow,
                        IsActive = model.IsActive,
                        UserID = userGuid
                    };

                    Context.Albums.Add(album);

                    Context.SaveChanges();

                    foreach (var item in selectedGeneres)
                    {
                        Context.AlbumGeneres.Add(new AlbumGenere
                        {
                            AlbumID = album.AlbumID,
                            GenereID = (int)item.ID
                        });
                    }

                    Context.SaveChanges();

                }
                else
                {
                    var album = Context.Albums.Where(tx => tx.AlbumID == model.AlbumID).FirstOrDefault<Album>();

                    string albumCoverPathForDb = null;

                    string oldCover = null;

                    if (model.AlbumCover != null)
                    {
                        if (model.AlbumCover == null)
                            ModelState.AddModelError("AlbumCover", "Album Cover required..");

                        if (!ModelState.IsValid)
                            return View(model);

                        if (!VerifyPictureExtension(model.AlbumCover.FileName))
                            ModelState.AddModelError("TrackCover", "Only \".jpg\" & \".png\" files are allowed for cover..");


                        if (!ModelState.IsValid)
                            return View(model);

                        oldCover = album.AlbumCoverPath;
                        var albumCoverName = Guid.NewGuid() + Path.GetExtension(model.AlbumCover.FileName);
                        var albumCoverUploadPath = Server.MapPath("~/users/albums/images");
                        model.AlbumCover.SaveAs(Path.Combine(albumCoverUploadPath, albumCoverName));
                        albumCoverPathForDb = "/users/albums/images/" + albumCoverName;
                    }
                    else
                        albumCoverPathForDb = album.AlbumCoverPath;

                    album.AlbumTitle = model.Title;
                    album.AlbumID = (Guid)model.AlbumID;
                    album.AlbumCoverPath = albumCoverPathForDb;
                    album.DateAdded = DateTime.UtcNow;
                    album.IsActive = model.IsActive;
                    album.UserID = userGuid;

                    foreach (var item in Context.AlbumGeneres.Where(x => x.AlbumID == album.AlbumID).ToList())
                    {
                        Context.AlbumGeneres.Remove(item);
                    }

                    foreach (var item in selectedGeneres)
                    {
                        Context.AlbumGeneres.Add(new AlbumGenere
                        {
                            AlbumID = album.AlbumID,
                            GenereID = (int)item.ID
                        });
                    }
                    
                    Context.SaveChanges();

                    if (oldCover != null)
                        RemoveOld(oldCover);
                }
            }
            return RedirectToAction("ListAlbums");
        }