private void DoAdd()
 {
     SelectedTeacher.Sections.Add(SelectedSection);
     _context.SaveChanges();
     OnSelectedTeacherChanged(SelectedTeacher);
     RaisePropertyChanged(() => Sections);
     //SelectedSection = null;
 }
        private void EditStudentClosing(object sender, DialogClosingEventArgs args)
        {
            if (Equals(args.Parameter, false))
            {
                return;
            }


            if (Equals(args.Parameter, "Update"))
            {
                args.Cancel();
                bool result;
                try
                {
                    //var duplicate = _context.Users.FirstOrDefault(c => c.UserName == SelectedStudent.User.UserName);
                    //if (duplicate != null)
                    //{
                    //    var OldValue = _context.Entry(SelectedStudent).OriginalValues;
                    //    SelectedStudent.User.UserName ;
                    //    LoadData();
                    //    args.Session.UpdateContent(new OkMessageDialog() { DataContext = "Username already exists" });
                    //    return;
                    //}
                    _context.SaveChanges();
                    result = true;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    result = false;
                }

                //args.Session.UpdateContent(new OkMessageDialog(){DataContext = result ? "Update Success" : "Update Failed"});
                args.Session.UpdateContent(new OkMessageDialog()
                {
                    DataContext = "Update Success"
                });
            }
        }
        public void AddRequirementsToStudent(Student student)
        {
            var listOfId = _context.RequirementStudents
                           .Where(c => c.StudentId == student.Id)
                           .Select(c => c.RequirementId);
            var listRequirement = _context.Requirements
                                  .Where(c => !listOfId.Contains(c.Id));

            if (!listRequirement.Any())
            {
                return;
            }
            foreach (var req in listRequirement)
            {
                var newReq = new RequirementStudents
                {
                    RequirementId = req.Id,
                    StudentId     = student.Id,
                    Status        = false,
                };
                _context.RequirementStudents.Add(newReq);
            }
            _context.SaveChanges();
            //using (var context = new MorenoContext())
            //{
            //    var listOfId = context.RequirementStudents
            //        .Where(c => c.StudentId == student.Id)
            //        .Select(c => c.RequirementId);
            //    var listRequirement = context.Requirements
            //        .Where(c => !listOfId.Contains(c.Id));
            //    if (!listRequirement.Any())
            //    {
            //        return;
            //    }
            //    foreach (var req in listRequirement)
            //    {
            //        var newReq = new RequirementStudents
            //        {
            //            RequirementId = req.Id,
            //            StudentId = student.Id,
            //            Status = false,
            //        };
            //        context.RequirementStudents.Add(newReq);
            //    }
            //    context.SaveChangesAsync();
            //}
        }
        private void OnEditClosing(object sender, DialogClosingEventArgs args)
        {
            if (Equals(args.Parameter, false))
            {
                return;
            }
            if (Equals(args.Parameter, "Close"))
            {
                try
                {
                    _context.Entry(SelectedTeacher).CurrentValues.SetValues(_context.Entry(SelectedTeacher).OriginalValues);
                    LoadData();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
                return;
            }
            bool result = false;

            if (_isOkMessageOpen && Equals(args.Parameter, "Cancel"))
            {
                _isOkMessageOpen = false;
                args.Cancel();
                args.Session.UpdateContent(_content);
            }
            if (Equals(args.Parameter, "Update"))
            {
                args.Cancel();
                args.Session.UpdateContent(new PleaseWaitView());
                Task.Run(() =>
                {
                    try
                    {
                        _context.Entry(SelectedTeacher).State = EntityState.Modified;
                        _context.SaveChanges();
                        result = true;
                    }

                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        result = false;
                    }
                }).ContinueWith((t, _) =>
                {
                    if (!result)
                    {
                        args.Session.UpdateContent(new OkMessageDialog()
                        {
                            DataContext = result ? "Update Successfull" : "Update Failed"
                        });
                        return;
                    }
                    LoadData();
                    SendUpdateMessage();
                    args.Session.Close(false);
                }, null, TaskScheduler.FromCurrentSynchronizationContext());
            }
            if (Equals(args.Parameter, "Delete"))
            {
                _content = args.Session.Content;
                args.Cancel();
                _isOkMessageOpen = true;
                args.Session.UpdateContent(new OkCancelMessageDialog()
                {
                    DataContext = $"Are you sure you want to delete {SelectedTeacher.FullName}?"
                });
            }
            if (Equals(args.Parameter, "Ok") && _isOkMessageOpen)
            {
                _isOkMessageOpen = false;
                args.Cancel();
                args.Session.UpdateContent(new PleaseWaitView());
                Task.Run(() =>
                {
                    try
                    {
                        _context.Teachers.Remove(SelectedTeacher);
                        _context.SaveChanges();
                        result = true;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        result = false;
                    }
                }).ContinueWith((t, _) =>
                {
                    LoadData();
                    _isOkMessageOpen = false;
                    SendUpdateMessage();
                    args.Session.UpdateContent(new OkMessageDialog()
                    {
                        DataContext = result ? "Delete Successfull" : "Delete Failed"
                    });
                }, null, TaskScheduler.FromCurrentSynchronizationContext());
            }
        }
        private async void DoAddRequirement()
        {
            await DialogHost.Show(new FieldMessageDialog()
            {
                DataContext = "Add New Requirement"
            }, "RequirementDialog",
                                  delegate(object sender, DialogClosingEventArgs args)
            {
                bool result = false;
                if (Equals(args.Parameter, false))
                {
                    return;
                }
                if (args.Parameter is TextBox)
                {
                    args.Session.UpdateContent(new PleaseWaitView());
                    TextBox txtName = (TextBox)args.Parameter;
                    string name     = txtName.Text.Trim();
                    var requirement = new Requirement()
                    {
                        Name = name
                    };

                    if (string.IsNullOrEmpty(name) || string.IsNullOrWhiteSpace(name))
                    {
                        args.Cancel();
                        args.Session.UpdateContent(new OkMessageDialog()
                        {
                            DataContext = "Null entry"
                        });
                        return;
                    }

                    using (var context = new MorenoContext())
                    {
                        var duplicate = context.Requirements.FirstOrDefault(c => c.Name == name);
                        if (duplicate != null)
                        {
                            args.Cancel();
                            args.Session.UpdateContent(new OkMessageDialog()
                            {
                                DataContext = "Duplicate Name"
                            });
                            return;
                        }
                    }

                    Task.Run(() =>
                    {
                        try
                        {
                            //_context.Entry(requirement).State = EntityState.Added;
                            using (var context = new MorenoContext())
                            {
                                context.Requirements.Add(requirement);

                                context.SaveChanges();
                                result = true;
                            }
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e.Message);

                            result = false;
                        }
                    }).ContinueWith((t, _) =>
                    {
                        if (!result)
                        {
                            args.Cancel();
                            args.Session.UpdateContent(new OkMessageDialog()
                            {
                                DataContext = "Failed to add"
                            });
                        }
                        else
                        {
                            Requirements.Add(requirement);
                        }
                    }, null, TaskScheduler.FromCurrentSynchronizationContext());
                }
            });
        }
        private async void DoDeleteRequirement()
        {
            await DialogHost.Show(new OkCancelMessageDialog()
            {
                DataContext = $"Delete {SelectedRequirement.Name}?"
            },
                                  "RequirementDialog",
                                  delegate(object sender, DialogClosingEventArgs args)
            {
                bool result = false;
                if (Equals(args.Parameter, "Cancel"))
                {
                    return;
                }

                if (_isOkMessageOpen)
                {
                    _isOkMessageOpen = false;
                    return;
                }

                if (Equals(args.Parameter, "Ok"))
                {
                    args.Session.UpdateContent(new PleaseWaitView());
                    Task.Run(() =>
                    {
                        try
                        {
                            //_context.Entry(SelectedRequirement).State = EntityState.Deleted;
                            //var students = _context.Students.ToList();
                            //foreach (var student in students)
                            //{
                            //     student.RequirementStudents.FirstOrDefault(
                            //        c => c.RequirementId == SelectedRequirement.Id);
                            //}
                            //var entity = _context.Requirements.FirstOrDefault(c => c.Id == SelectedRequirement.Id);
                            //if (entity != null) _context.Requirements.Remove(entity);
                            using (var context = new MorenoContext())
                            {
                                var entity =
                                    context.Requirements.FirstOrDefault(c => c.Id == SelectedRequirement.Id);
                                if (entity != null)
                                {
                                    context.Requirements.Remove(entity);
                                }
                                context.SaveChanges();
                                result = true;
                            }
                            //_context.SaveChanges();
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e.Message);

                            result = false;
                        }
                    }).ContinueWith((t, _) =>
                    {
                        if (!result)
                        {
                            args.Cancel();
                            _isOkMessageOpen = true;
                            args.Session.UpdateContent(new OkMessageDialog()
                            {
                                DataContext = "Failed to Delete"
                            });
                        }
                        else
                        {
                            Requirements.Remove(SelectedRequirement);
                        }
                    }, null, TaskScheduler.FromCurrentSynchronizationContext());
                }
            });
        }
        private void AddClosingEventHandler(object sender, DialogClosingEventArgs args)
        {
            bool result = false;

            if (Equals(args.Parameter, false))
            {
                return;
            }

            if (args.Parameter is TextBox)
            {
                args.Cancel();
                args.Session.UpdateContent(new PleaseWaitView());
                TextBox txtName = (TextBox)args.Parameter;
                string  name    = txtName.Text.Trim();
                if (string.IsNullOrEmpty(name) || string.IsNullOrWhiteSpace(name))
                {
                    args.Cancel();
                    args.Session.UpdateContent(new OkMessageDialog()
                    {
                        DataContext = "Null entry"
                    });
                    return;
                }

                var duplicate = _context.PartyLists.FirstOrDefault(c => c.Name == name);
                if (duplicate != null)
                {
                    args.Session.UpdateContent(new OkMessageDialog()
                    {
                        DataContext = "Duplicate name"
                    });
                    return;
                }
                Task.Run(() =>
                {
                    var newPartyList = new PartyList()
                    {
                        Name = name
                    };
                    try
                    {
                        //_context.Entry(newPartyList).State = EntityState.Added;
                        _context.PartyLists.Add(newPartyList);

                        var cplist = _context.CouncilPositions;
                        var cmlist = new List <CouncilMembers>();
                        foreach (var cp in cplist)
                        {
                            var cm = new CouncilMembers
                            {
                                CouncilPosition = cp,
                                PartyList       = newPartyList
                            };
                            cmlist.Add(cm);
                        }
                        foreach (var entity in cmlist)
                        {
                            //_context.Entry(entity).State = EntityState.Added;
                            _context.CouncilMembers.Add(entity);
                        }
                        _context.SaveChanges();
                        result = true;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);

                        result = false;
                    }
                    Thread.Sleep(500);
                    return(newPartyList);
                }).ContinueWith(
                    (t, _) =>
                {
                    if (result)
                    {
                        PartyLists.Add(t.Result);
                        RaisePropertyChanged(() => PartyLists);
                        args.Session.Close(false);
                    }
                    else
                    {
                        args.Session.UpdateContent(new OkMessageDialog()
                        {
                            DataContext = "Failed to add"
                        });
                    }
                }, null, TaskScheduler.FromCurrentSynchronizationContext());
            }
        }
        private void EditClosing(object o, DialogClosingEventArgs args)
        {
            if (Equals(args.Parameter, false))
            {
                return;
            }
            if (Equals(args.Parameter, "Close"))
            {
                try
                {
                    _context.Entry(SelectedBook).CurrentValues.SetValues(_context.Entry(SelectedBook).OriginalValues);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
                return;
            }
            bool result = false;

            if (_isOkMessageOpen && Equals(args.Parameter, "Cancel"))
            {
                _isOkMessageOpen = false;
                args.Cancel();
                args.Session.UpdateContent(_content);
            }
            if (Equals(args.Parameter, "Update"))
            {
                args.Cancel();
                args.Session.UpdateContent(new PleaseWaitView());
                Task.Run(() =>
                {
                    var bookList         = _context.TeacherBorrowedBooks.Where(c => c.Book.Id == SelectedBook.Id).ToList();
                    int quantityBorrowed = 0;
                    foreach (var book in bookList)
                    {
                        quantityBorrowed += book.QuantityBorrowed;
                    }
                    try
                    {
                        SelectedBook.AvailableQuantity = SelectedBook.Quantity -
                                                         (quantityBorrowed + SelectedBook.Damaged +
                                                          SelectedBook.Outdated);
                        _context.Entry(SelectedBook).State = EntityState.Modified;

                        _context.SaveChanges();
                        result = true;
                    }

                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        result = false;
                    }
                }).ContinueWith((t, _) =>
                {
                    if (!result)
                    {
                        //args.Session.UpdateContent(new OkMessageDialog() { DataContext = result ? "Update Successfull" : "Update Failed" });
                        args.Session.UpdateContent(new OkMessageDialog()
                        {
                            DataContext = "Update Successfull"
                        });
                        return;
                    }
                    LoadData();
                    UpdateBooks();
                    args.Session.Close(false);
                }, null, TaskScheduler.FromCurrentSynchronizationContext());
            }
        }
