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