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")); }
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")); }
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")); }
[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)); }