Files
win8phoneApp/CampusAppWP8/CampusAppWPortalLib8/Model/Lecture/LectureList.cs
2013-10-02 12:48:35 +02:00

77 lines
2.3 KiB
C#

//-----------------------------------------------------------------------
// <copyright file="LectureList.cs" company="BTU/IIT">
// Company copyright tag.
// </copyright>
// <author>stubbfel</author>
// <sience>10.06.2013</sience>
//----------------------------------------------------------------------
namespace CampusAppWPortalLib8.Model.Lecture
{
using System.Collections.ObjectModel;
using System.Linq;
using System.Xml.Serialization;
/// <summary>
/// Model for a List of LectureActivity
/// </summary>
/// <typeparam name="T">T : LectureActivity</typeparam>
[XmlRoot("lsf_auszug")]
public class LectureList<T> where T : LectureActivity
{
#region Constructor
/// <summary>
/// Initializes a new instance of the <see cref="LectureList {T}" /> class.
/// </summary>
public LectureList()
{
}
#endregion
#region Proberty
/// <summary>
/// Gets or sets List of the activities
/// </summary>
[XmlArray("veranstaltungsliste")]
[XmlArrayItem("veranstaltung")]
public ObservableCollection<T> Activities { get; set; }
#endregion
#region Methods
/// <summary>
/// Method return a certain activity
/// </summary>
/// <param name="id"> id of the activity</param>
/// <returns> the activity (FirstOrDefault)</returns>
public T GetActivity(int id)
{
T activity = this.Activities.Where(p => p.Id == id).FirstOrDefault();
return activity;
}
/// <summary>Filter by course string.</summary>
/// <remarks>Stubbfel, 10.09.2013.</remarks>
/// <param name="filter">Specifies the filter.</param>
public void FilterByCourseTitle(string filter)
{
ObservableCollection<T> filteredCollection = new ObservableCollection<T>();
filter = filter.Trim().ToLower();
foreach (T activity in this.Activities)
{
activity.CreateCourseString();
if (activity.Title.ToLower().Contains(filter))
{
filteredCollection.Add(activity);
}
}
this.Activities = filteredCollection;
}
#endregion
}
}