//پیدا کردن سطر مربوط به دکتر انتخاب شده در روز مشخص شده
        public void CheckVisitTime()
        {
            Models.DatabaseContext databaseContext = null;

            try
            {
                databaseContext = new Models.DatabaseContext();


                Models.Reservations foundedDoctor =
                    databaseContext.Reservation
                    .Where(current => string.Compare(current.doctorId, doctor, true) == 0 &&
                           string.Compare(current.DateVisit, date, true) == 0)
                    .FirstOrDefault();

                if (foundedDoctor == null)
                {
                    SetFirstTime(time8TextBox, time8checkBox);
                    SetFirstTime(time9TextBox, time9checkBox);
                    SetFirstTime(time10TextBox, time10checkBox);
                    SetFirstTime(time11TextBox, time11checkBox);
                    SetFirstTime(time12TextBox, time12checkBox);
                    SetFirstTime(time13TextBox, time13checkBox);
                    SetFirstTime(time14TextBox, time14checkBox);
                    SetFirstTime(time15TextBox, time15checkBox);
                    SetFirstTime(time16TextBox, time16checkBox);
                    SetFirstTime(time17TextBox, time17checkBox);
                    SetFirstTime(time18TextBox, time18checkBox);
                    SetFirstTime(time19TextBox, time19checkBox);
                    SetFirstTime(time20TextBox, time20checkBox);
                    SetFirstTime(time21TextBox, time21checkBox);

                    VisitDateDoctor.DateVisit = date;

                    return;
                }

                VisitDateDoctor = foundedDoctor;

                VisitDateDoctor.DateVisit = date;

                CheckTime(foundedDoctor);
            }
            catch (System.Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);

                return;
            }
            finally
            {
                if (databaseContext != null)
                {
                    databaseContext.Dispose();

                    databaseContext = null;
                }
            }
        }
 //مقدار جستجو شده را به تک تک تکس باکس ها اعمال میکند
 public void CheckTime(Models.Reservations foundedUser)
 {
     VisitChanging(time8TextBox, time8checkBox, foundedUser.Time8);
     VisitChanging(time9TextBox, time9checkBox, foundedUser.Time9);
     VisitChanging(time10TextBox, time10checkBox, foundedUser.Time10);
     VisitChanging(time11TextBox, time11checkBox, foundedUser.Time11);
     VisitChanging(time12TextBox, time12checkBox, foundedUser.Time12);
     VisitChanging(time13TextBox, time13checkBox, foundedUser.Time13);
     VisitChanging(time14TextBox, time14checkBox, foundedUser.Time14);
     VisitChanging(time15TextBox, time15checkBox, foundedUser.Time15);
     VisitChanging(time16TextBox, time16checkBox, foundedUser.Time16);
     VisitChanging(time17TextBox, time17checkBox, foundedUser.Time17);
     VisitChanging(time18TextBox, time18checkBox, foundedUser.Time18);
     VisitChanging(time19TextBox, time19checkBox, foundedUser.Time19);
     VisitChanging(time20TextBox, time20checkBox, foundedUser.Time20);
     VisitChanging(time21TextBox, time21checkBox, foundedUser.Time21);
 }
        private void saveButton_Click(object sender, System.EventArgs e)
        {
            TestChangeDatabase();

            if (DatabaseChange == true)
            {
                Models.DatabaseContext databaseContext = null;
                try
                {
                    databaseContext = new Models.DatabaseContext();

                    if (VisitDateDoctor != null)
                    {
                        Models.Reservations currentVisit =
                            databaseContext.Reservation
                            .Where(current => current.Id == VisitDateDoctor.Id)
                            .FirstOrDefault();

                        if (currentVisit == null)
                        {
                            System.Windows.Forms.Application.Exit();
                        }

                        currentVisit.Time8  = time8TextBox.Text;
                        currentVisit.Time9  = time9TextBox.Text;
                        currentVisit.Time10 = time10TextBox.Text;
                        currentVisit.Time11 = time11TextBox.Text;
                        currentVisit.Time12 = time12TextBox.Text;
                        currentVisit.Time13 = time13TextBox.Text;
                        currentVisit.Time14 = time14TextBox.Text;
                        currentVisit.Time15 = time15TextBox.Text;
                        currentVisit.Time16 = time16TextBox.Text;
                        currentVisit.Time17 = time17TextBox.Text;
                        currentVisit.Time18 = time18TextBox.Text;
                        currentVisit.Time19 = time19TextBox.Text;
                        currentVisit.Time20 = time20TextBox.Text;
                        currentVisit.Time21 = time21TextBox.Text;

                        databaseContext.SaveChanges();

                        System.Windows.Forms.MessageBox.Show("ذخیره سازی با موفقیت انجام شد.");

                        return;
                    }

                    Models.Reservations AddDateVisit = new Models.Reservations
                    {
                        DateVisit = date,
                        doctorId  = doctor,
                        Time8     = time8TextBox.Text,
                        Time9     = time9TextBox.Text,
                        Time10    = time10TextBox.Text,
                        Time11    = time11TextBox.Text,
                        Time12    = time12TextBox.Text,
                        Time13    = time13TextBox.Text,
                        Time14    = time14TextBox.Text,
                        Time15    = time15TextBox.Text,
                        Time16    = time16TextBox.Text,
                        Time17    = time17TextBox.Text,
                        Time18    = time18TextBox.Text,
                        Time19    = time19TextBox.Text,
                        Time20    = time20TextBox.Text,
                        Time21    = time21TextBox.Text
                    };

                    databaseContext.Reservation.Add(AddDateVisit);

                    databaseContext.SaveChanges();

                    System.Windows.Forms.MessageBox.Show("ذخیره سازی با موفقیت انجام شد.");

                    return;
                }
                catch (System.Data.Entity.Validation.DbEntityValidationException ex)
                {
                    foreach (var eve in ex.EntityValidationErrors)
                    {
                        System.Windows.Forms.MessageBox.Show($"Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                                             eve.Entry.Entity.GetType().Name);
                        foreach (var ve in eve.ValidationErrors)
                        {
                            System.Windows.Forms.MessageBox.Show($"- Property: \"{0}\", Error: \"{1}\"",
                                                                 ve.PropertyName);
                        }
                    }
                    return;
                }
                finally
                {
                    if (databaseContext != null)
                    {
                        databaseContext.Dispose();

                        databaseContext = null;
                    }
                }
            }

            System.Windows.Forms.MessageBox.Show("تغییری رخ نداده است ؟");
        }
        public ActionResult Reserve(RoomSystem.Models.ReserveModel reserveModel)
        {
            string        date     = string.Format("{0:yyyy-MM-dd}", reserveModel.Date);
            List <string> borrower = new List <string>();

            if (reserveModel.BorrowList != null && reserveModel.BorrowList != "")
            {
                borrower = reserveModel.BorrowList.Split(';').Distinct().ToList();
                foreach (var email in borrower)
                {
                    if (!IsValidEmail(email))
                    {
                        return(Reserve(reserveModel.RoomId, date));
                    }
                }
            }

            string ASPNetUserID = User.Identity.GetUserId();

            using (Models.RoomSystemEntities db = new Models.RoomSystemEntities())
            {
                //var loginInfo = await Net.AuthenticationManager.GetExternalLoginInfoAsync();
                //loginInfo.Email
                if (reserveModel.RoomId == null)
                {
                    return(Reserve(reserveModel.RoomId.Value, string.Format("{0:yyyy-MM-dd}", reserveModel.Date)));
                }

                Models.Rooms room = (from s in db.Rooms where reserveModel.RoomId.Value == s.Id select s).FirstOrDefault();
                if (room.Id != reserveModel.RoomId.Value || !(borrower.Count + 1 >= room.MinNumberOfUsers && borrower.Count < room.MaxNumberOfUsers))
                {
                    return(Reserve(reserveModel.RoomId, date));
                }
                int i            = 0;
                var Reservations = (from s in db.Reservations where s.RoomId == reserveModel.RoomId && s.Date == reserveModel.Date && !s.Disable select s.SessionNo).ToList();
                foreach (var wantToReserve in reserveModel.WantToReserve)
                {
                    if (wantToReserve && !Reservations.Contains(i))
                    {
                        Models.Reservations reservation = new Models.Reservations();
                        reservation.BorrowerList = "";
                        reservation.Disable      = false;
                        reservation.AspNetUserId = ASPNetUserID;
                        reservation.RoomId       = reserveModel.RoomId.Value;
                        reservation.SessionNo    = i;
                        reservation.Date         = reserveModel.Date;
                        reservation.BorrowerList = string.Join(";", borrower);
                        db.Reservations.Add(reservation);
                    }
                    i++;
                }
                db.SaveChanges();

                System.Models.AspNetUsers user = (from s in db.AspNetUsers where s.Id == ASPNetUserID select s).First();

                string subject = "已向軟工作業會議預約系統預約會議室";
                string body    = string.Format("{0}:\n您已預約 r {1} 會議室,於 {2:yyyy-MM-dd},但這是軟工作業,所以沒有會議室可以用喔", user.UserName, room.Id, reserveModel.Date);
                SendEmail(user.Email, user.UserName, subject, body);
            }
            return(Reserve(reserveModel.RoomId.Value, string.Format("{0:yyyy-MM-dd}", reserveModel.Date)));
        }