Example #1
0
        public ActionResult Active(string userId)
        {
            try
            {
                Guid guid = Guid.Parse(userId);

                using (var Context = new ProjectDBEntities())
                {
                    var User = Context.SiteUsers.Where(sxu => sxu.UserID == guid).ToList();

                    if (User.Count > 0)
                    {
                        User[0].UserStatusID = 2;

                        if (Context.SaveChanges() == 1)
                            ViewBag.Message = "User status updated successfully..";
                        else
                            ViewBag.Message = "Unable to update user..";
                    }
                    else
                        ViewBag.Message = "No such user..";

                    return RedirectToAction("All");
                }
            }
            catch(Exception)
            {
                return HttpNotFound();
            }
        }
Example #2
0
        public ActionResult Form(GenerePostForm model)
        {
            model.IsNew = model.GenereID == null;

            using (var Context = new ProjectDBEntities())
            {
                var validation = Context.Generes.Where(gx => gx.GenereDetail == model.Detail).FirstOrDefault<Genere>();
                if (validation != null)
                    ModelState.AddModelError("Detail", "This \"Genere\" already exist.. ");

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

                if (model.IsNew)
                {
                    Genere genere = new Genere()
                    {
                        GenereDetail = model.Detail,
                        IsActive = model.IsActive
                    };

                    Context.Generes.Add(genere);
                }
                else
                {
                    var genere = Context.Generes.Where(nx => nx.GenereID == model.GenereID).FirstOrDefault<Genere>();
                    genere.GenereDetail = model.Detail;
                    genere.IsActive = model.IsActive;
                }

                Context.SaveChanges();
            }
            return RedirectToAction("Index");

        }
Example #3
0
        public ActionResult ChangePassword(AdminChangePasswordViewModel model)
        {
            if(ModelState.IsValid)
            {
                if(User.Identity.IsAuthenticated && User.IsInRole("admin"))
                {
                    using(var Context = new ProjectDBEntities())
                    {
                        var OldHashedPassword = Hashing.CreateHash(model.OldPassword);

                        var user = Context.Administrators.Where(ax => ax.AdminUserName == User.Identity.Name && ax.AdminPassword == OldHashedPassword).FirstOrDefault<Administrator>();
                        if (user != null)
                        {
                            user.AdminPassword = Hashing.CreateHash(model.NewPassword);
                            Context.SaveChanges();
                            ViewBag.Message = "Password Changed Successfully to " + model.NewPassword;
                            return View(new AdminChangePasswordViewModel());
                        }
                        else
                        {
                            ViewBag.Message = "Old password seems different";
                            return View(new AdminChangePasswordViewModel());
                        }
                    }
                }
            }

            return Content(User.Identity.Name);
        }
Example #4
0
        public ActionResult New(UsersCreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                using (var Context = new ProjectDBEntities())
                {

                    var UserStatus = Context.UserStatus.Where(usx => usx.UserStatusDetail == "Pending").FirstOrDefault<UserStatu>();

                    model.DateCreated = DateTime.Now;
                    model.DateActivated = DateTime.Now;

                    Mapper.CreateMap<UsersCreateViewModel, SiteUser>();
                    SiteUser User = Mapper.Map<SiteUser>(model);


                    User.UserStatusID = UserStatus.UserStatusID;
                    User.UserPass = Hashing.CreateHash(model.UserPass);

                    Context.SiteUsers.Add(User);

                    if (Context.SaveChanges() == 1)
                        ViewBag.Message = "User added successfully..";
                    else
                        ViewBag.Message = "User cannot be added at the moment..";
                }
            }
            return View(new UsersCreateViewModel());
        }
Example #5
0
 public ActionResult Delete(int genereId)
 {
     using (var Context = new ProjectDBEntities())
     {
         if (!Context.Generes.Any(n => n.GenereID == genereId))
             return HttpNotFound();
         else
         {
             Context.Generes.Remove(Context.Generes.Where(nx => nx.GenereID == genereId).FirstOrDefault<Genere>());
             Context.SaveChanges();
         }
         return RedirectToAction("Index");
     }
 }
