Esempio n. 1
0
        protected void NewAlbumButton_Click(object sender, EventArgs e)
        {
            if (!Roles.IsUserInRole("family"))
            {
                ErrorMessage.Text = "<p class=\"errormsg\">Error: You do not have enough permissions to create an album.</p>";
                ErrorMessage.Visible = true;
                return;
            }

            // Add album to database
            using (var db = new NietoYostenDbDataContext())
            {
                var newAlbum = new Album()
                    {
                        Title = AlbumTitle.Text,
                        FolderName = AlbumFolder.Text
                    };
                db.Albums.InsertOnSubmit(newAlbum);
                db.SubmitChanges();
            }
            // Create folders for album
            //string originalDir = Server.MapPath(string.Format("~/pictures/original/{0}", AlbumFolder.Text));
            Directory.CreateDirectory(Server.MapPath(string.Format("~/pictures/original/{0}", AlbumFolder.Text)));
            Directory.CreateDirectory(Server.MapPath(string.Format("~/pictures/web/{0}", AlbumFolder.Text)));
            Directory.CreateDirectory(Server.MapPath(string.Format("~/pictures/thumb/{0}", AlbumFolder.Text)));

            Response.Redirect("~/Pictures.aspx");
        }
Esempio n. 2
0
        protected void DeleteAlbumButton_Click(object sender, EventArgs e)
        {
            if (!Roles.IsUserInRole("family"))
            {
                ErrorMessage.Text = "<p class=\"errormsg\">Error: You do not have enough permissions to delete an album.</p>";
                ErrorMessage.Visible = true;
                return;
            }

            if (DeleteAlbumConfirmed.Value == "true")
            {
                var selAlbums = GetSelectedAlbums();
                using (var db = new NietoYostenDbDataContext())
                {
                    foreach (int albumId in selAlbums)
                    {
                        DeleteAlbum(db, albumId);
                    }
                    db.SubmitChanges();
                }
                Response.Redirect(Request.RawUrl);
            }
        }
Esempio n. 3
0
        protected void DeletePicture_Click(object sender, EventArgs e)
        {
            if (!Roles.IsUserInRole("family"))
            {
                ErrorMessage.Text = "<p class=\"errormsg\">Error: You do not have enough permissions to delete pictures.</p>";
                ErrorMessage.Visible = true;
                return;
            }

            if (DeleteConfirmed.Value == "true")
            {
                var selPics = GetSelectedPictures();

                using (var db = new NietoYostenDbDataContext())
                {
                    foreach (int pictureId in selPics)
                    {
                        NyUtil.DeletePicture(db, Server, pictureId);
                    }
                    db.SubmitChanges();
                }
                Response.Redirect(Request.RawUrl);
            }
        }
Esempio n. 4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (!string.IsNullOrEmpty(Request.Form["signed_request"]))
                {
                    string signedRequest = Request.Form["signed_request"];

                    if (!FacebookUtil.ValidateSignedRequest(signedRequest)) return;

                    var regInfo = FacebookUtil.GetRegistrationInfo(signedRequest);

                    // Check if user is already registered on the site (just re-connecting to the app)
                    bool alreadyRegistered = false;
                    string userName = null;

                    using (var db = new NietoYostenDbDataContext())
                    {
                        if (db.FacebookUserIds.Any(x => x.FbUid == regInfo.UserId))
                        {
                            // Nothing to do here other than log the user in
                            alreadyRegistered = true;
                            userName = FacebookUtil.GetUserNameFromFbUid(db, regInfo.UserId);
                        }
                    }
                    if (alreadyRegistered)
                    {
                        FormsAuthentication.RedirectFromLoginPage(userName, true);
                        return;
                    }

                    // Merge with site user if necessary
                    var existingUser = Membership.GetUserNameByEmail(regInfo.Email);
                    if (!string.IsNullOrEmpty(existingUser))
                    {
                        var aspnetUser = Membership.GetUser(existingUser);
                        var userId = new FacebookUserId()
                            {
                                UserId = (Guid) aspnetUser.ProviderUserKey,
                                FbUid = regInfo.UserId
                            };
                        using (var db = new NietoYostenDbDataContext())
                        {
                            db.FacebookUserIds.InsertOnSubmit(userId);
                            db.SubmitChanges();
                        }

                        // Login user after doing the merge
                        FormsAuthentication.RedirectFromLoginPage(aspnetUser.UserName, true);
                        return;
                    }
                    else
                    {
                        // Create new user
                        MembershipCreateStatus createStatus;
                        var password = "******";
                        var newUser = Membership.CreateUser(regInfo.UserName, password, regInfo.Email, null, null, true, Guid.NewGuid(), out createStatus);

                        // Grant role to user: default to friend for now
                        // TODO: Grant role based on membership to NY family Facebook group
                        Roles.AddUserToRole(newUser.UserName, "friend");

                        switch (createStatus)
                        {
                            case MembershipCreateStatus.Success:
                                var userId = new FacebookUserId()
                                    {
                                        UserId = (Guid) newUser.ProviderUserKey,
                                        FbUid = regInfo.UserId
                                    };
                                using (var db = new NietoYostenDbDataContext())
                                {
                                    db.FacebookUserIds.InsertOnSubmit(userId);
                                    db.SubmitChanges();
                                }
                                FormsAuthentication.RedirectFromLoginPage(newUser.UserName, true);
                                break;

                            default:
                                Response.Redirect("FbRegister.aspx?facebook_result=success");
                                break;
                        }
                    }
                }
            }
        }
Esempio n. 5
0
        public static string EndFileUpload(string folderName, string fileName)
        {
            if (!Roles.IsUserInRole("family"))
            {
                return "Error: Current user is not allowed to upload pictures.";
            }

            string originalPicFile = Path.Combine(
                HttpContext.Current.Server.MapPath("~/pictures/original/" + folderName),
                fileName);

            try
            {
                File.Copy(GetTempFilePath(fileName), originalPicFile);
            }
            catch (IOException)
            {
                return "Error: file with same name already exists in this album.";
            }
            finally
            {
                File.Delete(GetTempFilePath(fileName));
            }

            // Create and save web-sized image
            string webPicFile = HttpContext.Current.Server.MapPath(string.Format(
                "~/pictures/web/{0}/{1}", folderName, fileName));
            ResizeImage(originalPicFile, webPicFile, 640);

            // Create and save thumbnail-sized image
            string thumbPicFile = HttpContext.Current.Server.MapPath(string.Format(
                "~/pictures/thumb/{0}/{1}", folderName, fileName));
            ResizeImage(originalPicFile, thumbPicFile, 120);

            // Add picture to the database
            using (var db = new NietoYostenDbDataContext())
            {
                var album = db.Albums.FirstOrDefault(x => x.FolderName == folderName);

                var picture = new Picture();
                picture.AlbumId = album.Id;

                picture.FileName = fileName;
                picture.Title = fileName;

                db.Pictures.InsertOnSubmit(picture);
                db.SubmitChanges();
            }
            return "Upload successful";
        }