Exemplo n.º 9
0
        private void AddPositionClosing(object sender, DialogClosingEventArgs args)
        {
            bool result = false;

            if (Equals(args.Parameter, false))
            {
                return;
            }
            if (args.Parameter is TextBox)
            {
                args.Session.UpdateContent(new PleaseWaitView());
                TextBox txtName     = (TextBox)args.Parameter;
                string  name        = txtName.Text.Trim();
                var     newPosition = new CouncilPosition()
                {
                    Position = name
                };
                if (string.IsNullOrEmpty(name) || string.IsNullOrWhiteSpace(name))
                {
                    args.Cancel();
                    args.Session.UpdateContent(new OkMessageDialog()
                    {
                        DataContext = "Null entry"
                    });
                    return;
                }
                var duplicate = _context.CouncilPositions.FirstOrDefault(c => c.Position == name);
                if (duplicate != null)
                {
                    args.Cancel();
                    args.Session.UpdateContent(new OkMessageDialog()
                    {
                        DataContext = "Duplicate Name"
                    });
                    return;
                }
                Task.Run(() =>
                {
                    Thread.Sleep(1000);

                    try
                    {
                        _context.Entry(newPosition).State = EntityState.Added;

                        _context.SaveChanges();
                        result = true;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);

                        result = false;
                    }
                }).ContinueWith((t, _) =>
                {
                    if (!result)
                    {
                        args.Cancel();
                        args.Session.UpdateContent(new OkMessageDialog()
                        {
                            DataContext = "Failed to add"
                        });
                    }
                    else
                    {
                        PositionList.Add(newPosition);
                    }
                }, null, TaskScheduler.FromCurrentSynchronizationContext());
            }
        }
        private async void ViewStudentEdit()
        {
            if (SelectedStudent == null)
            {
                await DialogHost.Show(new OkMessageDialog()
                {
                    DataContext = "Please select a student!"
                });

                return;
            }
            await DialogHost.Show(new PleaseWaitView(), "RootDialog",
                                  delegate(object sender, DialogOpenedEventArgs args)
            {
                Task.Run(() =>
                {
                    //_oldRequirementStudents = Requirements;
                    AddRequirementsToStudent(SelectedStudent);
                    //Requirements = _context.RequirementStudents.AsNoTracking()
                    //    .Where(c => c.StudentId == SelectedStudent.Id)
                    //    .ToList();
                    Requirements = _context.RequirementStudents
                                   .Where(c => c.StudentId == SelectedStudent.Id)
                                   .ToList();
                    Thread.Sleep(1000);
                }).ContinueWith((t, _) =>
                {
                    //Requirements = SelectedStudent.RequirementStudents.ToList();
                    _oldRequirementStudents = Requirements;

                    SelectedYearLevel = SelectedStudent.YearLevel;
                    SelectedSection   = SelectedStudent.Section;
                    YearLevels        = _context.YearLevels.ToObservableCollection();
                    GenderList        = Enum.GetNames(typeof(EnumGender)).ToList();

                    args.Session.UpdateContent(new StudentEditView()
                    {
                        DataContext = this
                    });
                }, null, TaskScheduler.FromCurrentSynchronizationContext());
            }, delegate(object sender, DialogClosingEventArgs args)
            {
                bool result = false;
                if (Equals(args.Parameter, false))
                {
                    return;
                }
                if (Equals(args.Parameter, "Close"))
                {
                    try
                    {
                        _context.Entry(SelectedStudent).CurrentValues.SetValues(_context.Entry(SelectedStudent).OriginalValues);
                        foreach (var requirement in Requirements)
                        {
                            _context.Entry(requirement).CurrentValues.SetValues(_context.Entry(requirement).OriginalValues);
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                    }
                    Requirements = _oldRequirementStudents;
                    return;
                }
                if (_isOkMessageOpen && Equals(args.Parameter, "Cancel"))
                {
                    _isOkMessageOpen = false;
                    args.Cancel();
                    args.Session.UpdateContent(_content);
                }
                if (Equals(args.Parameter, "Update"))
                {
                    args.Cancel();
                    args.Session.UpdateContent(new PleaseWaitView());
                    Task.Run(() =>
                    {
                        Student student = null;
                        try
                        {
                            //using (var context = new MorenoContext())
                            //{
                            //    foreach (var item in Requirements)
                            //    {
                            //        context.Entry(item).State = EntityState.Modified;
                            //    }
                            //    context.SaveChanges();
                            //}
                            ////foreach (var requirement in Requirements)
                            ////{
                            ////    //_context.Entry(requirement).State = EntityState.Modified;
                            ////    _context.RequirementStudents.Attach(requirement);
                            ////}
                            ////_context.SaveChanges();
                            SelectedStudent.YearLevel = SelectedYearLevel;
                            SelectedStudent.Section   = SelectedSection;
                            student = StudentList.FirstOrDefault(c => c == SelectedStudent);

                            _context.SaveChanges();
                            result = true;
                        }

                        catch (Exception e)
                        {
                            Console.WriteLine(e.Message);
                            result = false;
                        }
                        return(student);
                    }).ContinueWith((t, _) =>
                    {
                        if (t.Result != null)
                        {
                            t.Result.RequirementStudents = Requirements;
                        }
                        LoadStudents();
                        var message = result ? "Update Successfull" : "Update Failed";
                        if (result)
                        {
                            LoadStudents();
                        }

                        args.Session.UpdateContent(new OkMessageDialog()
                        {
                            DataContext = message
                        });
                    }, null, TaskScheduler.FromCurrentSynchronizationContext());
                }
                if (Equals(args.Parameter, "Delete"))
                {
                    _content = args.Session.Content;
                    args.Cancel();
                    _isOkMessageOpen = true;
                    args.Session.UpdateContent(new OkCancelMessageDialog()
                    {
                        DataContext = $"Are you sure you want to delete {SelectedStudent.FullName}?"
                    });
                }
                if (Equals(args.Parameter, "Ok") && _isOkMessageOpen)
                {
                    _isOkMessageOpen = false;
                    args.Cancel();
                    args.Session.UpdateContent(new PleaseWaitView());
                    Task.Run(() =>
                    {
                        try
                        {
                            _context.Students.Remove(SelectedStudent);
                            _context.SaveChanges();
                            result = true;
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e.Message);
                            result = false;
                        }
                    }).ContinueWith((t, _) =>
                    {
                        LoadStudents();
                        var message      = result ? "Delete Successfull" : "Delete Failed";
                        _isOkMessageOpen = false;
                        args.Session.UpdateContent(new OkMessageDialog()
                        {
                            DataContext = message
                        });
                    }, null, TaskScheduler.FromCurrentSynchronizationContext());
                }
            });


            //Requirements = _context.RequirementStudents.AsNoTracking().Where(c => c.StudentId == SelectedStudent.Id)
            //    .ToList();
            //_oldRequirementStudents = Requirements;
            //await AddRequirementsToStudentAsync(SelectedStudent);
            //await DialogHost.Show(new StudentEditView() { DataContext = this }, "RootDialog", StudentEditClosingEventHandler);
        }