Example #6
0
        public ActionResult EditProfile(EditProfileViewModel model)
        {
            if(!ModelState.IsValid)
            {
                return View(model);
            }

            using (var Context = new ProjectDBEntities())
            {
                var user = Context.SiteUsers.Where(x => x.UserName == User.Identity.Name).FirstOrDefault<SiteUser>();

                if (user.UserID != model.ID)
                {
                    ViewBag.Message = "You cannot edit others profile..";
                    return View(model);
                }

                var userEmailValidation = Context.SiteUsers
                    .Where(x => x.UserEmail == model.Email && x.UserID != user.UserID)
                    .FirstOrDefault<SiteUser>();

                if (userEmailValidation != null)
                {
                    ViewBag.Message = "There is already a user with same email";
                    return View(model);
                }

                user.UserFirstName = model.FirstName;
                user.UserMiddleName = model.MiddleName;
                user.UserLastName = model.LastName;
                user.UserEmail = model.Email;

                Context.SaveChanges();
                ViewBag.Message = "Profile edited Successfully..";

                return View(model);
            }

        }
Example #7
0
        public ActionResult Like(Guid id)
        {
            var Context = new ProjectDBEntities();

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

            //check if track exists
            var track = Context.Tracks.Where(x => x.TrackID == id).FirstOrDefault<Track>();

            if (track == null)
                return HttpNotFound();

            //check if track is shared or not and privacy of track is registered user && public..
            var sharedTrack = Context.UserTrackShares
                .Where(x => x.TrackID == id && (x.SharingType.SharingTypeDetail == "Users Only" || x.SharingType.SharingTypeDetail == "Public"))
                .FirstOrDefault<UserTrackShare>();

            if (sharedTrack == null)
                return HttpNotFound();

            //check if track is already liked by the current user
            var liked = Context.UserTrackShareLikes
                .Where(x => x.UserTrackShareID == sharedTrack.UserTrackSharedID && x.LikedBy == userID)
                .FirstOrDefault<UserTrackShareLike>();

            if (liked != null)
            {
                return new JsonResult
                {
                    Data = new { code = "error", message = "You already liked this song" },
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet
                };

            }
            else
            {
                Context.UserTrackShareLikes.Add(new UserTrackShareLike
                    {
                        UserTrackShareID = sharedTrack.UserTrackSharedID,
                        LikedBy = userID
                    });

                Context.SaveChanges();

                return new JsonResult
                {
                    Data = new { code = "success", likes = track.UserTrackShares.Select(x => x.UserTrackShareLikes.Count()).ToList()[0] },
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet
                };
            }
        }
Example #8
0
        public ActionResult ResetPassword(string userId, UsersResetPasswordViewModel model)
        {
            try
            {
                Guid guid = Guid.Parse(userId);

                using (var Context = new ProjectDBEntities())
                {
                    var User = Context.SiteUsers.Where(sxu => sxu.UserID == guid).FirstOrDefault<SiteUser>();

                    if (User != null)
                    {
                        if (Mailer.NotifyNewPassword(userId, model.UserPass))
                        {
                            User.UserPass = Hashing.CreateHash(model.UserPass);
                            Context.SaveChanges();
                        }
                        else
                        {
                            model.UserID = guid;
                            ModelState.AddModelError("Email", "SMTP Not working..");
                            return View(model);
                        }
                    }
                    else
                        return HttpNotFound();
                }

                return RedirectToAction("All");
            }
            catch(Exception)
            {
                return HttpNotFound();
            }
        }
Example #9
0
        public ActionResult ChangePassword(ChangePasswordViewModel model)
        {
            if (!ModelState.IsValid)
                return View(model);

            using (var Context = new ProjectDBEntities())
            {
                var oldPassword = Hashing.CreateHash(model.OldPassword);
                var user = Context.SiteUsers
                    .Where(x => x.UserName == User.Identity.Name && x.UserPass == oldPassword)
                    .FirstOrDefault<SiteUser>();

                if (user == null)
                {
                    ViewBag.Message = "Old password doesn't match..";
                    return View(model);
                }

                user.UserPass = Hashing.CreateHash(model.NewPassword);

                Context.SaveChanges();

                ViewBag.Message = "Password Changed Successfully..";
                return View(new ChangePasswordViewModel());
            }
        }
