Ich versuche gerade ein Maximum aus meinem Code zu gewinnen.
Leider schaffe ich es nicht die Liste die ich aus der Datenbank hole (EndDateCallsReceived)
zu übergeben.
Es wäre super, wenn sich das jemand ansehen könnte.
Leider schaffe ich es nicht die Liste die ich aus der Datenbank hole (EndDateCallsReceived)
zu übergeben.
Es wäre super, wenn sich das jemand ansehen könnte.
C#:
public void InsertPilot()
{
var pilotgroup = (from l in db.lg7
join c in db.catalog on l.NUMBER.ToString() equals c.ObjId
where c.IdObj == "10"
&& (l.ENDDATE > time1 && l.ENDDATE <= time2)
orderby l.EN_ENDDATE
select l)
.GroupBy(l => l.NUMBER)
.Select(group => new
{
pilotId = group.Key,
NUMBER = group.FirstOrDefault().NUMBER,
Date = currentDate.ToString("yydMM", System.Globalization.CultureInfo.CreateSpecificCulture("en-US")),
// ...
EndDateCallsReceived = group.Where(lg => STATE == 0
//…
).Select(lg => lg.ENDDATE).ToList()
})
;
foreach (var p in pilotgroup)
{
Pilot pilot = new Pilot
{
pilot_number = p.EN_PILOTNUMBER.ToString(),
date = p.Date,
calls_received = p.CallsReceived,
//First Error because it don´t except the List
maximum_number_of_simultaneous_calls = rc.MaximumNumberOfSimultaneousCalls(p.CallsReceived, p.EndDateCallsReceived, p.StartDateCalls),
//…
};
}
}
}
public int MaximumNumberOfSimultaneousCalls(int callsRecieved, List<int> endDate, List<int> startDate)
{
if(callsRecieved == 0)
{ return 0;}
else if (callsRecieved == 1)
{ return 1; }
else
{
var maxCallsCount = 0;
foreach (var second in Enumerable.Range(startDate.FirstOrDefault(),
endDate.FindLast() - startDate.FirstOrDefault() + 1))
{
var callsCount = 0;
for (var i = 0; i < startDate.Length; ++i)
{
if ( startDate[i]<= second && second <= endDate[i])
{
++callsCount;
}
}
if (callsCount > maxCallsCount)
{
maxCallsCount = callsCount;
}
}
return maxCallsCount;
}
return 0;
}