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; }
}