private Elev UpdateDataSource() { var elev = (Elev)Session["currentElev"]; var elevId = elev.Id; ICollection <ElevTilstede> elevTilstedes = new List <ElevTilstede>(); foreach (var item in ElevTilstedeListView.Items) { if (item.ItemType == ListViewItemType.DataItem) { var idButton = (Button)item.FindControl("IdButton"); var mandagStartTextBox = (TextBox)item.FindControl("MandagStartTextBox"); var mandagSluttTextBox = (TextBox)item.FindControl("MandagSluttTextBox"); var tirsdagStartTextBox = (TextBox)item.FindControl("TirsdagStartTextBox"); var tirsdagSluttTextBox = (TextBox)item.FindControl("TirsdagSluttTextBox"); var onsdagStartTextBox = (TextBox)item.FindControl("OnsdagStartTextBox"); var onsdagSluttTextBox = (TextBox)item.FindControl("OnsdagSluttTextBox"); var torsdagStartTextBox = (TextBox)item.FindControl("TorsdagStartTextBox"); var torsdagSluttTextBox = (TextBox)item.FindControl("TorsdagSluttTextBox"); var fredagStartTextBox = (TextBox)item.FindControl("FredagStartTextBox"); var fredagSluttTextBox = (TextBox)item.FindControl("FredagSluttTextBox"); var ukeTypeDropDown = (DropDownList)item.FindControl("UkeTypeDropDown"); var elevTilstedeId = Convert.ToInt32(idButton.Text); var elevTilstede = new ElevTilstede { Id = elevTilstedeId, MandagStart = string.IsNullOrWhiteSpace(mandagStartTextBox.Text) ? (TimeSpan?)null : TimeSpan.Parse(mandagStartTextBox.Text), MandagSlutt = string.IsNullOrWhiteSpace(mandagSluttTextBox.Text) ? (TimeSpan?)null : TimeSpan.Parse(mandagSluttTextBox.Text), TirsdagStart = string.IsNullOrWhiteSpace(tirsdagStartTextBox.Text) ? (TimeSpan?)null : TimeSpan.Parse(tirsdagStartTextBox.Text), TirsdagSlutt = string.IsNullOrWhiteSpace(tirsdagSluttTextBox.Text) ? (TimeSpan?)null : TimeSpan.Parse(tirsdagSluttTextBox.Text), OnsdagStart = string.IsNullOrWhiteSpace(onsdagStartTextBox.Text) ? (TimeSpan?)null : TimeSpan.Parse(onsdagStartTextBox.Text), OnsdagSlutt = string.IsNullOrWhiteSpace(onsdagSluttTextBox.Text) ? (TimeSpan?)null : TimeSpan.Parse(onsdagSluttTextBox.Text), TorsdagStart = string.IsNullOrWhiteSpace(torsdagStartTextBox.Text) ? (TimeSpan?)null : TimeSpan.Parse(torsdagStartTextBox.Text), TorsdagSlutt = string.IsNullOrWhiteSpace(torsdagSluttTextBox.Text) ? (TimeSpan?)null : TimeSpan.Parse(torsdagSluttTextBox.Text), FredagStart = string.IsNullOrWhiteSpace(fredagStartTextBox.Text) ? (TimeSpan?)null : TimeSpan.Parse(fredagStartTextBox.Text), FredagSlutt = string.IsNullOrWhiteSpace(fredagSluttTextBox.Text) ? (TimeSpan?)null : TimeSpan.Parse(fredagSluttTextBox.Text), Elev = elev, UkeType = UkeType.GetById(Convert.ToInt32(ukeTypeDropDown.SelectedValue)) }; elevTilstedes.Add(elevTilstede); } } elev.Update( NavnTextBox.Text, Convert.ToDecimal(SfoProsentTextBox.Text), Convert.ToInt32(KlasseDropDown.SelectedValue), Convert.ToInt32(SfoDropDown.SelectedValue), Convert.ToInt32(TrinnDropDown.SelectedValue), Convert.ToInt32(HovedPedagogDropDown.SelectedValue), Convert.ToInt32(BemanningsNormSkoleDropDown.SelectedValue), Convert.ToInt32(BemanningsNormSfoDropDown.SelectedValue), TlfnrTextBox.Text, elevTilstedes ); return(elev); }
private List <object> PopulateEleverToViewList(List <object> sfoReportViewList, IEnumerable <Elev> elever, TimeSpan time, TimeSpan endTime, TimeSpan interval, string description, bool startTid) { IEnumerable <Elev> eleverMandag; IEnumerable <Elev> eleverTirsdag; IEnumerable <Elev> eleverOnsdag; IEnumerable <Elev> eleverTorsdag; IEnumerable <Elev> eleverFredag; var numberOfAddedListViewRows = 0; while (time < endTime) { // INFO: used to make propertyname typesafe/statically typed var elevTilstede = new ElevTilstede(); if (startTid) { eleverMandag = elever.Where(elev => ElevTilstedePåTid(elev, time, typeof(ElevTilstede).GetProperty(Utilities.GetPropertyName(() => elevTilstede.MandagStart)))); eleverTirsdag = elever.Where(elev => ElevTilstedePåTid(elev, time, typeof(ElevTilstede).GetProperty(Utilities.GetPropertyName(() => elevTilstede.TirsdagStart)))); eleverOnsdag = elever.Where(elev => ElevTilstedePåTid(elev, time, typeof(ElevTilstede).GetProperty(Utilities.GetPropertyName(() => elevTilstede.OnsdagStart)))); eleverTorsdag = elever.Where(elev => ElevTilstedePåTid(elev, time, typeof(ElevTilstede).GetProperty(Utilities.GetPropertyName(() => elevTilstede.TorsdagStart)))); eleverFredag = elever.Where(elev => ElevTilstedePåTid(elev, time, typeof(ElevTilstede).GetProperty(Utilities.GetPropertyName(() => elevTilstede.FredagStart)))); } else { eleverMandag = elever.Where(elev => ElevTilstedePåTid(elev, time, typeof(ElevTilstede).GetProperty(Utilities.GetPropertyName(() => elevTilstede.MandagSlutt)))); eleverTirsdag = elever.Where(elev => ElevTilstedePåTid(elev, time, typeof(ElevTilstede).GetProperty(Utilities.GetPropertyName(() => elevTilstede.TirsdagSlutt)))); eleverOnsdag = elever.Where(elev => ElevTilstedePåTid(elev, time, typeof(ElevTilstede).GetProperty(Utilities.GetPropertyName(() => elevTilstede.OnsdagSlutt)))); eleverTorsdag = elever.Where(elev => ElevTilstedePåTid(elev, time, typeof(ElevTilstede).GetProperty(Utilities.GetPropertyName(() => elevTilstede.TorsdagSlutt)))); eleverFredag = elever.Where(elev => ElevTilstedePåTid(elev, time, typeof(ElevTilstede).GetProperty(Utilities.GetPropertyName(() => elevTilstede.FredagSlutt)))); } if (eleverMandag.Count() > 0 || eleverTirsdag.Count() > 0 || eleverOnsdag.Count() > 0 || eleverTorsdag.Count() > 0 || eleverFredag.Count() > 0) { var formattedTime = time.ToString(@"hh\:mm"); sfoReportViewList.Add(new { Description = description, MandagTid = FormatTime(eleverMandag, formattedTime), MandagElever = FormatElever(eleverMandag), TirsdagTid = FormatTime(eleverTirsdag, formattedTime), TirsdagElever = FormatElever(eleverTirsdag), OnsdagTid = FormatTime(eleverOnsdag, formattedTime), OnsdagElever = FormatElever(eleverOnsdag), TorsdagTid = FormatTime(eleverTorsdag, formattedTime), TorsdagElever = FormatElever(eleverTorsdag), FredagTid = FormatTime(eleverFredag, formattedTime), FredagElever = FormatElever(eleverFredag), CSSClass = numberOfAddedListViewRows == 0 ? "row-standard line-solid" : "row-standard" }); numberOfAddedListViewRows++; // INFO: to make sure only distinct descriptions are added to list description = string.Empty; } time = time.Add(interval); } return(sfoReportViewList); }