Exemplo n.º 11
0
        private async void EditYear()
        {
            await DialogHost.Show(new FieldMessageDialog()
            {
                DataContext = $"Edit Name of {SelectedYear.Name}"
            }, "YearDialog",
                                  delegate(object sender, DialogClosingEventArgs args)
            {
                bool result = false;
                if (Equals(args.Parameter, false))
                {
                    return;
                }
                if (args.Parameter is TextBox)
                {
                    args.Session.UpdateContent(new PleaseWaitView());
                    TextBox txtName = (TextBox)args.Parameter;
                    string name     = txtName.Text.Trim();

                    if (string.IsNullOrEmpty(name) || string.IsNullOrWhiteSpace(name))
                    {
                        args.Cancel();
                        args.Session.UpdateContent(new OkMessageDialog()
                        {
                            DataContext = "Null entry"
                        });
                        return;
                    }
                    var duplicate = _context.YearLevels.FirstOrDefault(c => c.Name == name);
                    if (duplicate != null)
                    {
                        args.Cancel();
                        args.Session.UpdateContent(new OkMessageDialog()
                        {
                            DataContext = "Duplicate Year Level"
                        });
                        return;
                    }
                    //SelectedYear.Name = name;
                    Task.Run(() =>
                    {
                        try
                        {
                            //var entity = _context.YearLevels.Find(SelectedYear.Id);
                            //if (entity != null) entity.Name = name;
                            //_context.SaveChanges();
                            //using (var context = new MorenoContext())
                            //{
                            var entity =
                                _context.YearLevels.FirstOrDefault(c => c.Id == SelectedYear.Id);
                            if (entity != null)
                            {
                                entity.Name = name;
                            }
                            _context.SaveChanges();
                            //}
                            result = true;
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e);
                            result = false;
                        }
                    }).ContinueWith((t, _) =>
                    {
                        if (!result)
                        {
                            args.Cancel();
                            args.Session.UpdateContent(new OkMessageDialog()
                            {
                                DataContext = "Edit Failed"
                            });
                        }
                        else
                        {
                            LoadData();
                            //SortYear();
                        }
                    }, null, TaskScheduler.FromCurrentSynchronizationContext());
                }
            });
        }
