Exemplo n.º 1
0
        //internal void SetAge()
        //{
        //    var today = DateTime.Today;
        //    // Calculate the age.
        //    Age = today.Year - Birthdate.GetValueOrDefault().Year;
        //    // Go back to the year the person was born in case of a leap year
        //    if (Birthdate.GetValueOrDefault().Date > today.AddYears(-Age)) Age--;
        //}

        public int GetAge(DateTime asOfDate)
        {
            var age = asOfDate.Year - Birthdate.GetValueOrDefault().Year;

            // Go back to the year the person was born in case of a leap year
            if (Birthdate.GetValueOrDefault().Date > asOfDate.AddYears(-age))
            {
                age--;
            }

            return(age);
        }
        private async void OnRegisterClosing(object sender, DialogClosingEventArgs args)
        {
            if (Equals(args.Parameter, false))
            {
                return;
            }

            if (_isOkMessageOpen && _result)
            {
                _isOkMessageOpen = false;
                return;
            }
            if (_isOkMessageOpen && !_result)
            {
                args.Session.UpdateContent(_content);
            }

            args.Cancel();
            await ValidateAsync();

            RaisePropertyChanged(() => IsValid);

            if (Equals(args.Parameter, "Add") && !HasErrors)
            {
                args.Session.UpdateContent(new PleaseWaitView());
                await Task.Run(() =>
                {
                    try
                    {
                        var newTeacher = new Teacher()
                        {
                            FirstName  = FirstName,
                            MiddleName = MiddleName,
                            LastName   = LastName,
                            Gender     = Gender,
                            ContactNo  = Contact,
                            Birthday   = Birthdate.GetValueOrDefault(),
                            Address    = Address,
                            Photo      = Photo,
                        };
                        _context.Teachers.Add(newTeacher);
                        _context.SaveChanges();
                        _result = true;
                        return($"{newTeacher.FullName} is registered");
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        _content = args.Session.Content;
                        _result  = false;
                        return($"Failed to register Student");
                    }
                })
                .ContinueWith((t, _) =>
                {
                    LoadData();
                    SendUpdateMessage();
                    args.Session.UpdateContent(new OkMessageDialog()
                    {
                        DataContext = t.Result
                    });
                    _isOkMessageOpen = true;
                }, null, TaskScheduler.FromCurrentSynchronizationContext());
            }
        }
        private async void AddStudentClosing(object sender, DialogClosingEventArgs args)
        {
            if (Equals(args.Parameter, "Exit"))
            {
                return;
            }
            if (_isOkMessageOpen && _result)
            {
                _isOkMessageOpen = false;
                return;
            }
            else if (_isOkMessageOpen && !_result)
            {
                _isOkMessageOpen = false;
                args.Session.UpdateContent(_content);
            }
            args.Cancel();

            await ValidateAsync();

            RaisePropertyChanged(() => IsValid);

            if (Equals(args.Parameter, "Add") && !HasErrors)
            {
                args.Cancel();

                args.Session.UpdateContent(new PleaseWaitView());
                await Task.Run(() =>
                {
                    try
                    {
                        Student NewStudent;

                        //using (var context = new MorenoContext())
                        //{
                        NewStudent = new Student()
                        {
                            FirstName  = FirstName,
                            MiddleName = MiddleName,
                            LastName   = LastName,
                            Gender     = Gender,
                            Contact    = Contact,
                            Address    = Address,
                            SchoolYear = SchoolYear,
                            BirthDate  = Birthdate.GetValueOrDefault(),
                            LRN        = LRN,
                            YearLevel  = SelectedYearLevel,
                            Section    = SelectedSection,
                            Photo      = Photo
                        };
                        _context.Students.Add(NewStudent);

                        _context.SaveChanges();
                        var user = new User()
                        {
                            UserName = LRN,
                            Password =
                                $"{FirstName[0]}{MiddleName[0]}{LastName[0]}{Birthdate?.Date.ToString("dMyyyy")}"
                                .ToLower(),
                            Authorization = "Student",
                            Student       = NewStudent
                        };
                        _context.Users.Add(user);
                        _context.SaveChanges();
                        foreach (var requirement in NewStudentRequirements)
                        {
                            var studentRequirements = new RequirementStudents
                            {
                                RequirementId = requirement.Id,
                                Status        = requirement.Status,
                                StudentId     = NewStudent.Id
                            };
                            NewStudent.RequirementStudents.Add(studentRequirements);
                            _context.SaveChanges();
                        }


                        //_context.Students.Add(NewStudent);
                        //_context.Users.Add(user);

                        StatusMessage = $"{NewStudent.FullName} is registered";
                        _result       = true;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);

                        StatusMessage = $"Failed to register Student";

                        _result = false;
                    }
                })
                .ContinueWith((t, _) =>
                {
                    if (!_result)
                    {
                        _content = args.Session.Content;
                    }
                    LoadStudents();
                    args.Session.UpdateContent(new OkMessageDialog()
                    {
                        DataContext = StatusMessage
                    });
                    _isOkMessageOpen = true;
                }, null, TaskScheduler.FromCurrentSynchronizationContext());
            }
        }