Any advice on how to make this code; cleaner, more effective, just overall better!
Program setup object that is coming from the database EF. It then maps the object to a view model and converts datetime to string and different datetime components.
//EF Data List<MeetingEvent> Meeting = new List<MeetingEvent>(); Meeting.Add(new MeetingEvent() { MeetingId = 1, MeetingName= "A1",StartDateTime= new DateTime(2020, 1, 01),EndDateTime = new DateTime(2020, 1, 05) }); Meeting.Add(new MeetingEvent() { MeetingId = 2, MeetingName = "A2", StartDateTime = new DateTime(2020, 2, 01), EndDateTime = new DateTime(2020, 2, 05) }); Meeting.Add(new MeetingEvent() { MeetingId = 3, MeetingName = "A3", StartDateTime = new DateTime(2020, 3, 01), EndDateTime = new DateTime(2020, 3, 05) }); Meeting.Add(new MeetingEvent() { MeetingId = 4, MeetingName = "A4", StartDateTime = new DateTime(2020, 4, 01), EndDateTime = new DateTime(2020, 4, 05) }); Meeting.Add(new MeetingEvent() { MeetingId = 5, MeetingName = "A5", StartDateTime = new DateTime(2020, 5, 01), EndDateTime = new DateTime(2020, 5, 05) }); //Logic var listOfEvents = Meeting.Select(x => new MeetingEventViewModel { MeetingId = x.MeetingId, MeetingName = x.MeetingName, StartDateTime = x.StartDateTime, EndDateTime = x.EndDateTime, StartDateDayName = x.StartDateTime.DayOfWeek.ToString(), StartDateMonth = x.StartDateTime.Month.ToString(), StartDateDay = x.StartDateTime.Day.ToString(), StartDateYear = x.StartDateTime.Year.ToString(), EndDateDayName = x.EndDateTime.DayOfWeek.ToString(), EndDateMonth = x.EndDateTime.Month.ToString(), EndDateDay = x.EndDateTime.Day.ToString(), EndDateYear = x.EndDateTime.Year.ToString(), }).ToList().OrderBy(o => o.StartDateTime); foreach (MeetingEventViewModel m in listOfEvents) { Console.WriteLine(m.MeetingId); } class MeetingEvent { public int MeetingId { get; set; } public string MeetingName { get; set; } public DateTime StartDateTime{ get; set; } public DateTime EndDateTime { get; set; } } class MeetingEventViewModel { public int MeetingId { get; set; } public string MeetingName { get; set; } public DateTime StartDateTime { get; set; } public DateTime EndDateTime { get; set; } public string StartDateDayName { get; set; } public string StartDateDay { get; set; } public string StartDateYear { get; set; } public string StartDateMonth { get; set; } public string EndDateDayName { get; set; } public string EndDateDay { get; set; } public string EndDateYear { get; set; } public string EndDateMonth { get; set; }
}