Exemplo n.º 12
0
        private void OnBorrowClosing(object sender, DialogClosingEventArgs args)
        {
            if (Equals(args.Parameter, false))
            {
                return;
            }

            if (args.Parameter is TextBox)
            {
                args.Session.UpdateContent(new PleaseWaitView());
                TextBox txtName = (TextBox)args.Parameter;
                int     number;
                var     name     = txtName.Text.Trim();
                var     tryParse = Int32.TryParse(name, out number);
                if (tryParse)
                {
                    if (number > SelectedBook.AvailableQuantity)
                    {
                        args.Cancel();
                        args.Session.UpdateContent(new OkMessageDialog()
                        {
                            DataContext = "Borrow quantity can't exceed available quantity."
                        });
                        return;
                    }
                    if (number < 1)
                    {
                        args.Cancel();
                        args.Session.UpdateContent(new OkMessageDialog()
                        {
                            DataContext = "Minimum quantity is 1."
                        });
                        return;
                    }
                }
                Task.Run(() =>
                {
                    if (tryParse)
                    {
                        _oldSelectedTeacher = SelectedTeacher;
                        var bookSearch      =
                            _context.TeacherBorrowedBooks.FirstOrDefault(c => c.Teacher.Id == SelectedTeacher.Id &&
                                                                         c.Book.Id == SelectedBook.Id);
                        bool isFind = bookSearch != null;

                        if (!isFind)
                        {
                            var newBorrowedbook = new TeacherBorrowedBook
                            {
                                Teacher          = SelectedTeacher,
                                Book             = SelectedBook,
                                QuantityBorrowed = number,
                                DateBorrowed     = DateTime.Now.Date,
                            };

                            //SelectedBook.AvailableQuantity =
                            _context.TeacherBorrowedBooks.Add(newBorrowedbook);
                            _context.SaveChanges();
                        }
                        else
                        {
                            var borBook = _context.TeacherBorrowedBooks.FirstOrDefault(c => c.Teacher.Id == SelectedTeacher.Id &&
                                                                                       c.Book.Id == SelectedBook.Id);
                            if (borBook != null)
                            {
                                borBook.QuantityBorrowed = borBook.QuantityBorrowed + number;
                                //SelectedBook.AvailableQuantity -= number;
                                //_unitOfWork.TeacherBorrowedBook.ModifyBorrowedBook(borBook);
                            }
                        }
                        var newBorrowedBook = new TeacherBorrowedBook();
                        //var borrewdBook = _context.TeacherBorrowedBooks.


                        var bookList         = _context.TeacherBorrowedBooks.Where(c => c.Book.Id == SelectedBook.Id).ToList();
                        int quantityBorrowed = 0;
                        foreach (var book in bookList)
                        {
                            quantityBorrowed += book.QuantityBorrowed;
                        }

                        SelectedBook.AvailableQuantity = SelectedBook.Quantity -
                                                         (quantityBorrowed + SelectedBook.Damaged +
                                                          SelectedBook.Outdated);

                        _context.SaveChangesAsync();
                    }
                }).ContinueWith((t, _) =>
                {
                    LoadData();
                    Messenger.Default.Send(new NewBookUpdate());
                    SelectedTeacher = _oldSelectedTeacher;
                }, null, TaskScheduler.FromCurrentSynchronizationContext());
            }
        }