private void Members_MemberSelected(ViewModels.MemberVM member) { MemberHolder.Children.Clear(); if (member != null) { MemberHolder.Children.Add(new MemberCard(member.Id)); txtCredit.Text = $"{member.Credit:n0}"; MemberId = member.Id; } }
private void Card_MemberSelected(ViewModels.MemberVM member) { if (Type == MemberSelectionCategory.SelectionOnly) { if (MemberSelected != null) { MemberSelected(member); } if (member != null) { this.Close(); } } else if (Type == MemberSelectionCategory.MembersTransit) { db = new Data.GymContextDataContext(); var lastTransit = db.Passages.Where(p => p.MemberId == member.Id).OrderByDescending(p => p.Time).FirstOrDefault(); var isEntrance = !(lastTransit?.IsEntrance ?? false); var mmbr = db.Members.Where(m => m.Id == member.Id).FirstOrDefault(); var nrols = mmbr.Enrolls.Where(e => e.StartDate <= DateTime.Today && (e.ExpireDate == null || e.ExpireDate >= DateTime.Today)).ToList(); if (isEntrance && !nrols.Any()) { Alert.Content = $"در حال حاضر {member.Fullname} هیچ دوره فعالی ندارند"; MessageSnackBar.IsActive = true; Info.SetMember(member.Id, "غیر مجاز: دوره فعال ندارد", null); (Application.Current.MainWindow as Main).Focus(); Info.Show(); Info.Focus(); return; } var nc = nrols.SelectMany(n => n.EnrollCourses).ToList(); var todayTransits = db.Passages.Where(p => p.MemberId == member.Id && p.IsEntrance && p.Time >= DateTime.Today && p.Time < DateTime.Today.AddDays(1)).Count(); if (isEntrance && nrols.Count == 1 && todayTransits >= nrols.FirstOrDefault().DailyPasses) { Alert.Content = $" تجاوز از تعداد تردد مجاز روزانه"; MessageSnackBar.IsActive = true; Info.SetMember(member.Id, "غیر مجاز: تردد بیش از حد مجاز روزانه", null); Info.Show(); Info.Focus(); return; } if (!nc.Any(c => c.SessionsLeft > 0)) { if (isEntrance) { Alert.Content = $"{member.Fullname} از تمام جلسات خود استفاده کرده اند و اجازه ورود ندارند"; MessageSnackBar.IsActive = true; Info.SetMember(member.Id, "غیر مجاز: جلسات به پایان رسیده است", null); Info.Show(); return; } } //var courses = nc.Select(n => n.Course).ToList(); PayedCourses = nc.Select(c => new MemberCourse { EId = c.EnrollId, CId = c.CourseId, Name = c.Course.Name, SessionsLeft = c.SessionsLeft, ExpiresAt = c.Enroll.ExpireDate, Used = false } ).ToList(); var nf = nrols.SelectMany(n => n.EnrollFacilities).ToList(); PayedFacilities = nf.Select(f => new MemberFacility { EId = f.EnrollId, FId = f.FacilityId, Name = f.Facility.Name, SessionsLeft = f.SessionsLeft, Used = false } ).ToList(); FacilitiesBox.Children.Clear(); PayedFacilities.ForEach(f => { var check = new CheckBox { IsThreeState = false, IsChecked = false, Content = f.Name, IsEnabled = f.SessionsLeft > 0, Tag = f }; FacilitiesBox.Children.Add(check); }); //PayedCourses = (from m in db.Members // join e in db.Enrolls on m.Id equals e.MemberId // join ec in db.EnrollCourses on e.Id equals ec.CourseId // join c in db.Courses on ec.CourseId equals c.Id // where m.Id == member.Id // && e.StartDate <= DateTime.Today // && (e.ExpireDate == null || e.ExpireDate >= DateTime.Today) // select new MemberCourse // { // EId = ec.EnrollId, // CId = ec.CourseId, // Name = c.Name, // ExpiresAt = e.ExpireDate, // SessionsLeft = ec.SessionsLeft // }).ToList(); //PayedCourses = db.Members.Where(m => m.Id == SelectedMember.Id && m.EnrollCourses.SelectMany(ec => ec.Enroll)) CoursesBox.Children.Clear(); var oneCourseAvailable = PayedCourses.Where(x => x.SessionsLeft > 0).Count() == 1; PayedCourses.ForEach(c => { var check = new CheckBox { IsThreeState = false, IsChecked = oneCourseAvailable ? true : false, Content = c.Name, IsEnabled = c.SessionsLeft > 0, Tag = c }; CoursesBox.Children.Add(check); }); //TransitDialogHost.BringIntoView(); PersonnelTransitDialog.Visibility = Visibility.Collapsed; MemberDeleteDialog.Visibility = Visibility.Collapsed; MembersTransitDialog.Visibility = Visibility.Visible; SelectedMember = member; rdIn.IsChecked = isEntrance; rdOut.IsChecked = !isEntrance; if (oneCourseAvailable) { ProcessTransit(null); } else { TransitDialogHost.IsOpen = true; txtMemberName.Text = member.Fullname; } //Close(); //TransitDialogHost.IsEnabled = true; //TransitDialogHost.Visibility = Visibility.Visible; } else if (Type == MemberSelectionCategory.PersonnelTransit) { MembersTransitDialog.Visibility = Visibility.Collapsed; MemberDeleteDialog.Visibility = Visibility.Collapsed; PersonnelTransitDialog.Visibility = Visibility.Visible; TransitDialogHost.IsOpen = true; txtPersonnelName.Text = member.Fullname; var lastTransit = db.Passages.Where(p => p.MemberId == member.Id).OrderByDescending(p => p.Time).FirstOrDefault(); var isEntrance = !(lastTransit?.IsEntrance ?? false); prdIn.IsChecked = isEntrance; prdOut.IsChecked = !isEntrance; SelectedMember = member; } else if (Type == MemberSelectionCategory.DeleteMembers) { MembersTransitDialog.Visibility = Visibility.Collapsed; PersonnelTransitDialog.Visibility = Visibility.Collapsed; MemberDeleteDialog.Visibility = Visibility.Visible; TransitDialogHost.IsOpen = true; deletingMemberName.Text = member.Fullname; deletingMemberCredit.Value = member.Credit < 0 ? (-1 * member.Credit) : 0; btnClearCreditDebtor.IsEnabled = member.Credit < 0; deletingMemberTuitionDebtor.Value = member.Credit < 0 ? (member.Debtor - member.Credit) : member.Debtor; btnClearTutionDebtor.IsEnabled = deletingMemberTuitionDebtor.Value > 0; SelectedMember = member; btnDeleteMember.IsEnabled = deletingMemberCredit.Value + deletingMemberTuitionDebtor.Value <= 0; } else if (Type == MemberSelectionCategory.TutitionDebtorsList || Type == MemberSelectionCategory.ShoppingDebtorsList || Type == MemberSelectionCategory.NearExpiryList) { Enroll enroll = new Enroll(); enroll.Section = Type == MemberSelectionCategory.NearExpiryList ? 1 : 2; enroll.Owner = Main.Home; enroll.Show(); enroll.LoadMember(member.Id); } if (Info.IsVisible) { Info.Focus(); Info.BringIntoView(); } //Close(); }