public IActionResult AddNewMember(int id)
ViewBag.MembersCivilIDs = _context.Members.Where(s => s.CommitteeID == id).Select(s => s.CivilID).ToList();
ViewBag.Sessions = _context.Sessions.Where(c => c.CommitteeId == id).ToList(); ;
ViewBag.UnallowedJobTitles = _context.UnallowedJobTitles.ToList(); ;
ViewBag.Months = _context.Sessions.Where(c => c.CommitteeId == id).Select(x => x.SessionDate.Month).Distinct().OrderByDescending(d => d).ToList();
ViewBag.Years = _context.Sessions.Where(c => c.CommitteeId == id).Select(x => x.SessionDate.Year).Distinct().OrderByDescending(d => d).ToList();
public IActionResult AddNewMember(AddNewMember_VM model) {
var newMemberRequest = model.newMemberRequest;
var newMemberSessionsRequest = model.newMemberSessionsRequest;
string ResultMessage = "";
if (newMemberRequest == null) {
return Json(new { isSuccess = false, ResultMessage = "لا يمكن إضافة العضو" });
var checkExistingMember = _context.Members.Where(x => x.CivilID == newMemberRequest.CivilID && x.CommitteeID == newMemberRequest.CommitteeID).FirstOrDefault();
if (checkExistingMember != null) {
return Json(new { isSuccess = false, ResultMessage = "لا يمكن إضافة العضو لأنه موجود" });
Members newMember = new Members();
newMember.CivilID = newMemberRequest.CivilID;
newMember.FullName = newMemberRequest.FullName;
newMember.MemberType = newMemberRequest.MemberType;
newMember.JobTitle = newMemberRequest.JobTitle;
newMember.EmployeeType = newMemberRequest.EmployeeType;
{ newMember.FingerPrintId = newMemberRequest.FingerPrintId; }
newMember.CommitteeID = newMemberRequest.CommitteeID;
newMember.MembershipStatus = 1;
newMember.AddedDate = DateTime.Now.Date;
newMember.LastUpdatedDate = null;
_context.Members.Add(newMember);
if(newMemberSessionsRequest != null)
newMemberSessionsRequest = newMemberSessionsRequest.OrderByDescending(x => x.Attend).ToList();
var theModel = newMemberSessionsRequest.FirstOrDefault(x => x.CommitteeId.HasValue);
int? commettieID = theModel?.CommitteeId;
var newMemberID = _context.Members.Where(x => x.CivilID == newMemberRequest.CivilID && x.CommitteeID == newMemberRequest.CommitteeID).Select(x => x.ID).FirstOrDefault();
foreach (var member in newMemberSessionsRequest)
member.CommitteeMemberId = newMemberID;
var MemberlistSessionCount = _context.View_MonthlyCountOfSessions.FirstOrDefault(x => x.CommitteeId == theModel.CommitteeId && x.MONTH == theModel.SessionDate.Value.Month && x.YEAR == theModel.SessionDate.Value.Year && x.MemberId == theModel.CommitteeMemberId);
if (member.Attend == true)
MemberSessions membsess = new MemberSessions();
membsess = _context.MemberSessions.Find(member.Id);
if (member.Attend != membsess.Attend)
if (MemberlistSessionCount.CountOfSessions < 6 || MemberlistSessionCount.CountOfSessions == null)
membsess.IsDisabled = false;
membsess.IsDisabled = true;
membsess.Amount = unpaid;
membsess.Notes = "تجاوز 6 جلسات";
MemberSessions membsess = new MemberSessions();
membsess = _context.MemberSessions.Find(member.Id);
if (member.Attend == null) member.Attend = false;
if (member.Attend != membsess.Attend && member.IsDisabled != true)
membsess.Amount = unpaid;
membsess.IsDisabled = false;
if (MemberlistSessionCount.CountOfSessions < 6 || MemberlistSessionCount.CountOfSessions == null)
if (member.Attend == true)
MemberSessions membsess = new MemberSessions();
membsess.SessionId = member.SessionId;
membsess.CommitteeMemberId = member.CommitteeMemberId;
membsess.MonthValue = member.SessionDate?.Month;
membsess.YearValue = member.SessionDate?.Year;
membsess.IsDisabled = false;
_context.MemberSessions.Add(membsess);
MemberSessions membsess = new MemberSessions();
membsess.SessionId = member.SessionId;
membsess.CommitteeMemberId = member.CommitteeMemberId;
membsess.MonthValue = member.SessionDate?.Month;
membsess.YearValue = member.SessionDate?.Year;
membsess.IsDisabled = false;
membsess.Amount = unpaid;
_context.MemberSessions.Add(membsess);
MemberSessions membsess = new MemberSessions();
membsess.SessionId = member.SessionId;
membsess.CommitteeMemberId = member.CommitteeMemberId;
membsess.MonthValue = member.SessionDate?.Month;
membsess.YearValue = member.SessionDate?.Year;
membsess.IsDisabled = true;
membsess.Amount = unpaid;
membsess.Notes = "تجاوز 6 جلسات";
_context.MemberSessions.Add(membsess);
var MemberlistSessionCount2 = _context.View_MonthlyCountOfSessions.FirstOrDefault(x => x.CommitteeId == theModel.CommitteeId && x.MONTH == theModel.SessionDate.Value.Month && x.YEAR == theModel.SessionDate.Value.Year && x.MemberId == theModel.CommitteeMemberId);
if (MemberlistSessionCount2.CountOfSessions < 6)
var cmd = $"UPDATE MemberSessions SET Notes =NULL, IsDisabled = 0 where CommitteeMemberId = {theModel.CommitteeMemberId} and MonthValue={theModel.SessionDate.Value.Month} and YearValue = {theModel.SessionDate.Value.Year} ";
_context.Database.ExecuteSqlRaw(cmd);
var cmd = $"UPDATE MemberSessions SET Notes ='تجاوز 6 جلسات', IsDisabled = 1 where CommitteeMemberId = {theModel.CommitteeMemberId} and MonthValue={theModel.SessionDate.Value.Month} and YearValue = {theModel.SessionDate.Value.Year} and Attend={0} ";
_context.Database.ExecuteSqlRaw(cmd);
return Json(new { isSuccess = true, ResultMessage = "تم إضافة العضو" });