У единицы может быть много связанных с ней цен (разные цены относятся к разным годам).Лучший способ скопировать из списка в список?
Unit "A" имеют цены в 3-х сезонов (3 цены Diferent) и единицы "B" & "C" также есть 3 сезона и СТОМН. Теперь мне нужно скопировать startDate и endDate в блок «A» все 3 сезона в блоке «B» & «C», но сохранить цены на единицу «B» & «C» только изменить startDate и endDate. Что использовать и как IList или IEnumerable что-то еще? Я думаю, что слишком много раз If и foreach ...
Я пробую это ... Но должен ли быть лучший способ любой sugestion?
//select A Unit (Master unit)
_masterUnit = Core.Model.Unit.GetById(Convert.ToInt32(ddlAllUnits.SelectedValue));
IList<Core.Model.Unit> allUnits = Core.Model.Unit.GetUnits();
IList<Price> _masterPrices = Price.GetPricesOfUnit(_masterUnit.UnitId);
int mp;
int xp;
foreach (Core.Model.Unit unit in allUnits)
{
if ((unit.UnitId != _masterUnit.UnitId) && (_masterPrices.Count == unit.AllUnitPrices.Count))
{
mp = 1;
xp = 1;
IList<Price> _unitPrices = Price.GetPricesOfUnit(unit.UnitId);
foreach (Price _pricex in _masterPrices)
{
xp = 1;
foreach (Price price in _unitPrices)
{
if (mp == xp)
{
Price newPrice = null;
newPrice = Price.GetById(price.PriceId);
newPrice.UnitId = price.UnitId;
newPrice.UnitPrice = price.UnitPrice;
newPrice.StartDate = _pricex.StartDate;
newPrice.EndDate = _pricex.EndDate;
newPrice.ExtraBed = price.ExtraBed;
newPrice.Save();
}xp++;
}
mp++;
}
}
}
Я думаю, что лучший способ - использовать команды SQL вместо кода C# –
Все это выглядит довольно подозрительно. Вы действительно должны отделять свои проблемы. Насколько я могу судить о том, что (1) идентифицировать записи цены единицы товара (2), идентифицировать целевые позиции цены за единицу (3), убедитесь, что количество записей соответствует совпадению (4), упорядочивая их по дате (5), итерации их параллельно (source + target вместе, а не параллельно, как в параллельных вычислениях) (6) изменять диапазоны заданных дат в соответствии с источником. Вы должны определенно написать отдельные методы для различных аспектов вашего обновления. – grek40