Example #10
0
        public ActionResult Form(PostForm model)
        {
            model.IsNew = model.NewsID == null;

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


            using (var Context = new ProjectDBEntities())
            {
                var adminGuid = (Context.Administrators.Where(ax => ax.AdminUserName == User.Identity.Name).FirstOrDefault<Administrator>()).AdminID;

                if (model.IsNew)
                {

                    News news = new News()
                    {
                        NewsTitle = model.Title,
                        NewsSlug = model.Slug,
                        NewsContents = model.Contents,
                        PostedBy = adminGuid,
                        PostedDate = DateTime.UtcNow
                    };

                    Context.News.Add(news);
                    
                }
                else
                {
                    var news = Context.News.Where(nx => nx.NewsID == model.NewsID).FirstOrDefault<News>();
                    news.NewsTitle = model.Title;
                    news.NewsSlug = model.Slug;
                    news.NewsContents = model.Contents;
                    news.PostedDate = DateTime.UtcNow;
                    news.PostedBy = adminGuid;
                }
                Context.SaveChanges();
            }
            return RedirectToAction("Index");

        }
Example #11
0
        public ActionResult AddSongsInAlbum(AddSongsInAlbumViewModel model)
        {
            var Context = new ProjectDBEntities();

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

            ViewBag.Albums = Context.Albums
                .Where(x => x.UserID == userID && x.IsActive == true && x.UserID == userID)
                .ToList();

            ViewBag.SharingTypes = Context.SharingTypes.ToList();


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

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

            var album = Context.Albums
                .Where(x => x.AlbumID == model.AlbumID && x.AlbumTitle != "Default")
                .FirstOrDefault<Album>();

            if (album == null)
                ModelState.AddModelError("Album", "Album ID is not Correct..");

            if (!VerifyMP3Extension(model.Track.FileName))
                ModelState.AddModelError("Track", "Only \".mp3\" file is allowed for Track..");

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

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

            var trackName = Guid.NewGuid() + Path.GetExtension(model.Track.FileName);
            var trackUploadPath = Server.MapPath("~/users/tracks");
            var trackPathForDb = "/users/tracks/" + trackName;
            model.Track.SaveAs(Path.Combine(trackUploadPath, trackName));

            var trackCoverName = Guid.NewGuid() + Path.GetExtension(model.TrackCover.FileName);
            var trackCoverUploadPath = Server.MapPath("~/users/tracks/images");
            model.TrackCover.SaveAs(Path.Combine(trackCoverUploadPath, trackCoverName));
            var trackCoverPathForDb = "/users/tracks/images/" + trackCoverName;

            Track track = new Track()
            {
                TrackTitle = model.Title,
                AlbumID = model.AlbumID,
                TrackPath = trackPathForDb,
                TrackCoverPath = trackCoverPathForDb,
                DateAdded = DateTime.UtcNow,
                IsActive = true,
                UserID = userID
            };

            Context.Tracks.Add(track);
            Context.SaveChanges();

            foreach (var item in selectedGeneres)
            {
                Context.TrackGeneres.Add(new TrackGenere
                {
                    TrackId = track.TrackID,
                    GenereID = (int)item.ID
                });
            }

            Context.SaveChanges();

            Context.UserTrackShares.Add(new UserTrackShare
            {
                TrackID = track.TrackID,
                SharingTypeID = model.SharingTypeID,
                SharingDate = DateTime.UtcNow
            });

            Context.SaveChanges();

            ViewBag.Message = "Track added..";

            return View(new AddSongsInAlbumViewModel
            {
                Generes = Context.Generes
                        .Where(x => x.IsActive == true)
                        .Select(genere => new GenereCheckBox
                        {
                            ID = genere.GenereID,
                            Name = genere.GenereDetail,
                            IsChecked = false
                        }).ToList()
            });
        }
Example #12
0
        public ActionResult ForgotPassword(AdminForgotPasswordViewModel model)
        {
            if(ModelState.IsValid)
            {
                using(var Context = new ProjectDBEntities())
                {
                    var admin = Context.Administrators.Where(x => x.AdminEmail == model.Email).FirstOrDefault<Administrator>();
                    if(admin==null)
                    {
                        ViewBag.Message = "No Such User..";
                        return View(model);
                    }

                    string generatedPassword = Hashing.GeneratePassword();
                    if (Mailer.ForgotPasswordAdmin(admin.AdminUserName, generatedPassword))
                    {

                        admin.AdminPassword = Hashing.CreateHash(generatedPassword);
                        Context.SaveChanges();
                        ViewBag.Message = "New Password has been sent to admin email..";
                        return View(new AdminForgotPasswordViewModel());
                    }
                    else
                    {
                        ViewBag.Message = "SMTP is not working.. try later..";
                        return View(new AdminForgotPasswordViewModel());
                    }

                }
            }

            return View(model);
        }
