public ActionResult UploadFileToTicket([Bind(Include = "TicketId,FileName")] TicketAttachment ticketAttachments, string AttachmentDescription, HttpPostedFileBase file) { if (file == null) { TempData["Error"] = "You must Supply a vaild File"; return(RedirectToAction("Dashboard", "Tickets", new { id = ticketAttachments.TicketId })); } if (ModelState.IsValid) { if (FileUploadValidator.IsWebFriendlyImage(file) || FileUploadValidator.IsWebFriendlyFile(file)) { ticketAttachments.Created = DateTime.Now; ticketAttachments.UserId = User.Identity.GetUserId(); ticketAttachments.Description = AttachmentDescription; var fileName = FileStamp.MakeUnique(file.FileName); var serverFolder = WebConfigurationManager.AppSettings["DefaultAttachmentFolder"]; file.SaveAs(Path.Combine(Server.MapPath(serverFolder), fileName)); ticketAttachments.FilePath = $"{serverFolder}{fileName}"; ticketAttachments.FileName = fileName; db.TicketAttachments.Add(ticketAttachments); db.SaveChanges(); notificationHelper.TicketNewAttachmentAdded(ticketAttachments); return(RedirectToAction("Dashboard", "Tickets", new { id = ticketAttachments.TicketId })); } } //ViewBag.TicketId = new SelectList(db.Tickets, "Id", "SubmitterId", ticketAttahment.TicketId); //ViewBag.UserId = new SelectList(db.Users, "Id", "FirstName", ticketAttahment.UserId); TempData["Error"] = "Model Invalid"; return(RedirectToAction("Dashboard", "Tickets", new { id = ticketAttachments.TicketId })); }
public ActionResult Create([Bind(Include = "TicketId,FileName,Description")] TicketAttachment ticketAttachment, HttpPostedFileBase file) { if (ModelState.IsValid) { ticketAttachment.Created = DateTime.Now; ticketAttachment.UserId = User.Identity.GetUserId(); if (file == null) { TempData["Error"] = "You must supply a file."; return(RedirectToAction("Dashboard", "Tickets", new { id = ticketAttachment.TicketId })); } if (FileUploadValidator.IsWebFriendlyImage(file) || FileUploadValidator.IsWebFriendlyFile(file)) { var fileName = FileStamp.MakeUnique(file.FileName); var serverFolder = WebConfigurationManager.AppSettings["DefaultServerFolder"]; file.SaveAs(Path.Combine(Server.MapPath(serverFolder), fileName)); ticketAttachment.FilePath = $"{serverFolder}{fileName}"; } db.TicketAttachments.Add(ticketAttachment); db.SaveChanges(); var ticket = db.Tickets.Find(ticketAttachment.TicketId); if (ticket.DeveloperId != User.Identity.GetUserId()) { ticketManager.AttachmentNotifications(ticket); } return(RedirectToAction("Dashboard", "Tickets", new { id = ticketAttachment.TicketId })); } TempData["Error"] = "The model was invalid."; return(RedirectToAction("Dashboard", "Tickets", new { id = ticketAttachment.TicketId })); }
public async Task <ActionResult> Register(ExtendedRegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, AvatarPath = "/Avatars/purpleuser.png" }; if (model.Avatar != null) { if (ImageUploadValidator.IsWebFriendlyImage(model.Avatar)) { var fileName = FileStamp.MakeUnique(model.Avatar.FileName); var serverFolder = WebConfigurationManager.AppSettings["DefaultServerFolder"]; model.Avatar.SaveAs(Path.Combine(Server.MapPath(serverFolder), fileName)); user.AvatarPath = $"{serverFolder}{fileName}"; } } var result = await UserManager.CreateAsync(user, model.Password); if (user.Roles.FirstOrDefault() == null) { roleHelper.AddUserToRole(user.Id, "Unassigned"); } if (result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code }, protocol: Request.Url.Scheme); try { var from = "Bug Tracker<*****@*****.**>"; var email = new MailMessage(from, model.Email) { Subject = "Confirm Your Acount", Body = "Please confirm your email by clicking <a href=\"" + callbackUrl + "\">here</a> ", IsBodyHtml = true }; var svc = new EmailService(); await svc.SendAsync(email); //return View("EmailConfirmed"); } catch (Exception ex) { Console.WriteLine(ex.Message); await Task.FromResult(0); } return(RedirectToAction("Index", "Home")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public async Task <ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModelExtended model, string returnUrl) { if (User.Identity.IsAuthenticated) { return(RedirectToAction("Index", "Manage")); } if (ModelState.IsValid) { // Get the information about the user from the external login provider var info = await AuthenticationManager.GetExternalLoginInfoAsync(); if (info == null) { return(View("ExternalLoginFailure")); } var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, AvatarPath = WebConfigurationManager.AppSettings["DefaultAvatarPath"] }; if (model.Avatar != null) { if (FileUploadValidator.IsWebFriendlyImage(model.Avatar)) { var fileName = FileStamp.MakeUnique(model.Avatar.FileName); var AvatarFolder = WebConfigurationManager.AppSettings["DefaultAvatarFolder"]; model.Avatar.SaveAs(Path.Combine(Server.MapPath(AvatarFolder), fileName)); user.AvatarPath = $"{AvatarFolder}{fileName}"; } } var result = await UserManager.CreateAsync(user); if (result.Succeeded) { result = await UserManager.AddLoginAsync(user.Id, info.Login); if (result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); return(RedirectToLocal(returnUrl)); } } AddErrors(result); } ViewBag.ReturnUrl = returnUrl; return(View(model)); }
public async Task <ActionResult> AcceptInvitation(AcceptInvitationVM model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, HouseholdId = model.HouseholdId }; if (model.Avatar != null) { if (FileUploadValidator.IsWebFriendlyImage(model.Avatar)) { var fileName = FileStamp.MakeUnique(model.Avatar.FileName); var serverFolder = WebConfigurationManager.AppSettings["DefaultServerFolder"]; model.Avatar.SaveAs(Path.Combine(Server.MapPath("~" + serverFolder), fileName)); user.AvatarPath = $"{serverFolder}/{fileName}"; } } var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { rolesHelper.AddUserToRole(user.Id, "Member"); InvitationHelper.MarkAsInvalid(model.InvitationId); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return(RedirectToAction("Dashboard", "Home")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public ActionResult ChangeAvatar(HttpPostedFileBase file) { if (file != null) { if (ImageUploadValidator.IsWebFriendlyImage(file)) { var user = db.Users.Find(User.Identity.GetUserId()); var fileName = FileStamp.MakeUnique(file.FileName); var serverFolder = WebConfigurationManager.AppSettings["DefaultServerFolder"]; file.SaveAs(Path.Combine(Server.MapPath(serverFolder), fileName)); user.AvatarPath = $"{serverFolder}{fileName}"; db.SaveChanges(); } } return(RedirectToAction("Index", "Home")); }
public async Task <ActionResult> Register(ExtendedRegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, AvatarPath = "/Images/default_avatar.png" }; if (model.Avatar != null) { if (FileUploadValidator.IsWebFriendlyImage(model.Avatar)) { var fileName = FileStamp.MakeUnique(model.Avatar.FileName); model.Avatar.SaveAs(Path.Combine(Server.MapPath("~/Avatars"), fileName)); user.AvatarPath = "/Avatars/" + fileName; } } var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return(RedirectToAction("Index", "Home")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public ActionResult ManageUser(ManageUserVM userVM, string roleName, string projects) { List <Project> oldProjects = projectHelper.ListUserProjects(userVM.UserId).ToList(); var oldUser = db.Users.AsNoTracking().FirstOrDefault(u => u.Id == userVM.UserId); var user = db.Users.Find(userVM.UserId); user.Email = userVM.Email; user.UserName = userVM.Email; user.FirstName = userVM.FirstName; user.LastName = userVM.LastName; user.PhoneNumber = userVM.PhoneNumber; user.AvatarPath = userVM.AvatarPath; if (FileUploadValidator.IsWebFriendlyImage(userVM.Avatar)) { var fileName = FileStamp.MakeUnique(userVM.Avatar.FileName); var serverFolder = WebConfigurationManager.AppSettings["DefaultAvatarFolder"]; userVM.Avatar.SaveAs(Path.Combine(Server.MapPath(serverFolder), fileName)); user.AvatarPath = $"{serverFolder}{fileName}"; } db.SaveChanges(); projectHelper.updateUserProjects(userVM.UserId, userVM.ProjectIds); if (roleName != null) { foreach (var role in roleHelper.ListUserRoles(user.Id)) { roleHelper.RemoveUserFromRole(user.Id, role); } if (!string.IsNullOrEmpty(roleName)) { roleHelper.AddUserToRole(user.Id, roleName); } } var newUser = db.Users.AsNoTracking().FirstOrDefault(u => u.Id == userVM.UserId); historyHelper.CheckUserEdits(oldUser, newUser, oldProjects); return(RedirectToAction("Index")); }
public async Task <ActionResult> Create([Bind(Include = "TicketId,FileName")] TicketAttachment ticketAttachment, HttpPostedFileBase file) { if (ModelState.IsValid) { ticketAttachment.Ticket = db.Tickets.Find(ticketAttachment.TicketId); var oldTicket = db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == ticketAttachment.TicketId); db.Entry(ticketAttachment.Ticket).State = EntityState.Modified; if (ticketAttachment.FileName == null) { TempData["Error"] = "You must supply a File Name of at least three characters"; return(RedirectToAction("Details", "Tickets", new { id = ticketAttachment.TicketId })); } ticketAttachment.Created = DateTime.Now; ticketAttachment.UserId = User.Identity.GetUserId(); if (file == null) { TempData["Error"] = "You must supply a file"; return(RedirectToAction("Details", "Tickets", new { id = ticketAttachment.TicketId })); } if (FileUploadValidator.IsWebFriendlyFile(file) || ImageUploadValidator.IsWebFriendlyImage(file)) { var fileName = FileStamp.MakeUnique(file.FileName); var serverFolder = WebConfigurationManager.AppSettings["DefaultServerFolder"]; file.SaveAs(Path.Combine(Server.MapPath(serverFolder), fileName)); ticketAttachment.FilePath = $"{serverFolder}{fileName}"; db.TicketAttachments.Add(ticketAttachment); db.SaveChanges(); var newTicket = db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == ticketAttachment.TicketId); await ticketHelper.ManageTicketNotifications(oldTicket, newTicket, "no"); } return(RedirectToAction("Details", "Tickets", new { id = ticketAttachment.TicketId })); } TempData["Error"] = "The Model State was invalid. I apologize"; return(RedirectToAction("Details", "Tickets", new { id = ticketAttachment.TicketId })); }
public ActionResult Create([Bind(Include = "TicketId,FileName,Description")] TicketAttachment ticketAttachment, HttpPostedFileBase file) { if (file == null) { TempData["Error"] = "You must submit a file."; return(RedirectToAction("Details", "Tickets", new { id = ticketAttachment.TicketId })); } if (ModelState.IsValid) { //Pass it through a file validator if (FileUploadValidator.IsWebFriendlyFile(file)) { ticketAttachment.Created = DateTime.Now; ticketAttachment.UserId = User.Identity.GetUserId(); var fileName = FileStamp.MakeUnique(file.FileName); //Assign the filePath property and save the physical file var serverFolder = WebConfigurationManager.AppSettings["DefaultAttachmentFolder"]; file.SaveAs(Path.Combine(Server.MapPath(serverFolder), fileName)); ticketAttachment.FilePath = $"{serverFolder}{fileName}"; db.TicketAttachments.Add(ticketAttachment); db.SaveChanges(); } return(RedirectToAction("Details", "Tickets", new { id = ticketAttachment.TicketId })); } TempData["Error"] = "The model is invalid."; return(RedirectToAction("Details", "Tickets", new { id = ticketAttachment.Ticket.Id })); //ViewBag.TicketId = new SelectList(db.Tickets, "Id", "SubmitterId", ticketAttachment.TicketId); //ViewBag.UserId = new SelectList(db.Users, "Id", "FirstName", ticketAttachment.UserId); //return View(ticketAttachment); }
public async Task <ActionResult> CreateNewUser(CreateNewUserViewModel model, List <int> AllProjects, string RoleName) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, AvatarPath = WebConfigurationManager.AppSettings["DefaultAvatarPath"], PhoneNumber = model.PhoneNumber }; if (model.Avatar != null) { if (FileUploadValidator.IsWebFriendlyImage(model.Avatar)) { var fileName = FileStamp.MakeUnique(model.Avatar.FileName); var serverFolder = WebConfigurationManager.AppSettings["DefaultAvatarFolder"]; model.Avatar.SaveAs(Path.Combine(Server.MapPath(serverFolder), fileName)); user.AvatarPath = $"{serverFolder}{fileName}"; } } var result = await UserManager.CreateAsync(user, Membership.GeneratePassword(12, 1)); if (result.Succeeded) { roleHelper.AddUserToRole(user.Id, RoleName); foreach (var projectId in AllProjects) { projectHelper.AddUserToProject(user.Id, projectId); } // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); try { var from = "BugTracker Admin<*****@*****.**>"; var email = new MailMessage(from, model.Email) { Subject = "Confirm Your Account", Body = "Please confirm your account by Clicking here <a href=\"" + callbackUrl + "\">here</a> ", IsBodyHtml = true }; var svc = new EmailService(); await svc.SendAsync(email); //return View(new EmailModel()); } catch (Exception ex) { Console.WriteLine(ex.Message); await Task.FromResult(0); } //await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return(RedirectToAction("Login", "Account")); } AddErrors(result); } // If we got this far, something failed, redisplay form ViewBag.AllProjects = new MultiSelectList(db.Projects.ToList(), "Id", "Name"); ViewBag.RoleName = new SelectList(db.Roles, "Name", "Name", "Default"); return(View(model)); }
public async Task <ActionResult> Register(ExtendedRegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, AvatarPath = WebConfigurationManager.AppSettings["DefaultAvatarPath"] }; if (model.Avatar != null) { if (FileUploadValidator.IsWebFriendlyImage(model.Avatar)) { var fileName = FileStamp.MakeUnique(model.Avatar.FileName); var AvatarFolder = WebConfigurationManager.AppSettings["DefaultAvatarFolder"]; model.Avatar.SaveAs(Path.Combine(Server.MapPath(AvatarFolder), fileName)); user.AvatarPath = $"{AvatarFolder}{fileName}"; } } var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { UserManager.AddToRole(user.Id, "Default"); //await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); try { var from = "BugTracker Admin<*****@*****.**>"; var email = new MailMessage(from, model.Email) { Subject = "Confirm Your Account", Body = "Please confirm your account by Clicking here <a href=\"" + callbackUrl + "\">here</a> ", IsBodyHtml = true }; var svc = new EmailService(); await svc.SendAsync(email); //return View(new EmailModel()); } catch (Exception ex) { Console.WriteLine(ex.Message); await Task.FromResult(0); } //await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return(RedirectToAction("Login", "Account")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(RedirectToAction("Login", "Account")); }