public IActionResult QueueUpdate(QueueUpdateInputModel model) { Console.WriteLine("In QUEUE_UPDATE"); var queue = _db.Queues.FirstOrDefault(q => q.Id == model.QueueId); if (queue == null || string.IsNullOrEmpty(model.QueueTitle)) { return(RedirectToAction("Show", new { queueId = model.QueueId })); } if (model.QueueTitle.Length > 50) { return(RedirectToAction("Show", new { queueId = model.QueueId })); } queue.Title = model.QueueTitle; queue.IsPrivate = model.QueueVisibility.Equals("private"); _db.SaveChanges(); return(RedirectToAction("Show", new { queueId = model.QueueId })); }
public IActionResult CreateTeam(string teamName, string desc) { if (string.IsNullOrEmpty(teamName)) { return(RedirectToAction("UserHome", "Account")); } var normalizedTeamName = teamName.ToUpper(); if (normalizedTeamName.Equals("PERSONAL")) { Console.WriteLine("TEAMNAME CANNOT BE \'PERSONAL\'"); return(RedirectToAction("UserHome", "Account")); } var currentUserId = _userManager.GetUserId(HttpContext.User); var teams = _db.Teams.Where(t => t.CreatorId == currentUserId).ToList(); foreach (var t in teams) { var normalizedTName = t.Name.ToUpper(); if (!normalizedTName.Equals(normalizedTeamName)) { continue; } Console.WriteLine("Team Already Exists"); return(RedirectToAction("UserHome", "Account")); } if (desc == null) { desc = teamName + "'s description."; } var team = new Team { Name = teamName, CreatorId = currentUserId, Description = desc, IsPrivate = true, CreatedOn = DateTime.Now }; _db.Teams.Add(team); _db.SaveChanges(); var userTeam = new UserTeam { UserId = currentUserId, TeamId = team.Id, IsAdmin = true }; _db.UserTeams.Add(userTeam); _db.SaveChanges(); return(RedirectToAction("UserHome", "Account")); }
public async Task <IActionResult> Register(RegisterModel model) { if (ModelState.IsValid) { var user = await _userManager.FindByNameAsync(model.UserName); if (user != null) { ModelState.AddModelError("reg-err", "Username already exists"); return(View("Index")); } user = new QueueItUser { Id = Guid.NewGuid().ToString(), FirstName = model.FirstName, LastName = model.LastName, UserName = model.UserName, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { var team = new Team { Name = "Personal", CreatorId = user.Id, Description = "This is your Personal Team. " + "Use it to keep track of your Queues and Tasks " + "that you might not want to share with your other teams.", IsPrivate = true, CreatedOn = DateTime.Now }; _db.Teams.Add(team); _db.SaveChanges(); var userTeam = new UserTeam { UserId = user.Id, TeamId = team.Id, IsAdmin = true }; _db.UserTeams.Add(userTeam); _db.SaveChanges(); var queue = new Models.Queue { Title = "Personal Queue", TeamId = team.Id, CreatorId = user.Id, IsPrivate = true, CreatedOn = DateTime.Now, UpdatedOn = DateTime.Now }; var userNotificationSetting = new UserNotificationSetting { UserId = user.Id, NotificationsOn = true }; _db.UserNotificationSettings.Add(userNotificationSetting); _db.SaveChanges(); _db.Queues.Add(queue); _db.SaveChanges(); var token = await _userManager.GenerateEmailConfirmationTokenAsync(user); var confirmationEmail = Url.Action("ConfirmEmailAddress", "Home", new { token = token, email = user.Email }, Request.Scheme); System.IO.File.WriteAllText("confirmation.txt", confirmationEmail); var fullName = user.FirstName + " " + user.LastName; const string from = "*****@*****.**"; const string fromName = "QueueIT"; const string subject = "QueueIT: Confirm Your Email"; var body = "<br/>Your username is:<br/><br/><b>" + user.UserName + "</b><br/><br/>Visit this link to confirm your email and gain access to the site. <br/><br/>" + confirmationEmail + "<br/><br/>Thanks for using the site!<br/><br/>"; _emailSender.SendEmail(user.Email, fullName, @from, fromName, subject, body, true); } else { foreach (var error in result.Errors) { ModelState.AddModelError("reg-err", error.Description); } return(View("Index")); } return(View("Index")); } ModelState.AddModelError("reg-err", ""); return(View("Index")); }