Example #13
0
        public ActionResult RestoreSong(Guid trackId)
        {
            using (var Context = new ProjectDBEntities())
            {
                var guid = (Context.SiteUsers.Where(sxu => sxu.UserName == User.Identity.Name).FirstOrDefault<SiteUser>()).UserID;
                var track = Context.Tracks.Where(nx => nx.TrackID == trackId && nx.UserID == guid).FirstOrDefault<Track>();

                if (track == null)
                    return HttpNotFound();

                track.IsActive = true;
                Context.SaveChanges();

                return RedirectToAction("ListSongs");
            }
        }
Example #14
0
        public ActionResult DeleteSong(Guid trackId)
        {
            using (var Context = new ProjectDBEntities())
            {
                var guid = (Context.SiteUsers.Where(sxu => sxu.UserName == User.Identity.Name).FirstOrDefault<SiteUser>()).UserID;

                var track = Context.Tracks.Find(trackId);

                if (track == null)
                    return HttpNotFound();
                else
                {
                    var trackShare = Context.UserTrackShares
                        .Where(x => x.TrackID == track.TrackID)
                        .FirstOrDefault<UserTrackShare>();

                    Context.UserTrackShares.Remove(trackShare);

                    Context.Tracks.Remove(track);
                    Context.SaveChanges();

                    RemoveOld(track.TrackCoverPath);
                    RemoveOld(track.TrackPath);
                }
                return RedirectToAction("ListSongs");
            }
        }
Example #15
0
        public ActionResult SignUp(SignUpViewModel model)
        {

            if (User.Identity.IsAuthenticated && User.IsInRole("user"))
                return RedirectToRoute(new { controller = "Home", action = "Index" });

            if (ModelState.IsValid)
            {
                using (ProjectDBEntities Context = new ProjectDBEntities())
                {
                    var Userx = Context.SiteUsers.Where(ux => ux.UserName == model.Username).FirstOrDefault<SiteUser>();
                    var UserStatus = Context.UserStatus.Where(usx => usx.UserStatusDetail == "Active").FirstOrDefault<UserStatu>();

                    if (Userx != null)
                    {
                        ViewBag.Message = "Username is already taken..";
                        return View(new SignUpViewModel());
                    }

                    var userWithEmail = Context.SiteUsers.Where(x => x.UserEmail == model.UserEmail).FirstOrDefault<SiteUser>();
                    if(userWithEmail!=null)
                    {
                        ViewBag.Message = "There is already a user with same Email..";
                        return View(new SignUpViewModel());
                    }

                    SiteUser SU = new SiteUser()
                    {
                        UserFirstName = model.UserFirstName,
                        UserLastName = model.UserLastName,
                        UserName = model.Username,
                        UserEmail = model.UserEmail,
                        DateCreated = DateTime.Now,
                        UserStatusID = UserStatus.UserStatusID
                    };

                    //Validating Middle Name
                    if (model.UserMiddleName != null)
                        SU.UserMiddleName = model.UserMiddleName;

                    //Hashing Password
                    SU.UserPass = Hashing.CreateHash(model.UserPass);

                    Context.SiteUsers.Add(SU);

                    if (Context.SaveChanges() == 1)
                    {
                        ViewBag.Message = "User Added Successfully";

                    }
                    else
                    {
                        ViewBag.Message = "User Cannot Be Added";

                    }
                    return View(new SignUpViewModel());


                }
            }
            else
                return View(new SignUpViewModel());
        }
