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));
        }
        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 }));
        }