Пример #1
0
        private string GenerateMultipleInsert(IList <Participant> participants)
        {
            StringBuilder  squars = new StringBuilder(10);
            EntityResolver rem    = new EntityResolver();
            StringBuilder  sb     = new StringBuilder("INSERT INTO `hlwtest` ", 500);

            sb.Append("(`active`,`year`,`call`,`uniq_timestamp`,`dxcc`,`continent`,`category`,`qso`,`points`,`mults`,`score`,`operator`,`square`) VALUES ");
            foreach (Participant p in participants)
            {
                IEnumerable <QSO> qsos = from q in RawData.log where Helper.getBareCallsign(q.MyCall) == Helper.getBareCallsign(p.callsign) && IsValidDate(q) select q;
                foreach (var item in qsos.Where(xp => xp.MyCall.StartsWith("4X") || xp.MyCall.StartsWith("4Z")).Select(t => t.STX).Distinct())
                {
                    squars.AppendFormat("{0},", item);
                }
                sb.Append("(");
                sb.Append("'"); sb.Append(0); sb.Append("',");
                sb.Append("'"); sb.Append(DateTime.Now.Year); sb.Append("',");
                sb.Append("'"); sb.Append(p.callsign.Replace("'", "\"")); sb.Append("',");
                sb.Append("'"); sb.Append("HolyLogger:" + DateTime.Now.Ticks); sb.Append("',");
                sb.Append("'"); sb.Append(p.country.Replace("'", "\"")); sb.Append("',");
                sb.Append("'"); sb.Append(rem.GetContinent(p.callsign)); sb.Append("',");
                sb.Append("'"); sb.Append(getCategory(p)); sb.Append("',");
                sb.Append("'"); sb.Append(p.qsos); sb.Append("',");
                sb.Append("'"); sb.Append(p.points); sb.Append("',");
                sb.Append("'"); sb.Append(p.mults); sb.Append("',");
                sb.Append("'"); sb.Append(p.score); sb.Append("',");
                sb.Append("'"); sb.Append(p.name.Replace("'", "\"")); sb.Append("',");
                sb.Append("'"); sb.Append(squars.ToString().TrimEnd(',')); sb.Append("'),");
                squars.Clear();
            }
            string result = sb.ToString().TrimEnd(',');

            result += " ON DUPLICATE KEY UPDATE `call`=`call`";
            return(result);
        }