public void CalendarDialogClosingEventHandler(object sender, DialogClosingEventArgs eventArgs)
        {
            if (!Equals(eventArgs.Parameter, "1")) return;

            if (!Calendar.SelectedDate.HasValue)
            {
                eventArgs.Cancel();
                return;
            }

            ((PickersViewModel)DataContext).Date = Calendar.SelectedDate.Value;
        }
        private void ExtendedClosingEventHandler(object sender, DialogClosingEventArgs eventArgs)
        {
            if ((bool)eventArgs.Parameter == false) return;

            //OK, lets cancel the close...
            eventArgs.Cancel();

            //...now, lets update the "session" with some new content!
            eventArgs.Session.UpdateContent(new SampleProgressDialog());
            //note, you can also grab the session when the dialog opens via the DialogOpenedEventHandler

            //lets run a fake operation for 3 seconds then close this baby.
            Task.Delay(TimeSpan.FromSeconds(3))
                .ContinueWith((t, _) => eventArgs.Session.Close(false), null,
                    TaskScheduler.FromCurrentSynchronizationContext());
        }
Exemple #3
0
        void ProcessTransit(MaterialDesignThemes.Wpf.DialogClosingEventArgs eventArgs)
        {
            if (Type == MemberSelectionCategory.PersonnelTransit)
            {
                Data.Passage pass = new Data.Passage();
                pass.MemberId   = SelectedMember.Id;
                pass.IsEntrance = prdIn.IsChecked == true;
                pass.Time       = DateTime.Now;
                db.Passages.InsertOnSubmit(pass);

                db.SubmitChanges();
                Main.Home.TransitList.UpdatePassages();

                if (SelectedMember != null)
                {
                    this.Close();
                }
            }
            else if (Type == MemberSelectionCategory.MembersTransit)
            {
                if (rdIn.IsChecked == true)
                {
                    var usedCoursesCount = CoursesBox.Children.Cast <CheckBox>().Where(c => c.IsChecked == true).Count();
                    if (usedCoursesCount == 0)
                    {
                        Alert.Content            = $"هیچ دوره ای انتخاب نشده بنابراین ورود ثبت نشد، مجددا تلاش فرمایید";
                        MessageSnackBar.IsActive = true;
                        eventArgs.Cancel();
                        return;
                    }

                    CoursesBox.Children.Cast <CheckBox>().Where(c => c.IsChecked == true).ToList().ForEach(check =>
                    {
                        //if (!needsSave) needsSave = true;
                        var item = check.Tag as MemberCourse;

                        var courseUsage = db.EnrollCourses.Where(ec =>
                                                                 ec.CourseId == item.CId &&
                                                                 ec.EnrollId == item.EId
                                                                 ).FirstOrDefault();

                        if (courseUsage.Enroll.Frequency == 2) //2 = جلسه ای
                        {
                            courseUsage.SessionsLeft -= 1;
                        }
                    });
                }

                //bool needsSave = false;

                //if (needsSave) db.SubmitChanges();

                Data.Passage pass = new Data.Passage();
                pass.MemberId   = SelectedMember.Id;
                pass.IsEntrance = Type == MemberSelectionCategory.MembersTransit ? rdIn.IsChecked == true : prdIn.IsChecked == true;
                pass.Time       = DateTime.Now;
                db.Passages.InsertOnSubmit(pass);


                if (rdOut.IsChecked == true)
                {
                    var mmbr  = db.Members.Where(m => m.Id == SelectedMember.Id).FirstOrDefault();
                    var nrols = mmbr.Enrolls.Where(e => e.StartDate <= DateTime.Today &&
                                                   (e.ExpireDate == null || e.ExpireDate >= DateTime.Today)).ToList();
                    var nc = nrols.SelectMany(n => n.EnrollCourses).ToList();


                    if (!nc.Any(c => c.SessionsLeft > 0))
                    {
                        nrols.SelectMany(n => n.EnrollFacilities).ToList().ForEach(f => f.SessionsLeft = 0);
                        nrols.ForEach(n => n.IsActive = false);
                    }
                    else
                    {
                        FacilitiesBox.Children.Cast <CheckBox>().Where(c => c.IsChecked == true).ToList().ForEach(check =>
                        {
                            var item = check.Tag as MemberFacility;

                            var facilityUsage = db.EnrollFacilities.Where(ef =>
                                                                          ef.FacilityId == item.FId &&
                                                                          ef.EnrollId == item.EId
                                                                          ).FirstOrDefault();

                            facilityUsage.SessionsLeft -= 1;
                        });
                    }
                }

                db.SubmitChanges();
                Info.SetMember(SelectedMember.Id, pass.IsEntrance ? "ورود" : "خروج", PayedFacilities.Select(f => f.Name).ToList());
                Info.Show();
                Info.Focus();
                Close();

                if (pass.IsEntrance)
                {
                    SelectedMember.UseCloset(db);
                }
                else
                {
                    SelectedMember.FreeUpCloset(db);
                }

                Main.Home.Closets.LoadClosets();
                Main.Home.TransitList.UpdatePassages();

                //Reduce one Session from Course Sessions & Facility Sessions

                //bool needsSave = false;
                //FacilitiesBox.Children.Cast<CheckBox>().Where(c => c.IsChecked == true).ToList().ForEach(check =>
                //  {
                //      if (!needsSave) needsSave = true;
                //      var item = check.Tag as MemberFacility;

                //      var facilityUsage = db.EnrollFacilities.Where(ef =>
                //          ef.FacilityId == item.FId &&
                //          ef.EnrollId == item.EId
                //      ).FirstOrDefault();

                //      facilityUsage.SessionsLeft -= 1;
                //  });
                //if (needsSave) db.SubmitChanges();


                //if (SelectedMember != null)
                //{
                //    this.Close();
                //}
            }
            else if (Type == MemberSelectionCategory.DeleteMembers)
            {
                db = new Data.GymContextDataContext();
                db.Members.Where(m => m.Id == SelectedMember.Id).FirstOrDefault().IsDeleted = true;

                if (tglGetCardBack.IsChecked == true)
                {
                    ;//Make Card Clear to be used by other members
                }
                db.SubmitChanges();

                ListMembers(txtSearchBox.Text);
            }
        }