private void CreateUser(AdsListingDbContext context, string email, string fullName, string password) { // Create User Manager var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); // Ser User manager password validator userManager.PasswordValidator = new PasswordValidator { RequiredLength = 6, RequireDigit = false, RequireLowercase = false, RequireNonLetterOrDigit = false, RequireUppercase = false, }; //Create user object var admin = new ApplicationUser { UserName = email, FullName = fullName, Email = email }; //Create user var result = userManager.Create(admin, password); //Validate result if (!result.Succeeded) { throw new Exception(string.Join(";", result.Errors)); } }
public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } using (var database = new AdsListingDbContext()) { //Get the ad from the database var ad = database .Ads .Where(a => a.Id == id) .Include(a => a.Photos) .Include(a => a.Author) .Include(c => c.Category) .Include(l => l.Location) .First(); if (ad == null) { return(HttpNotFound()); } return(View(ad)); } }
//GET: User/Edit public ActionResult Edit(string id) { //Validate ID if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } using (var database = new AdsListingDbContext()) { // Get the user from the DB var user = database .Users .Where(u => u.Id == id) .First(); // Check if the user is valid if (user == null) { return(HttpNotFound()); } //Create a view model var viewModel = new EditUserViewModel(); viewModel.User = user; viewModel.Roles = GetUserRoles(user, database); return(View(viewModel)); } }
private IList <Role> GetUserRoles(ApplicationUser user, AdsListingDbContext db) { //Create user manager var userManager = Request .GetOwinContext() .GetUserManager <ApplicationUserManager>(); //Get all application roles var roles = db.Roles .Select(r => r.Name) .OrderBy(r => r) .ToList(); // Check if the user has the Role var userRoles = new List <Role>(); foreach (var roleName in roles) { var role = new Role { Name = roleName }; if (userManager.IsInRole(user.Id, roleName)) { role.IsSelected = true; } userRoles.Add(role); } return(userRoles); }
private void DeletePhotos(int[] photos, int id) { using (var database = new AdsListingDbContext()) { var adPhotos = database .Photos .Where(p => p.AdId == id) .ToList(); foreach (var adPhoto in adPhotos) { foreach (var photo in photos) { if (adPhoto.Id == photo) { //string fullPathToRemove = Request.MapPath(adPhoto.ThumbPath); database.Photos.Remove(adPhoto); //if (System.IO.File.Exists(adPhoto.ThumbPath)) //{ // System.IO.File.Delete(adPhoto.ThumbPath); //} database.SaveChanges(); } } } } }
public ActionResult DeleteConfirmed(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } using (var database = new AdsListingDbContext()) { //Get User from the DB var user = database .Users .Where(u => u.Id.Equals(id)) .First(); //Get User Ads from the database var userAds = database .Ads .Where(a => a.Author.Id == user.Id); //Delete user Ads foreach (var ad in userAds) { database.Ads.Remove(ad); } //Delete the user and update the DB database.Users.Remove(user); database.SaveChanges(); return(RedirectToAction("List")); } }
public ActionResult DeleteConfirmed(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } using (var database = new AdsListingDbContext()) { //Get the Ad from the DB var ad = database .Ads .Where(a => a.Id == id) .Include(a => a.Author) .First(); //Check if ad exists if (ad == null) { return(HttpNotFound()); } //Remove ad from the DB database.Ads.Remove(ad); database.SaveChanges(); //Redirect to Index page return(RedirectToAction("Index")); } }
// Get: Ad/Delete public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } using (var database = new AdsListingDbContext()) { //Get Ad from the DB var ad = database .Ads .Where(a => a.Id == id) .Include(a => a.Author) .First(); if (!IsUserAuthorizedToEdit(ad)) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden)); } //Check if the Ad exists if (ad == null) { return(HttpNotFound()); } //Redirect to the Index Page return(View(ad)); } }
// GET: Category/List public ActionResult List() { using (var database = new AdsListingDbContext()) { var categories = database.Categories.ToList(); return(View(categories)); } }
public ActionResult AdminList() { using (var database = new AdsListingDbContext()) { var ads = database.Ads.ToList(); return(View(ads)); } }
// GET: Location/List public ActionResult List() { using (var database = new AdsListingDbContext()) { var locations = database .Locations .ToList(); return(View(locations)); } }
private void CreateRole(AdsListingDbContext context, string roleName) { var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context)); var result = roleManager.Create(new IdentityRole(roleName)); if (!result.Succeeded) { throw new Exception(string.Join(";", result.Errors)); } }
private void SetRoleToUser(AdsListingDbContext context, string email, string role) { var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); var user = context.Users.Where(u => u.Email == email).First(); var result = userManager.AddToRole(user.Id, role); if (!result.Succeeded) { throw new Exception(string.Join(";", result.Errors)); } }
// GET: User List public ActionResult List() { using (var database = new AdsListingDbContext()) { var users = database.Users.ToList(); var adminUsers = GetAdminUserNames(users, database); ViewBag.Admins = adminUsers; return(View(users)); } }
//GET: Ad/Edit public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } using (var database = new AdsListingDbContext()) { var ad = database .Ads .Where(a => a.Id == id) .First(); if (!IsUserAuthorizedToEdit(ad)) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden)); } if (ad == null) { return(HttpNotFound()); } var photos = database .Photos .Where(p => p.AdId == id) .ToList(); var model = new AdViewModel { Id = ad.Id, Title = ad.Title, Description = ad.Description, Price = ad.Price, CategoryId = ad.CategoryId, Categories = database .Categories .OrderBy(c => c.Name) .ToList(), LocationId = ad.LocationId, Locations = database .Locations .OrderBy(l => l.Name) .ToList(), Status = ad.Status, ContactNumber = ad.ContactNumber, Photos = photos }; return(View(model)); } }
public ActionResult ListCategories() { using (var database = new AdsListingDbContext()) { var categories = database .Categories .Include(c => c.Ads) .OrderBy(c => c.Name) .ToList(); return(View(categories)); } }
// GET: Ad/List public ActionResult List() { using (var database = new AdsListingDbContext()) { // Get Ads from the database var ads = database .Ads .Include(a => a.Author) .Include(a => a.Photos) .ToList(); return(View(ads)); } }
protected override void Seed(AdsListingDbContext context) { if (!context.Roles.Any()) { this.CreateRole(context, "Admin"); this.CreateRole(context, "User"); } if (!context.Users.Any()) { this.CreateUser(context, "*****@*****.**", "Admin", "123456"); this.SetRoleToUser(context, "*****@*****.**", "Admin"); } }
public ActionResult Create(Location location) { if (ModelState.IsValid) { using (var database = new AdsListingDbContext()) { database.Locations.Add(location); database.SaveChanges(); return(RedirectToAction("Index")); } } return(View(location)); }
public ActionResult Edit(Location location) { if (ModelState.IsValid) { using (var database = new AdsListingDbContext()) { database.Entry(location).State = EntityState.Modified; database.SaveChanges(); return(RedirectToAction("Index")); } } return(View(location)); }
public ActionResult Create(Category category) { if (ModelState.IsValid) { using (var database = new AdsListingDbContext()) { database.Categories.Add(category); database.SaveChanges(); return(RedirectToAction("Index")); } } return(View(category)); }
private HashSet <string> GetAdminUserNames(List <ApplicationUser> users, AdsListingDbContext context) { var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); var admins = new HashSet <string>(); foreach (var user in users) { if (userManager.IsInRole(user.Id, "Admin")) { admins.Add(user.UserName); } } return(admins); }
private void SetUserRoles(EditUserViewModel model, ApplicationUser user, AdsListingDbContext db) { var userManager = Request .GetOwinContext() .GetUserManager <ApplicationUserManager>(); foreach (var role in model.Roles) { if (role.IsSelected) { userManager.AddToRole(user.Id, role.Name); } else if (!role.IsSelected) { userManager.RemoveFromRole(user.Id, role.Name); } } }
public ActionResult Create() { using (var database = new AdsListingDbContext()) { var model = new AdViewModel { Categories = database .Categories .OrderBy(c => c.Name) .ToList(), Locations = database .Locations .OrderBy(l => l.Name) .ToList() }; return(View(model)); } }
//GET: Location/Delete public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } using (var database = new AdsListingDbContext()) { var location = database .Locations .FirstOrDefault(c => c.Id == id); if (location == null) { return(HttpNotFound()); } return(View(location)); } }
//GET Category/Edit public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } using (var database = new AdsListingDbContext()) { var category = database .Categories .FirstOrDefault(c => c.Id == id); if (category == null) { return(HttpNotFound()); } return(View(category)); } }
// // GET: /Manage/Index public async Task <ActionResult> Index(ManageMessageId?message) { ViewBag.StatusMessage = message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed." : message == ManageMessageId.SetPasswordSuccess ? "Your password has been set." : message == ManageMessageId.SetTwoFactorSuccess ? "Your two-factor authentication provider has been set." : message == ManageMessageId.Error ? "An error has occurred." : message == ManageMessageId.AddPhoneSuccess ? "Your phone number was added." : message == ManageMessageId.RemovePhoneSuccess ? "Your phone number was removed." : ""; var database = new AdsListingDbContext(); var userId = User.Identity.GetUserId(); var model = new IndexViewModel { UserAds = database .Ads .Where(a => a.AuthorId.Equals(userId)) .OrderByDescending(a => a.DateCreated) .ToList(), Email = database .Users .Where(u => u.Id.Equals(userId)) .First() .Email, FullName = database .Users .Where(u => u.Id.Equals(userId)) .First() .FullName, HasPassword = HasPassword(), PhoneNumber = await UserManager.GetPhoneNumberAsync(userId), TwoFactor = await UserManager.GetTwoFactorEnabledAsync(userId), Logins = await UserManager.GetLoginsAsync(userId), BrowserRemembered = await AuthenticationManager.TwoFactorBrowserRememberedAsync(userId) }; return(View(model)); }
public ActionResult DeleteConfirmed(int?id) { using (var database = new AdsListingDbContext()) { var location = database .Locations .FirstOrDefault(c => c.Id == id); var locationAds = location .Ads .ToList(); foreach (var ad in locationAds) { database.Ads.Remove(ad); } database.Locations.Remove(location); database.SaveChanges(); return(RedirectToAction("Index")); } }
public ActionResult DeleteConfirmed(int?id) { using (var database = new AdsListingDbContext()) { var category = database .Categories .FirstOrDefault(c => c.Id == id); var categoryAds = category .Ads .ToList(); foreach (var ad in categoryAds) { database.Ads.Remove(ad); } database.Categories.Remove(category); database.SaveChanges(); return(RedirectToAction("Index")); } }
public ActionResult Edit(string id, EditUserViewModel viewModel) { if (ModelState.IsValid) { using (var database = new AdsListingDbContext()) { // Get user from database var user = database.Users.FirstOrDefault(u => u.Id == id); if (user == null) { return(HttpNotFound()); } // If password field is not empty, change password if (!string.IsNullOrEmpty(viewModel.Password)) { var hasher = new PasswordHasher(); var passwordHash = hasher.HashPassword(viewModel.Password); user.PasswordHash = passwordHash; } //Set user properties user.Email = viewModel.User.Email; user.FullName = viewModel.User.FullName; user.UserName = viewModel.User.Email; this.SetUserRoles(viewModel, user, database); database.Entry(user).State = EntityState.Modified; database.SaveChanges(); return(RedirectToAction("List")); } } return(View(viewModel)); }