Example #16
0
        public ActionResult ForgotPassword(ForgotPasswordViewModel model)
        {
            var attempts = Convert.ToInt32(Session["fpattempts"]);
            attempts++;
            Session["fpattempts"] = attempts;

            if (attempts >= 3)
            {
                ModelState.AddModelError("UserName", "You have exceeded the maximum valid attempts..");
                return View(model);
            }

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

            using (var Context = new ProjectDBEntities())
            {
                var user = Context.SiteUsers.Where(sxu => sxu.UserName == model.UserName).FirstOrDefault<SiteUser>();

                if (user == null)
                {
                    ViewBag.Message = "Are you sure about username..??";
                    return View(model);
                }

                if (user != null)
                {
                    var newPassword = Hashing.GeneratePassword();

                    if (Mailer.ForgotPassword(user.UserName, newPassword))
                    {
                        user.UserPass = Hashing.CreateHash(newPassword);
                        Context.SaveChanges();
                        Session["fpattempts"] = null;
                    }
                    else
                    {
                        ModelState.AddModelError("Email", "SMTP Not working.. Try later or Contact Admin..");
                        return View(model);
                    }
                }
            }
            return View();
        }
Example #17
0
        public ActionResult RestoreAlbum(Guid albumId)
        {
            using (var Context = new ProjectDBEntities())
            {
                var guid = (Context.SiteUsers.Where(x => x.UserName == User.Identity.Name).FirstOrDefault<SiteUser>()).UserID;
                var album = Context.Albums.Where(x => x.AlbumID == albumId && x.UserID == guid).FirstOrDefault<Album>();

                if (album == null)
                    return HttpNotFound();

                album.IsActive = true;
                Context.SaveChanges();

                return RedirectToAction("ListAlbums");
            }
        }
Example #18
0
        public ActionResult DeleteAlbum(Guid albumId)
        {
            using (var Context = new ProjectDBEntities())
            {
                var guid = (Context.SiteUsers
                    .Where(sxu => sxu.UserName == User.Identity.Name)
                    .FirstOrDefault<SiteUser>()
                    ).UserID;

                var album = Context.Albums
                    .Where(nx => nx.AlbumID == albumId && nx.UserID == guid && nx.AlbumTitle != "Default")
                    .FirstOrDefault<Album>();

                if (album == null)
                    return HttpNotFound();
                else
                {
                    Context.Albums.Remove(album);
                    Context.SaveChanges();
                    RemoveOld(album.AlbumCoverPath);
                }
                return RedirectToAction("ListAlbums");
            }
        }
Example #19
0
        public ActionResult Restore(int genereId)
        {
            using (var Context = new ProjectDBEntities())
            {
                var news = Context.Generes.Where(nx => nx.GenereID == genereId).FirstOrDefault<Genere>();
                if (news == null)
                    return HttpNotFound();

                news.IsActive = true;
                Context.SaveChanges();

                return RedirectToAction("Index");
            }
        }
