public ActionResult manageReqType(managementVM management, int? ReqTypeID, string Search)
        {

           
           
            if (ModelState.IsValid)
            {
                if (management.ReqType != null)
                {
                    var reqtype = new ReqType
                    {
                        ReqType1 = management.ReqType.ReqType1
                    };
                    db.ReqType.Add(reqtype);
                    db.SaveChanges();
                    LoadReqType();
                    return RedirectToAction("manageReqType");
                }

                else if (ReqTypeID != null)
                {
                    var mydeletetype = db.ReqType.Find(ReqTypeID);
                    db.ReqType.Remove(mydeletetype);
                    db.SaveChanges();
                    LoadReqType();

                    return RedirectToAction("manageReqType");
                  
                }
                else if (Search != null || Search != "")
                {
                    string FN = string.Empty;
                    string LN = string.Empty;
                   string[] m = Search.Split(null);//if the splitting char is null it is assume that the delimiter is a whie space
                   var mymanagement = new managementVM();
                   if (m.Length > 1)
                   {
                       FN = m[0];
                       LN = m[1];

                       mymanagement.Tenants = db.Tenant.Where(c => c.FirstName.Contains(Search) || c.LastName.Contains(Search) || c.FirstName.Contains(FN) && c.LastName.Contains(LN))
                        .Select(c => new TenantVM { ID = c.ID, FirstName = c.FirstName, LastName = c.LastName, aptID = (int)c.aptID, Phone = c.Phone, created = c.Created }).ToList();
                   }
                   else
                   {
                       mymanagement.Tenants = db.Tenant.Where(c => c.FirstName.Contains(Search) || c.LastName.Contains(Search))
                           .Select(c => new TenantVM { ID = c.ID, FirstName = c.FirstName, LastName = c.LastName, aptID = (int)c.aptID, Phone = c.Phone, created = c.Created }).ToList();
                   }
                    

                   
                  




                    LoadReqType();
                    return View(mymanagement);                             
                  
                }
                 
            }
            

            return View();
        }
        //this is use forthe search guess list
        public JsonResult getKeyupSearch(string mysearch)        {

            var Search = new List<TenantSearch>();

            if(mysearch!=null || mysearch!="")
            {
            string FN = string.Empty;
                    string LN = string.Empty;
                   string[] m = mysearch.Split(null);//if the splitting char is null it is assume that the delimiter is a whie space
                   var mymanagement = new managementVM();
                   if (m.Length > 1)
                   {
                       FN = m[0];
                       LN = m[1];

                       Search = db.Tenant
                      .Join(db.Apartment,
                              c => c.aptID,
                              a => a.ID,
                              (c, a) => new { c,a})
                              .Join(db.Buildings,
                              ca=> ca.a.BuildingID,
                              b=> b.ID,
                              (ca, b) => new TenantSearch
                                                          {  
                                                            FirstName = ca.c.FirstName,
                                                            LastName = ca.c.LastName,
                                                            Apt = ca.a.ApartmentNumber,
                                                            Address = b.Address,
                                                            city = b.City,
                                                            zipcode = b.Zipcode,
                                                            ApartmentID = ca.a.ID,
                                                            TenantID = ca.c.ID,
                                                            
                                                            BuildingID = b.ID
                                                          })
                      .Where(c => c.FirstName.Contains(mysearch) ||
                                  c.LastName.Contains(mysearch) ||
                                  c.FirstName.Contains(FN) && 
                                  c.LastName.Contains(LN)
                             )
                       .OrderByDescending(c=> c.FirstName)
                      .Take(10)
                      .ToList();
                            
                     
                       return new JsonResult { Data = Search, JsonRequestBehavior = JsonRequestBehavior.AllowGet };

                   }
                   else
                   {

                       Search = db.Tenant
                          .Join(db.Apartment,
                            c => c.aptID,
                            a => a.ID,
                            (c, a) => new { c, a })
                            .Join(db.Buildings,
                            ca => ca.a.BuildingID,
                            b => b.ID,
                            (ca, b) => new TenantSearch
                                                        {
                                                            FirstName = ca.c.FirstName,
                                                            LastName = ca.c.LastName,
                                                            Apt = ca.a.ApartmentNumber,
                                                            Address = b.Address,
                                                            city = b.City,
                                                            zipcode = b.Zipcode,
                                                            ApartmentID = ca.a.ID,
                                                            TenantID = ca.c.ID,
                                                            BuildingID = b.ID
                                                        })
                      .Where(c => c.FirstName.Contains(mysearch) || c.LastName.Contains(mysearch))
                      .OrderByDescending(c=> c.FirstName)
                      .Take(10)
                      .ToList();
                        
                       return new JsonResult { Data = Search, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
                   }
             
        }
              return new JsonResult { Data = Search, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
        }
        public ActionResult manageReqType(managementVM managementModel)
        {

           

            LoadReqType();
            return View(managementModel);
        }