/* UsersBlocked*/


        //public bool Block(UsersBlocked ub)//חסימת משתמש
        //{
        //  try
        //  {
        //    using (TakeABowDBEntities db = new TakeABowDBEntities())
        //    {

        //        if (db.UsersBlockeds.First(u => u.UserId == ub.UserId && u.BlockedUserId == ub.BlockedUserId)==null)//בדיקה אם המשתמש נחסם בעבר ע"י החוסם
        //        {
        //            db.UsersBlockeds.Add(ub);//אם לא קיים אז תוסיף
        //            db.SaveChanges();
        //            return true;
        //        }
        //        else
        //        {//אם קיים אז תשנה אותו לחסום
        //            UsersBlocked ub2 = db.UsersBlockeds.FirstOrDefault(u => u.UserId == ub.UserId && u.BlockedUserId == u.BlockedUserId);
        //            ub2.IsBlocked = true;
        //             db.SaveChanges();
        //             return true;
        //        }
        //        return false;
        //    }

        //  }
        //    catch (Exception ex)
        //    {
        //        throw;
        //    }
        //}


        public bool Block(UsersBlocked ub)//חסימת משתמש
        {
            try
            {
                using (TakeABowDBEntities db = new TakeABowDBEntities())
                {
                    var user = db.UsersBlockeds.FirstOrDefault(u => u.UserId == ub.UserId && u.BlockedUserId == ub.BlockedUserId);
                    if (user != null)
                    {
                        user.IsBlocked = !user.IsBlocked;
                        db.SaveChanges();
                        return(true);
                    }
                    else
                    {
                        db.UsersBlockeds.Add(ub);
                        db.SaveChanges();
                        return(true);
                    }
                }
            }
            catch (Exception ex)
            {
                // return false;
                throw;
            }
        }
        public int saveNewUser(User u)
        {
            try
            {
                data.Users.Add(u);
                data.SaveChanges();
                return(u.Id);
            }
            catch (Exception ex)
            {
                return(0);

                throw;
            }
        }
 /*Feedbacks*/
 public bool saveNewFeedback(int sendTo, Feedback f)
 {
     try
     {
         using (TakeABowDBEntities db = new TakeABowDBEntities())
         {
             var user = db.Users.FirstOrDefault(f1 => f1.Id == sendTo);
             // var feedback = db.Feedbacks.Where(f1 => f1.UserBlocked.IsBlocked==false );//לעשות 2 תנאים ליצירת פידבק
             if (user == null)//בדיקה אם המייל קיים משהו עם כזה מייל או ידי
             {
                 return(false);
             }
             else//אם קיים
             {
                 f.ToUserId = user.Id;    //מוסיף באוביקט פידבק למי שלח
                 db.Feedbacks.Add(f);
                 db.SaveChanges();
                 return(true);
             }
         }
     }
     catch (Exception ex)
     {
         throw;
         return(false);
     }
 }
 public bool updateUser(User u)
 {
     try
     {
         using (TakeABowDBEntities db = new TakeABowDBEntities())
         {
             var userDb = db.Users.First(x => x.Id == u.Id);
             if (u.Is_Deleted == true)
             {
                 userDb.Is_Deleted = true;
             }
             else
             {
                 userDb.FirstName  = u.FirstName;
                 userDb.LastName   = u.LastName;
                 userDb.Phone      = u.Phone;
                 userDb.Job        = u.Job;
                 userDb.Is_Deleted = u.Is_Deleted;
                 userDb.Password   = u.Password;
             }
             db.SaveChanges();
             return(true);
         }
     }
     catch (Exception ex)
     {
         //return false;
         throw;
     }
 }
 public bool OpenUser(UsersBlocked ub)
 {
     try
     {
         using (TakeABowDBEntities db = new TakeABowDBEntities())
         {
             UsersBlocked ub2 = db.UsersBlockeds.FirstOrDefault(u => u.UserId == ub.UserId && u.BlockedUserId == u.BlockedUserId);
             ub2.IsBlocked = false;
             db.SaveChanges();
             return(true);
         }
     }
     catch (Exception ex)
     {
         throw;
     }
 }
 public bool readFeedback(int idFeedback, int FromUserId)
 {
     try
     {
         using (TakeABowDBEntities db = new TakeABowDBEntities())
         {
             var feedbackDb = db.Feedbacks.First(f => f.Id == idFeedback);
             feedbackDb.IsSeen = true;
             db.SaveChanges();
             return(true);
         }
     }
     catch (Exception ex)
     {
         //return false;
         throw;
     }
 }
 public bool IsAllowPermission(int time, Permissions p)
 {
     try
     {
         using (TakeABowDBEntities db = new TakeABowDBEntities())
         {
             var p1 = db.Permissions.First(per => per.ID == p.Id);
             p1.IsAllow    = p.IsAllow;
             p1.ExpireDate = DateTime.Today.AddDays(time);
             db.SaveChanges();
             return(true);
         }
     }
     catch (Exception ex)
     {
         //return false;
         throw;
     }
 }