private void MeetingAssignmentsGridBox_CellContentClick(object sender, DataGridViewCellEventArgs e) { MeetingAssignment meetassign = manager.MeetingAssignmentByMeetingAssignmentId(Convert.ToInt32(MeetingAssignmentsGridBox.Rows[e.RowIndex].Cells[0].Value)); SelectedMeetingAssignment = meetassign; List<Member> mavailabe = manager.MembersAvailable(meetassign.AssignmentId,meetassign.Meeting.MeetingDate); chooseMemberBox.Visible = true; AssignmentLabel.Visible = true; UpdateMemberAssignment.Visible = true; AssignmentLabel.Text = "Choose member for " + meetassign.Assignment.Label; chooseMemberBox.DataSource = mavailabe; chooseMemberBox.ValueMember = "Id"; chooseMemberBox.DisplayMember = "LastName"; }
private void MeetingAssignmentsGridBox_CellContentClick(object sender, DataGridViewCellEventArgs e) { MeetingAssignment meetassign = manager.MeetingAssignmentByMeetingAssignmentId(Convert.ToInt32(MeetingAssignmentsGridBox.Rows[e.RowIndex].Cells[0].Value)); SelectedMeetingAssignment = meetassign; List <Member> mavailabe = manager.MembersAvailable(meetassign.AssignmentId, meetassign.Meeting.MeetingDate); chooseMemberBox.Visible = true; AssignmentLabel.Visible = true; UpdateMemberAssignment.Visible = true; AssignmentLabel.Text = "Choose member for " + meetassign.Assignment.Label; chooseMemberBox.DataSource = mavailabe; chooseMemberBox.ValueMember = "Id"; chooseMemberBox.DisplayMember = "LastName"; }
private void UpdateMemberAssignment_Click(object sender, EventArgs e) { List<MeetingAssignment> oldMeetingAssignment = SelectedMeetingAssignment.Member.MeetingAssignments.ToList(); oldMeetingAssignment = oldMeetingAssignment.Where(z => z.ReferanceMark == true).ToList(); if(oldMeetingAssignment.Count!=0) { oldMeetingAssignment.OrderBy(o => o.Meeting.MeetingDate).ToList(); oldMeetingAssignment.Last().ReferanceMark = false; manager.UpdateMeetingAssignment(oldMeetingAssignment.Last()); } SelectedMeetingAssignment.MemberId = Convert.ToInt32(chooseMemberBox.SelectedValue); SelectedMeetingAssignment.ReferanceMark = false; SelectedMeetingAssignment = manager.UpdateMeetingAssignment(SelectedMeetingAssignment); UpdateMemberAssignmentBox(SelectedMeetingAssignment.MeetingId); }
private void UpdateMemberAssignment_Click(object sender, EventArgs e) { List <MeetingAssignment> oldMeetingAssignment = SelectedMeetingAssignment.Member.MeetingAssignments.ToList(); oldMeetingAssignment = oldMeetingAssignment.Where(z => z.ReferanceMark == true).ToList(); if (oldMeetingAssignment.Count != 0) { oldMeetingAssignment.OrderBy(o => o.Meeting.MeetingDate).ToList(); oldMeetingAssignment.Last().ReferanceMark = false; manager.UpdateMeetingAssignment(oldMeetingAssignment.Last()); } SelectedMeetingAssignment.MemberId = Convert.ToInt32(chooseMemberBox.SelectedValue); SelectedMeetingAssignment.ReferanceMark = false; SelectedMeetingAssignment = manager.UpdateMeetingAssignment(SelectedMeetingAssignment); UpdateMemberAssignmentBox(SelectedMeetingAssignment.MeetingId); }
public MeetingAssignment UpdateMeetingAssignment(MeetingAssignment meetingAssignment) { MeetingAssignment ma = MeetingAssignmentByMeetingAssignmentId(meetingAssignment.Id); ma.MeetingId = meetingAssignment.MeetingId; ma.AssignmentId = meetingAssignment.AssignmentId; ma.MemberId = meetingAssignment.MemberId; ma.ReferanceMark = meetingAssignment.ReferanceMark; ma.ScheduleDateId = meetingAssignment.ScheduleDateId; ma.UpdateDate = DateTime.Now; repository.SaveChanges(); return ma; }
public Member NextMemberToAssign(List<Member> membersAvailable, Meeting currentMeeting, Assignment currentAssignment) { List<Member> newMembers = (from mem in membersAvailable where mem.MeetingAssignments.Count == 0 select mem).ToList(); if (newMembers.Count != 0) { newMembers = newMembers.OrderBy(z => z.FirstName).ToList(); return newMembers[0]; } int meetingCountToBeat = new int(); int meetingCounter = 0; Member currentlySelected = new Member(); MeetingAssignment mLastMeetingAssignment = new MeetingAssignment(); List<Member> alreadyAssigned = (from l in currentMeeting.MeetingAssignments select l.Member).ToList(); List<Meeting> allMeeting = (from v in repository.Meetings where v.CongregationId == currentMeeting.CongregationId select v).ToList(); allMeeting = allMeeting.OrderByDescending(o => o.MeetingDate).ToList(); int index = allMeeting.IndexOf(currentMeeting); List<Member> go = (from goat in allMeeting[index + 1].MeetingAssignments select goat.Member).ToList(); foreach (Member m in membersAvailable) { List<MeetingAssignment> selectedMAssignments = (from d in repository.MeetingAssignments where d.MemberId == m.Id select d).ToList(); selectedMAssignments = selectedMAssignments.OrderByDescending(o => o.Meeting.MeetingDate).ToList(); if (alreadyAssigned.Any(p => p.Id == m.Id))//skips if they are already assigned or previous assignment was same assignment. { continue; } if (selectedMAssignments[0].AssignmentId == currentAssignment.Id && m.MemberAssignments.Count > 2) { continue; } foreach (DateTime d in EachDayLoop(selectedMAssignments[0].Meeting.MeetingDate.AddDays(1), currentMeeting.MeetingDate.AddDays(-1))) { if (Convert.ToString(d.DayOfWeek) == m.Congregation.PublicMeetingDay || Convert.ToString(d.DayOfWeek) == m.Congregation.WeekMeetingDay) { meetingCounter++; } } if (currentlySelected.Id == 0) { meetingCountToBeat = meetingCounter; currentlySelected = m; mLastMeetingAssignment = selectedMAssignments[0]; meetingCounter = 0; continue; } if (meetingCounter > meetingCountToBeat) { meetingCountToBeat = meetingCounter; currentlySelected = m; mLastMeetingAssignment = selectedMAssignments[0]; meetingCounter = 0; } if (meetingCounter == meetingCountToBeat) { if (selectedMAssignments[0].Assignment.Label != currentAssignment.Label && mLastMeetingAssignment.Assignment.Label == currentAssignment.Label) { currentlySelected = m; mLastMeetingAssignment = selectedMAssignments[0]; } } meetingCounter = 0; continue; } return currentlySelected; }
public MeetingAssignment CreateMeetingAssignment(int meetingId, int memberId, int assignmentId, int congregationId, int scheduleDateId) { MeetingAssignment meetingassignment = new MeetingAssignment(); meetingassignment.MeetingId = meetingId; meetingassignment.MemberId = memberId; meetingassignment.AssignmentId = assignmentId; meetingassignment.CongregationId = congregationId; meetingassignment.ReferanceMark = false; meetingassignment.ScheduleDateId = scheduleDateId; meetingassignment.CreateDate = DateTime.Now; repository.MeetingAssignments.Add(meetingassignment); repository.SaveChanges(); return meetingassignment; }