Example #20
0
        public ActionResult SongForm(ShareSongPostForm model)
        {
            model.IsNew = model.ID == null;

            using (var Context = new ProjectDBEntities())
            {

                ViewBag.SharingTypes = Context.SharingTypes.ToList();


                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;
                var albumID = (Context.Albums.Where(ax => ax.AlbumTitle == "Default").FirstOrDefault<Album>()).AlbumID;

                if (!Context.SharingTypes.Any(x => x.SharingTypeID == model.SharingTypeID))
                    ModelState.AddModelError("SharingType", "No Such Sharing Exists..");

                if (model.IsNew)
                {
                    if (model.Track == null)
                        ModelState.AddModelError("Track", "Track File is required..");

                    if (model.TrackCover == null)
                        ModelState.AddModelError("TrackCover", "Track Cover is required..");
                    
                    if (!ModelState.IsValid)
                        return View(model);

                    if (!VerifyMP3Extension(model.Track.FileName))
                        ModelState.AddModelError("Track", "Only \".mp3\" file is allowed for Track..");

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

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

                    var trackName = Guid.NewGuid() + Path.GetExtension(model.Track.FileName);
                    var trackUploadPath = Server.MapPath("~/users/tracks");
                    var trackPathForDb = "/users/tracks/" + trackName;
                    model.Track.SaveAs(Path.Combine(trackUploadPath, trackName));

                    var trackCoverName = Guid.NewGuid() + Path.GetExtension(model.TrackCover.FileName);
                    var trackCoverUploadPath = Server.MapPath("~/users/tracks/images");
                    model.TrackCover.SaveAs(Path.Combine(trackCoverUploadPath, trackCoverName));
                    var trackCoverPathForDb = "/users/tracks/images/" + trackCoverName;


                    Track track = new Track()
                    {
                        TrackTitle = model.Title,
                        AlbumID = albumID,
                        TrackPath = trackPathForDb,
                        TrackCoverPath = trackCoverPathForDb,
                        DateAdded = DateTime.UtcNow,
                        IsActive = true,
                        UserID = userGuid
                    };
                    
                    Context.Tracks.Add(track);

                    Context.SaveChanges();

                    foreach (var item in selectedGeneres)
                    {
                        Context.TrackGeneres.Add(new TrackGenere
                        {
                            TrackId = track.TrackID,
                            GenereID = (int)item.ID
                        });
                    }

                    Context.SaveChanges();

                    Context.UserTrackShares.Add(new UserTrackShare
                    {
                        TrackID = track.TrackID,
                        SharingTypeID = model.SharingTypeID,
                        SharingDate = DateTime.UtcNow
                    });

                    Context.SaveChanges();
                }
                else
                {
                    var track = Context.Tracks.Where(tx => tx.TrackID == model.ID).FirstOrDefault<Track>();

                    if (track == null)
                        return HttpNotFound();

                    var trackShare = Context.UserTrackShares
                        .Where(x => x.UserTrackSharedID == model.TrackShareID)
                        .FirstOrDefault<UserTrackShare>();

                    if (trackShare == null)
                        return HttpNotFound();

                    string trackPathForDb = null;
                    string oldTrack = null;

                    if (model.Track != null)
                    {
                        if (!VerifyMP3Extension(model.Track.FileName))
                            ModelState.AddModelError("Track", "Only \".mp3\" file is allowed for Track..");
                        
                        if (!ModelState.IsValid)
                            return View(model);

                        oldTrack = track.TrackPath;

                        var trackName = Guid.NewGuid() + Path.GetExtension(model.Track.FileName);
                        var trackUploadPath = Server.MapPath("~/users/tracks");
                        trackPathForDb = "/users/tracks/" + trackName;
                        model.Track.SaveAs(Path.Combine(trackUploadPath, trackName));
                        
                    }
                    else
                        trackPathForDb = track.TrackPath;

                    string trackCoverPathForDb = null;
                    string oldCover = null;
                    if (model.TrackCover != null)
                    {
                        if (!VerifyPictureExtension(model.TrackCover.FileName))
                            ModelState.AddModelError("TrackCover", "Only \".jpg\" & \".png\" files are allowed for cover..");

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

                        oldCover = track.TrackCoverPath;

                        var trackCoverName = Guid.NewGuid() + Path.GetExtension(model.TrackCover.FileName);
                        var trackCoverUploadPath = Server.MapPath("~/users/tracks/images");
                        model.TrackCover.SaveAs(Path.Combine(trackCoverUploadPath, trackCoverName));
                        trackCoverPathForDb = "/users/tracks/images/" + trackCoverName;
                        RemoveOld(track.TrackCoverPath);
                    }
                    else
                        trackCoverPathForDb = track.TrackCoverPath;

                    if (!ModelState.IsValid)
                        return View(model);
                    
                    track.TrackTitle = model.Title;
                    track.AlbumID = (Guid)model.AlbumID;
                    track.TrackPath = trackPathForDb;
                    track.TrackCoverPath = trackCoverPathForDb;
                    track.DateAdded = DateTime.UtcNow;
                    track.IsActive = model.IsActive;
                    track.UserID = userGuid;

                    trackShare.SharingTypeID = model.SharingTypeID;

                    foreach (var item in Context.TrackGeneres.Where(x => x.TrackId == track.TrackID).ToList())
                    {
                        Context.TrackGeneres.Remove(item);
                    }

                    foreach (var item in selectedGeneres)
                    {
                        Context.TrackGeneres.Add(new TrackGenere
                            {
                                TrackId = track.TrackID,
                                GenereID = (int)item.ID
                            });    
                    }

                    Context.SaveChanges();

                    if (oldTrack != null)
                        RemoveOld(oldTrack);

                    if (oldCover != null)
                        RemoveOld(oldCover);

                }
            }
            return RedirectToAction("ListSongs");
        }
Example #21
0
        public ActionResult Restore(int newsId)
        {
            using (var Context = new ProjectDBEntities())
            {
                var news = Context.News.Where(nx => nx.NewsID == newsId).FirstOrDefault<News>();
                if (news == null)
                    return HttpNotFound();

                news.DeleteDate = null;
                Context.SaveChanges();

                return RedirectToAction("Index");
            }
        }
Example #22
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");
        }