I have this C# function:
private void BuildHistoryWeek_Students(CLMExplorerHistory record, ref MSAHistoryItem historyItem)
{
try
{
bool bSampleConversationVideo = false;
if (record.StudentItem1Description == _trans.IC_Video ||
record.StudentItem1Description == _trans.RV_Video)
{
bSampleConversationVideo = true;
}
// AYFM - Class 1
if (historyItem.Classes >= 1)
{
historyItem.StudentItems1.Add(
new MSAHistoryItemStudent
{
Name = record.BibleReadingClass1Name,
Study = record.BibleReadingStudy,
Type = _transMSA.BibleReading
});
if (record.StudentItem1Description != _trans.Video)
{
historyItem.StudentItems1.Add(
new MSAHistoryItemStudent
{
Name = record.StudentItem1Class1StudentName,
Assistant = record.StudentItem1Class1AssistantName,
Study = record.StudentItem1Study,
Type = record.StudentItem1Description,
SampleConversationVideo = bSampleConversationVideo
});
}
if (record.StudentItem2Description != string.Empty)
{
historyItem.StudentItems1.Add(
new MSAHistoryItemStudent
{
Name = record.StudentItem2Class1StudentName,
Assistant = record.StudentItem2Class1AssistantName,
Study = record.StudentItem2Study,
Type = record.StudentItem2Description
});
}
if (record.StudentItem3Description != string.Empty)
{
historyItem.StudentItems1.Add(
new MSAHistoryItemStudent
{
Name = record.StudentItem3Class1StudentName,
Assistant = record.StudentItem3Class1AssistantName,
Study = record.StudentItem3Study,
Type = record.StudentItem3Description
});
}
if (record.StudentItem4Description != string.Empty)
{
historyItem.StudentItems1.Add(
new MSAHistoryItemStudent
{
Name = record.StudentItem4Class1StudentName,
Assistant = record.StudentItem4Class1AssistantName,
Study = record.StudentItem4Study,
Type = record.StudentItem4Description
});
}
}
// AYFM - Class 2
if (historyItem.Classes >= 2)
{
historyItem.StudentItems2.Add(
new MSAHistoryItemStudent
{
Name = record.BibleReadingClass2Name,
Study = record.BibleReadingStudy,
Type = _transMSA.BibleReading
});
if (record.StudentItem1Description != _trans.Video)
{
historyItem.StudentItems2.Add(
new MSAHistoryItemStudent
{
Name = record.StudentItem1Class2StudentName,
Assistant = record.StudentItem1Class2AssistantName,
Study = record.StudentItem1Study,
Type = record.StudentItem1Description,
SampleConversationVideo = bSampleConversationVideo
});
}
if (record.StudentItem2Description != string.Empty)
{
historyItem.StudentItems2.Add(
new MSAHistoryItemStudent
{
Name = record.StudentItem2Class2StudentName,
Assistant = record.StudentItem2Class2AssistantName,
Study = record.StudentItem2Study,
Type = record.StudentItem2Description
});
}
if (record.StudentItem3Description != string.Empty)
{
historyItem.StudentItems2.Add(
new MSAHistoryItemStudent
{
Name = record.StudentItem3Class2StudentName,
Assistant = record.StudentItem3Class2AssistantName,
Study = record.StudentItem3Study,
Type = record.StudentItem3Description
});
}
if (record.StudentItem4Description != string.Empty)
{
historyItem.StudentItems2.Add(
new MSAHistoryItemStudent
{
Name = record.StudentItem4Class2StudentName,
Assistant = record.StudentItem4Class2AssistantName,
Study = record.StudentItem4Study,
Type = record.StudentItem4Description
});
}
}
// AYFM - Class 3
if (historyItem.Classes == 3)
{
historyItem.StudentItems3.Add(
new MSAHistoryItemStudent
{
Name = record.BibleReadingClass3Name,
Study = record.BibleReadingStudy,
Type = _transMSA.BibleReading
});
if (record.StudentItem1Description != _trans.Video)
{
historyItem.StudentItems3.Add(
new MSAHistoryItemStudent
{
Name = record.StudentItem1Class3StudentName,
Assistant = record.StudentItem1Class3AssistantName,
Study = record.StudentItem1Study,
Type = record.StudentItem1Description,
SampleConversationVideo = bSampleConversationVideo
});
}
if (record.StudentItem2Description != string.Empty)
{
historyItem.StudentItems3.Add(
new MSAHistoryItemStudent
{
Name = record.StudentItem2Class3StudentName,
Assistant = record.StudentItem2Class3AssistantName,
Study = record.StudentItem2Study,
Type = record.StudentItem2Description
});
}
if (record.StudentItem3Description != string.Empty)
{
historyItem.StudentItems3.Add(
new MSAHistoryItemStudent
{
Name = record.StudentItem3Class3StudentName,
Assistant = record.StudentItem3Class3AssistantName,
Study = record.StudentItem3Study,
Type = record.StudentItem3Description
});
}
if (record.StudentItem4Description != string.Empty)
{
historyItem.StudentItems3.Add(
new MSAHistoryItemStudent
{
Name = record.StudentItem4Class3StudentName,
Assistant = record.StudentItem4Class3AssistantName,
Study = record.StudentItem4Study,
Type = record.StudentItem4Description
});
}
}
}
catch (System.Exception ex)
{
SimpleLog.Log(ex);
}
}
It is reptative because it is doing the same thing for three "classes". But, each class is in a different variable:
historyItem.StudentItems1
historyItem.StudentItems2
historyItem.StudentItems3
And for each class, the set of record variables changes:
BibleReadingClass1Name
StudentItem1Class1StudentName
StudentItem1Class1AssistantName
StudentItem2Class1StudentName
StudentItem2Class1AssistantName
StudentItem3Class1StudentName
StudentItem3Class1AssistantName
StudentItem4Class1StudentName
StudentItem4Class1AssistantName
The other two classes name Class2
and Class3
respectively. I know I can create a method which is passed all of the properties as paramaters and call the method 3 times. But can I make changes within the method itself (like a lambda) to do this?