public List <LineDTO> GetLinesFromEvent(LineDTO template, List <Market> markets) { var localLines = new List <LineDTO>(); foreach (var market in markets) { var copy = template.Clone(); var localGameType = string.Empty; // Извлекаем тип игры: угловые, (желтые, красные карты), картер, и т.д. if (string.IsNullOrEmpty(localGameType)) { localGameType = ConverterHelper.GetGameType(market.market_name); } if (!ConverterHelper.GetPeriod(market.result_type_name, out var period)) { continue; } copy.CoeffType = $"{period} {localGameType}"; if (!CheckExceptions(copy, market)) { continue; } foreach (var outcome in market.outcomes) { if (!outcome.outcome_visible) { continue; } var line = copy.Clone(); // Номер команды if (market.market_name.ContainsIgnoreCase("match winner", "1 X 2", "Double chance", "Odd / Even")) { line.CoeffKind = outcome.outcome_short_name; } else if (market.market_name.ContainsIgnoreCase("Draw No Bet")) { line.CoeffKind = $"W{outcome.outcome_short_name}"; } else if (market.market_name.ContainsIgnoreCase("Handicap")) { line.CoeffKind = $"HANDICAP{outcome.participant_number}"; } else if (market.market_name.ContainsIgnoreCase("Over/Under")) { line.CoeffKind = $"TOTAL{outcome.outcome_name.Split(" ")[0].ToUpper()}"; } else if (market.market_name.ContainsIgnoreCase("Team total")) { line.CoeffKind = $"ITOTAL{outcome.outcome_name.Split(" ")[0].ToUpper()}{outcome.participant_number}"; } else if (market.market_name.ContainsIgnoreCase("Odd / Even")) { line.CoeffKind = $"ITOTAL{outcome.outcome_name.Split(" ")[0].ToUpper()}{outcome.participant_number}"; } else { continue; } //Параметр if (decimal.TryParse(outcome.outcome_param, NumberStyles.Any, CultureInfo.InvariantCulture, out var param)) { line.CoeffParam = param; } line.CoeffValue = outcome.outcome_coef; line.LineData = new StoreBet { OutcomeId = outcome.outcome_id.ToLong(), EventId = market.event_id.ToLong(), MarketId = market.market_id.ToLong() }; line.UpdateName(); localLines.Add(line); } } return(localLines); }