public async Task <SingleAgenda> GetAgendaForMemberById(int agendaId, int memberId) { SingleAgenda li = new SingleAgenda(); try { Agendas agenda = await db.Agendas.FindAsync(agendaId); if (agenda == null) { li.Status = false; li.Message = "404 Not Found"; return(li); } else { li.Status = true; li.Message = "Record you asked."; AgendasClassForMember temp = new AgendasClassForMember { ID = agenda.ID, Title = agenda.Title, DateTime = agenda.DateTime.ToString("dddd dd MMMM, yyyy") + " at " + agenda.DateTime.ToShortTimeString(), Description = agenda.Description, Users = db.AgendaUsers.Where(x => x.AgendasID == agenda.ID && x.Status == true).Count() }; if (agenda.DateTime == DateTime.Now) { temp.AgendaStatus = "Today"; temp.AgendaStatusColor = "0xff38ad0d"; } else if (agenda.DateTime < DateTime.Now) { temp.AgendaStatus = "Hosted"; temp.AgendaStatusColor = "0xffb7b7b7"; } else { temp.AgendaStatus = "Upcoming"; temp.AgendaStatusColor = "0xfff47d08"; } AgendaUsers Member = db.AgendaUsers.FirstOrDefault(x => x.AgendasID == agenda.ID && x.User == memberId); if (Member == null) { temp.MemberStatus = "Not Going"; temp.MemberStatusColor = "0xffd32424"; } else if (Member.Status) { temp.MemberStatus = "Going"; temp.MemberStatusColor = "0xff15bc52"; } else { temp.MemberStatus = "Not Going"; temp.MemberStatusColor = "0xffd32424"; } li.Agenda = temp; li.Note = await db.Notes.Select(x => new { x.ID, x.Title, x.Description, x.AgendasID, MemberId = x.Peoples.ID, MemberImage = x.Peoples.Image, MemberName = x.Peoples.FullName, UserType = x.Peoples.Type, NoteStatus = x.Status }).FirstOrDefaultAsync(x => x.AgendasID == agenda.ID && x.NoteStatus.Equals("Public")); li.Secretary = db.Peoples.Where(x => x.Type.Equals("Secretary")).Select(x => new { x.ID, x.Image, x.FullName, x.Email }).ToList(); li.Members = db.AgendaUsers.Where(x => x.AgendasID == agenda.ID && x.Status == true && x.User != memberId).Take(4).Select(x => new { MemberId = x.Peoples.ID, MemberImage = x.Peoples.Image, MemberName = x.Peoples.FullName, MemberEmail = x.Peoples.Email }).ToList(); return(li); } } catch (Exception e) { li.Status = false; li.Message = e.InnerException.ToString(); return(li); } }
// Get All Agendas by Member: Member public ResponseList GetAgendasByMember(int memberId, int?page = 1, int?per_page = 10, string search = "") { ResponseList li = new ResponseList(); try { List <Agendas> data = new List <Agendas>(); if (page.Value <= 0) { page = 1; } int pg = (page.Value - 1); var skip = pg * per_page.Value; li.Status = true; li.Message = "List of Agendas"; if (!String.IsNullOrWhiteSpace(search)) { data = db.Agendas.OrderBy(x => x.DateTime).Skip(skip).Take(per_page.Value).ToList(); } else { data = db.Agendas.Where(x => x.Title.Contains(search)).OrderBy(x => x.DateTime).Skip(skip).Take(per_page.Value).ToList(); } List <AgendasClassForMember> list1 = new List <AgendasClassForMember>(); List <AgendasClassForMember> list2 = new List <AgendasClassForMember>(); List <AgendasClassForMember> list3 = new List <AgendasClassForMember>(); foreach (var details in data) { AgendasClassForMember temp = new AgendasClassForMember { ID = details.ID, Title = details.Title, DateTime = details.DateTime.ToString("dddd dd MMMM, yyyy") + " at " + details.DateTime.ToShortTimeString(), Description = details.Description, Users = db.AgendaUsers.Where(x => x.AgendasID == details.ID && x.Status == true).Count() }; AgendaUsers Member = db.AgendaUsers.FirstOrDefault(x => x.AgendasID == details.ID && x.User == memberId); if (Member != null) { if (!Member.Status) { temp.MemberStatus = "Not Going"; temp.MemberStatusColor = "0xffd32424"; } else { temp.MemberStatus = "Going"; temp.MemberStatusColor = "0xff15bc52"; } } else { temp.MemberStatus = "Not Going"; temp.MemberStatusColor = "0xffd32424"; } if (details.DateTime.Day == DateTime.Today.Day && details.DateTime.Year == DateTime.Today.Year && details.DateTime.Month == DateTime.Today.Month) { temp.AgendaStatus = "Today"; temp.AgendaStatusColor = "0xff38ad0d"; list1.Add(temp); } else if (details.DateTime > DateTime.Today) { temp.AgendaStatus = "Upcoming"; temp.AgendaStatusColor = "0xfff47d08"; list2.Add(temp); } else { temp.AgendaStatus = "Hosted"; temp.AgendaStatusColor = "0xffb7b7b7"; list3.Add(temp); } } li.Data = list1.Concat(list2).Concat(list3).ToList(); return(li); } catch (Exception e) { li.Status = false; li.Message = e.InnerException.ToString(); return(li); } }