Exemplo n.º 1
0
        public ActionResult SubmitRoute(SubmitRouteViewModel submitRouteViewModel)
        {
            /*
             * //De serialize Review again
             * IFormatter formatter = new BinaryFormatter();
             * Stream streamB = new FileStream("MyFile.bin",
             *                        FileMode.Open,
             *                        FileAccess.Read,
             *                        FileShare.Read);
             * Review review = (Review)formatter.Deserialize(streamB);
             * streamB.Close();
             * //
             *
             * //De serialize again
             * //IFormatter formatter = new BinaryFormatter();
             * Stream stream2 = new FileStream("MyFile.bin",
             *                        FileMode.Open,
             *                        FileAccess.Read,
             *                        FileShare.Read);
             * Route route = (Route)formatter.Deserialize(stream2);
             * stream2.Close();
             * //
             */
            Route  route  = TmpRouteObject;
            Review review = TmpReviewObject;

            context.Routes.Add(route);
            context.SaveChanges();
            context.Reviews.Add(review);
            context.SaveChanges();
            User getUser = context.Users.Single(u => u.Email == (HttpContext.Session.GetString("_Email")));

            getUser.TrailsBlazed += 1;
            getUser.ReviewsMade  += 1;
            context.SaveChanges();

            IList <RouteReview> existingItems = context.RouteReviews
                                                .Where(rr => rr.ReviewID == review.ID)
                                                .Where(rr => rr.RouteID == route.ID).ToList();

            if (existingItems.Count == 0)
            {
                //var userID = saveFavoriteRouteViewModel.UserID;
                //var routeID = saveFavoriteRouteViewModel.RouteID;
                RouteReview routeReview = new RouteReview
                {
                    Review = context.Reviews.Single(r => r.ID == review.ID),/// May not work if not in database yet!!!!*************************************
                    Route  = context.Routes.Single(r => r.ID == route.ID)
                };
                context.RouteReviews.Add(routeReview);
                context.SaveChanges();
            }

            TempData["Alert"] = "The Ride Route has been added to Database!";

            return(Redirect("/User"));
        }
Exemplo n.º 2
0
        public ActionResult SubmitRoute(SubmitRouteViewModel submitRouteViewModel)
        {
            //De serialize again
            IFormatter formatter = new BinaryFormatter();
            Stream     stream2   = new FileStream("MyFile.bin",
                                                  FileMode.Open,
                                                  FileAccess.Read,
                                                  FileShare.Read);
            Route route = (Route)formatter.Deserialize(stream2);

            stream2.Close();
            //
            context.Routes.Add(route);
            context.SaveChanges();

            TempData["Alert"] = "The Ride Route has been added to Database!";

            return(Redirect("/User"));
        }
Exemplo n.º 3
0
        public ActionResult SendFriendRequest(ProfileViewModel profileViewModel)
        {
            User requestingUser = context.Users.Single(u => u.Email == (HttpContext.Session.GetString("_Email")));
            User requestedUser  = context.Users.Single(u => u.ScreenName == profileViewModel.ProfileUserScreenName);

            FriendRequest friendRequest = new FriendRequest
            {
                RequestingUserID         = requestingUser.ID,
                RequestingUserScreenName = requestingUser.ScreenName,
                RequestedUserID          = requestedUser.ID,
                RequestedUserScreenName  = requestedUser.ScreenName
            };

            context.FriendRequests.Add(friendRequest);
            context.SaveChanges();

            TempData["Alert"] = "Friend request has been sent!";
            return(Redirect("/User"));
        }
Exemplo n.º 4
0
        [HttpPost] // TODO - Need Better validation on all entry Fields!!.
        public IActionResult Register(RegisterUserViewModel registerUserViewModel)
        {
            if (ModelState.IsValid)
            {
                int errorCount = 0;

                //Check if "password" and "confirm password" match:
                if (registerUserViewModel.Password != registerUserViewModel.ConfirmPassword)
                {
                    errorCount++;
                    ViewBag.PasswordMatchError = "Passwords do not match";
                }

                // Check if Email is already used in DB.
                IList <User> usersMatchingEmail = context.Users
                                                  .Where(u => u.Email == registerUserViewModel.Email)
                                                  .ToList();
                if (usersMatchingEmail.Count > 0)
                {
                    ViewBag.EmailInUse = "Email is already in use.";
                    errorCount++;
                }
                // Check if Screen Name is already used in DB.
                IList <User> usersMatchingScreenName = context.Users
                                                       .Where(u => u.ScreenName == registerUserViewModel.ScreenName)
                                                       .ToList();
                if (usersMatchingScreenName.Count > 0)
                {
                    ViewBag.ScreenNameInUse = "Screen Name is already in use.";
                    errorCount++;
                }


                //// stackoverflow.com/questions/5342375/regex-email-validation
                try
                {
                    MailAddress m = new MailAddress(registerUserViewModel.Email);
                }
                catch (FormatException)
                {
                    ViewBag.EmailError = "Invalid Email address.";
                    errorCount++;
                    //return View(registerUserViewModel);
                }
                ////

                if (registerUserViewModel.PhoneNumber != null)
                {
                    ////www.safaribooksonline.com/library/view/regular-expressions-cookbook/9781449327453/ch04s02.html
                    Regex phoneRegex = new Regex(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$");

                    if (phoneRegex.IsMatch(registerUserViewModel.PhoneNumber))
                    {
                        formattedPhoneNumber = phoneRegex.Replace(registerUserViewModel.PhoneNumber, "($1) $2-$3");
                    }
                    else
                    {
                        // TODO - Invalid phone number ViewBag.error
                        errorCount++;
                        ViewBag.PhoneNumberError = "Invalid Phone Number";
                        //return View(registerUserViewModel);
                    }
                    ////
                }

                if (errorCount > 0)
                {
                    return(View(registerUserViewModel));
                }

                var  newSalt      = HashHelp.GeneratePassword(10);
                var  passwordHash = HashHelp.EncodePassword(registerUserViewModel.Password, newSalt);
                User newUser      = new User
                {
                    ScreenName       = registerUserViewModel.ScreenName,
                    Email            = registerUserViewModel.Email,
                    PasswordHash     = passwordHash,
                    HashCode         = newSalt,
                    CreationTime     = DateTime.Now,
                    ModificationTime = DateTime.Now,
                    PhoneNumber      = formattedPhoneNumber
                };// TODO - Why would I need to "Clear a ModelState"?
                context.Users.Add(newUser);
                context.SaveChanges();
                HttpContext.Session.Clear();
                HttpContext.Session.SetString("_Email", registerUserViewModel.Email); // TODO - added as per session guide.
                HttpContext.Session.SetString("_ScreenName", registerUserViewModel.ScreenName);
                return(Redirect("/User"));
            }
            return(View(registerUserViewModel));
        }