public ActionResult ToggleRole(string id, string role) { var user = db.Users.Find(id); var isInRole = false; if (user != null) { var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(db)); var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db)); if (!roleManager.RoleExists(role)) { roleManager.Create(new IdentityRole(role)); } if (userManager.IsInRole(id, role)) { userManager.RemoveFromRole(id, role); } else { userManager.AddToRole(id, role); isInRole = true; } db.SaveChanges(); } return(Json(new { id = id, isInRole = isInRole, role = role })); }
public ActionResult Edit(Donation donation) { if (ModelState.IsValid) { var sendEmail = false; var uploads = Server.MapPath("~/content/uploads"); var image = Request.Files["DonationImage"]; if (image != null && image.ContentLength > 0) { if (!Directory.Exists(uploads)) { Directory.CreateDirectory(uploads); } image.SaveAs(uploads + "\\" + image.FileName); donation.ImageUrl = "/content/uploads/" + image.FileName; } if (donation.DonationId == 0) { db.Donations.Add(donation); donation.DonatedById = User.Identity.GetUserId(); sendEmail = true; } else { db.Entry(donation).State = System.Data.Entity.EntityState.Modified; } db.SaveChanges(); //donation.DonatedBy.PhoneNumber = donation.Phone; //db.SaveChanges(); try { if (sendEmail) { var message = new MailMessage(); message.To.Add(ConfigurationManager.AppSettings["donationsEmail"]); var agencyRole = db.Roles.Where(x => x.Name == "Agency").SingleOrDefault(); if (agencyRole != null) { var userIds = agencyRole.Users.Select(x => x.UserId).ToList(); var users = db.Users.Where(x => userIds.Contains(x.Id) && x.EmailConfirmed).Select(x => x.Email).ToList(); foreach (var user in users) { message.Bcc.Add(new MailAddress(user)); } } var domainName = Request.Url.GetLeftPart(UriPartial.Authority); message.Subject = "New Donation Available: " + donation.Title; message.Body = "A new donation has been added at " + domainName + "\r\n\r\nTitle: " + donation.Title + "\r\nDescription: " + donation.Description + "\r\nLocation: " + donation.Location; using (var smtpClient = new SmtpClient()) { try { // I've learnt my lesson with public repos. ;) System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["emailUsername"], ConfigurationManager.AppSettings["emailPassword"]); smtpClient.Credentials = credentials; smtpClient.Send(message); } catch { } } } } catch (Exception ex) { } return(RedirectToAction("Index")); } return(View(donation)); }