public async Task<ActionResult> AddManagerTobuilding(ManagementBuilding model, ManagerVM model2) { try { if (!ModelState.IsValid) { return View("ManagementBuilding", model); } ApplicationDbContext context = new ApplicationDbContext(); var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context)); PasswordHasher hasher = new PasswordHasher(); var a = UserManager.FindByEmail(model2.Email); if (a != null) { return View("ManagementBuilding", model); } ApplicationUser AppUser = new ApplicationUser() { Id = Guid.NewGuid().ToString(), Email = model2.Email, UserName = model2.Username, SecurityStamp = Guid.NewGuid().ToString(), PhoneNumber = model2.Phone, LockoutEnabled = false, LockoutEndDateUtc= DateTime.Now.AddDays(365), AccessFailedCount = 0, PhoneNumberConfirmed = false, TwoFactorEnabled = false, EmailConfirmed = false, PasswordHash = hasher.HashPassword(model2.Password) }; string[] FullName = model2.FullName.Split(new string[] { " " }, StringSplitOptions.None); Manager mgr = new Manager() { ID = AppUser.Id, FirstName = FullName[0].ToString(), LastName = FullName[1].ToString(), Phone = model2.Phone, ClientID = model2.clientID }; db.Manager.Add(mgr); context.Users.Add(AppUser); await context.SaveChangesAsync(); await db.SaveChangesAsync(); RoleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context)); if (!RoleManager.RoleExists("Manager")) {var roleresult = RoleManager.Create(new IdentityRole("Manager"));} var Result = UserManager.AddToRole(AppUser.Id, "Manager"); ManagerBuilding ObjManagerBuilding = new ManagerBuilding() { BuildingID = model2.BuildingID, ManagerID = mgr.ID , UserID =mgr.ID }; db.ManagerBuilding.Add(ObjManagerBuilding); await db.SaveChangesAsync(); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } return RedirectToAction("ManagementBuilding", new { BuildingID=model2.BuildingID}); }
public ActionResult ManagementBuilding(int BuildingID) { var ObjMB = new ManagementBuilding(); //--------------------------------------------------------------------------------------------- ObjMB.managerVM = db.ManagerBuilding .Where(c => c.BuildingID == BuildingID) .Select(c => new ManagerVM { FullName = c.Manager.FirstName +" " +c.Manager.LastName, Username = c.Manager.AspNetUsers.Email, Phone = c.Manager.Phone, ID = c.ManagerID }).ToList(); //manager ends----------------------------------------------------------------------------------------- //ClientID var clientID =db.Buildings .Where(c => c.ID == BuildingID) .FirstOrDefault() .Clients.ID; foreach (var item in ObjMB.managerVM) { item.clientID = clientID; } ObjMB.ClientID = clientID; ObjMB.buildingID = BuildingID; //loading Activemanager var Activemanager = db.ActiveManager.Where(c => c.BuildingID == BuildingID) .Select(c => new ActiveManagerVM { Id = c.Id, BuildingID =c.BuildingID, ManagerID =c.ManagerID}).FirstOrDefault(); if(Activemanager!=null) { Activemanager.myManager = db.Manager.Find(Activemanager.ManagerID); } ViewBag.Activemanager = Activemanager; return View(ObjMB); }