Beispiel #1
0
        public ICollection <Feeder> ListerFeeder(string NomProduit)
        {
            ICollection <Feeder> Fedders = new List <Feeder>();

            try
            {
                //textBox5.Text = DateTime.Now.Month.ToString();
                SqlConnection conn = new SqlConnection(global::feeder.Properties.Settings.Default.connn);
                conn.Open();
                SqlDataReader reader;
                SqlCommand    cmd = new SqlCommand(String.Format("SELECT * from dbo.prod  WHERE nom ='{0}';", NomProduit), conn);

                reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    for (int i = 1; i < 7; i++)
                    {
                        Feeder feeder = new Feeder();

                        feeder.Quantite = Convert.ToInt32(reader.GetValue(i).ToString());
                        feeder.FedderID = "TF" + i;
                        Fedders.Add(feeder);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            return(Fedders);
        }
 public void UpdateFeederInformation(Feeder feeder)
 {
     this._feeder            = feeder;
     feederName.Text         = feeder.Name;
     feederTag.Text          = feeder.Tag;
     feederCapacityBar.Value = feeder.AmountOfFeed;
 }
        public ICollection <Feeder> ConfigFeeder(string UF)
        {
            ICollection <Feeder> Feeders = new List <Feeder>();

            try
            {
                //textBox5.Text = DateTime.Now.Month.ToString();
                SqlConnection conn = new SqlConnection(global::feeder.Properties.Settings.Default.connn);

                conn.Open();

                SqlDataReader reader;
                SqlCommand    cmd = new SqlCommand(String.Format(" SELECT [TF1],[TF2],[TF3],[TF4],[TF5],[TF6] FROM [dbo].[reel] WHERE UF='" + UF + "' ;"), conn);


                reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    for (int i = 0; i < 6; i++)
                    {
                        Feeder f = new Feeder {
                            Coordonnee = "TF" + (i + 1), Quantite = Convert.ToInt32(reader.GetValue(i))
                        };
                        Feeders.Add(f);
                    }
                }
                conn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

            return(Feeders);
        }
        public async Task <IActionResult> PutFeeder(Guid id, Feeder feeder)
        {
            if (id != feeder.Id)
            {
                return(BadRequest());
            }

            _context.Entry(feeder).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!FeederExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public void TestMemoryQueueOverFlow()
        {
            BlockingCollection <ParentLink>     _newLinks        = new BlockingCollection <ParentLink>(new ConcurrentQueue <ParentLink>(), 1000);
            BlockingCollection <ParentLink>     _downloadQueue   = new BlockingCollection <ParentLink>(new ConcurrentQueue <ParentLink>(), 1000);
            BlockingCollection <DownloadResult> _downloadResults = new BlockingCollection <DownloadResult>(new ConcurrentQueue <DownloadResult>(), 10);
            var mockProgrss = new MockProgess();
            var feeder      = new Feeder(_newLinks, _downloadQueue, 1, 1, mockProgrss);

            feeder.Start();
            for (int i = 0; i < 1001; i++) //Crawler.MaxCollectionSize + 1
            {
                _newLinks.Add(new ParentLink($"http://{i}.co.za", null));
            }

            //download queue should be at max size of 1000
            Thread.Sleep(1000);
            Assert.AreEqual(1000, _downloadQueue.Count);

            //after dequeuing the item, the database item should be readded taking the total back to 1000
            _downloadQueue.Take();
            Thread.Sleep(2000);
            Assert.AreEqual(1000, _downloadQueue.Count);

            //queue should now have decreased by 1.
            _downloadQueue.Take();
            Thread.Sleep(1000);
            Assert.AreEqual(999, _downloadQueue.Count);
            feeder.Stop();
            Thread.Sleep(1000);
        }
Beispiel #6
0
        public ICollection <Feeder> ListerTotaleFeederUsine()
        {
            ICollection <Feeder> Fedders = new List <Feeder>();

            try
            {
                ICollection <Feeder> F_Energie = new List <Feeder>();
                //textBox5.Text = DateTime.Now.Month.ToString();
                SqlConnection conn = new SqlConnection(global::feeder.Properties.Settings.Default.connn);
                conn.Open();
                SqlDataReader reader;
                SqlCommand    cmd = new SqlCommand(String.Format("SELECT sum(TF1) as TF1,sum(TF2) as TF2,sum(TF3) as TF3,sum(TF4) as TF4,sum(TF5) as TF5,sum(TF6) as TF6 FROM [dbo].[prod]  WHERE UF='Usine'"), conn);

                reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    for (int i = 0; i < 6; i++)
                    {
                        Feeder feeder = new Feeder();

                        feeder.Quantite = Convert.ToInt32(reader.GetValue(i).ToString());
                        feeder.FedderID = "TF" + (i + 1);
                        Fedders.Add(feeder);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            return(Fedders);
        }
Beispiel #7
0
        public static bool Load()
        {
            if (!File.Exists(PathDefine.sPathConfigure + "Feeder.json"))
            {
                FeederDefine.Instance.Init();
                return(true);
            }
            SerializableHelper <FeederDefine> helper = new SerializableHelper <FeederDefine>();
            var temp = helper.DeJsonSerialize(PathDefine.sPathConfigure + "Feeder.json");

            if (temp != null)
            {
                FeederDefine.Instance = temp;
            }
            else
            {
                return(false);
            }

            for (Module module = Module.Front; module <= Module.After; ++module)
            {
                for (Feeder feeder = Feeder.Left; feeder <= Feeder.Right; ++feeder)
                {
                    if (FeederDefine.Instance.InstallFeederName[module][feeder] != string.Empty)
                    {
                        FeederDefine.Instance[module, feeder] = FeederDefine.Instance.GetFeederConfig(module,
                                                                                                      FeederDefine.Instance.InstallFeederName[module][feeder]);
                    }
                }
            }
            return(true);
        }
    public void OpenFeederMenu(Feeder feeder)
    {
        thisGardenManager.SetUIOpen(true);
        FeederModal modal = Instantiate(feederModal, contentPanel);

        modal.InitFeederModal(feeder, thisGardenManager);
    }
Beispiel #9
0
        /// <summary>
        /// 对外接口
        /// </summary>
        /// <param name="module"></param>
        /// <param name="feeder"></param>
        /// <returns></returns>
        public FeederConfig this[Module module, Feeder feeder]
        {
            get
            {
                if (this.InstallFeeder[module].ContainsKey(feeder))
                {
                    return(InstallFeeder[module][feeder]);
                }
                else
                {
                    return(null);
                }
            }

            set
            {
                if (!InstallFeeder.ContainsKey(module))
                {
                    InstallFeeder.Add(module, new Dictionary <Feeder, FeederConfig>());
                }

                if (!InstallFeeder[module].ContainsKey(feeder))
                {
                    InstallFeeder[module].Add(feeder, value);
                }
                else
                {
                    InstallFeeder[module][feeder] = value;
                }
            }
        }
Beispiel #10
0
        public void TestGetRule()
        {
            ServerManager.StartServers();

            var response = Crawler.Request("http://www.ruijihg.com/2018/05/20/ruiji-solr-net/");

            if (response.StatusCode != System.Net.HttpStatusCode.OK)
            {
                return;
            }

            var content = response.Data.ToString();

            var block = Feeder.GetExtractBlock("http://www.ruijihg.com/2018/05/20/ruiji-solr-net/").First();

            var r = Extractor.Extract(new ExtractRequest
            {
                Blocks = new List <ExtractFeatureBlock> {
                    block
                },
                Content = content
            });

            Assert.True(r[0].Content.ToString().Length > 0);
            Assert.True(r[0].Tiles.Count > 0);
        }
 /// <summary>
 ///   Start a single feeder inspection
 /// </summary>
 /// <param name="feederName">name of feeder to inspection</param>
 public void Start(string feederName)
 {
     Fdr = new Feeder();
     Fdr.InitFeeder(feederName, feederName, feederName);
     _active = true;
     _start  = DateTime.Now;
 }
        static void Main()
        {
            Feeder feeder = new Feeder();

            Console.WriteLine(feeder.Talk());
            Console.ReadLine();
        }
Beispiel #13
0
        protected override void SetEditObject(object obj)
        {
            if (obj == null)
            {
                this.txtFeederCodeEdit.Text = "";
                this.ddlFeederSpecCodeEdit.SelectedIndex = -1;
                this.ddlFeederTypeEdit.SelectedIndex     = -1;
                this.txtMaxCountEdit.Text   = "0";
                this.txtAlertCountEdit.Text = "0";
                //Add by Terry 2010-11-03
                this.TxtMaxMDayEdit.Text   = "0";
                this.TxtAlterMDAYEdit.Text = "0";

                return;
            }

            Feeder feeder = (Feeder)obj;

            this.txtFeederCodeEdit.Text = feeder.FeederCode;
            if (this.ddlFeederSpecCodeEdit.Items.FindByValue(feeder.FeederSpecCode) != null)
            {
                this.ddlFeederSpecCodeEdit.SelectedIndex = this.ddlFeederSpecCodeEdit.Items.IndexOf(this.ddlFeederSpecCodeEdit.Items.FindByValue(feeder.FeederSpecCode));
            }
            if (this.ddlFeederTypeEdit.Items.FindByValue(feeder.FeederType) != null)
            {
                this.ddlFeederTypeEdit.SelectedIndex = this.ddlFeederTypeEdit.Items.IndexOf(this.ddlFeederTypeEdit.Items.FindByValue(feeder.FeederType));
            }
            this.txtMaxCountEdit.Text   = feeder.MaxCount.ToString();
            this.txtAlertCountEdit.Text = feeder.AlertCount.ToString();

            //Add by Terry 2010-11-03
            this.TxtMaxMDayEdit.Text   = feeder.MaxMDay.ToString();
            this.TxtAlterMDAYEdit.Text = feeder.AlterMDay.ToString();
        }
        public async Task <ActionResult <Feeder> > PostFeeder(Feeder feeder)
        {
            _context.Feeders.Add(feeder);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetFeeder", new { id = feeder.Id }, feeder));
        }
Beispiel #15
0
 private void Feed()
 {
     if (FoodBowlEmpty)
     {
         Feeder.ReplenishFood();
     }
 }
Beispiel #16
0
        public void AddFeeder(string Name, string Tag, string Type)
        {
            Feeder feeder  = new Feeder(Name, Tag, Type);
            string message = feederService.AddFeeder(feeder);

            _addFeederView.ShowMessage(message);
        }
Beispiel #17
0
 public bool Equals(Feeder feeder)
 {
     if (_feeder.FeederID == feeder.FeederID)
     {
         return(true);
     }
     return(false);
 }
Beispiel #18
0
        public static void sendWelcomeEmail(this Feeder feeder)
        {
            var messaging = new MessagingService();

            var welcomeEmail = new WelcomeEmail(feeder.email, feeder.name);

            messaging.enqueueMessage(welcomeEmail);
        }
Beispiel #19
0
 public void showFeederCustomizationPanel(Feeder feeder)
 {
     this._feeder    = feeder;
     feederName.Text = feeder.Name;
     tagTextBox.Text = feeder.Tag;
     this.Width      = feedersListPanel.Width + feederCustomizationPanel.Width;
     feederCustomizationPanel.Visible = true;
 }
Beispiel #20
0
        public static void Main(string[] cmdLineArgs)
        {
            Feeder _feed = new Feeder()
            {
                Name                  = "FxPro Demo5",
                Path                  = @"F:\temp\mt4\mt4feeder.feed",
                Server                = "demo5-london.fxpro.com:443",
                Login                 = 8035138,
                Password              = "******",
                ReconnectErrorsLimit  = 1,
                ReconnectTimeout      = 1,
                ReconnectRetryTimeout = 1,
                ReadErrorsLimit       = 1
            };

            "Init".ToConsole();

            // enable if you need only one symbol
            //feed.AdviseSymbol("EURUSD");

            int quotesReceived = 0;

            _feed.Started       += (sender, args) => { "Started".ToConsole(); };
            _feed.ChangeStatus  += (sender, args) => { $"Change Status: {args.Status}".ToConsole(); };
            _feed.Paused        += (sender, args) => { "Paused".ToConsole(); };
            _feed.QuoteReceived += (sender, args) => {
                $"Quote Received: {args.Quote.Symbol} {args.Quote.Bid}/{args.Quote.Ask}".ToConsole();
                ++quotesReceived;

                // receive first N quotes then leave
                if (quotesReceived < 10000)
                {
                    return;
                }

                "Stop".ToConsole();
                _feed.Stop();
            };
            _feed.Stopped += (sender, args) => { "Stopped".ToConsole(); };

            "Start".ToConsole();
            var started = DateTime.Now;

            _feed.Start();

            // wait until N ticks came
            // but not too infinite time
            while (quotesReceived < 10000 && DateTime.Now - started < TimeSpan.FromMinutes(3))
            {
                //"Sleep...".ToConsole();
                Thread.Sleep(TimeSpan.FromSeconds(1));
                //"Sleep done".ToConsole();
            }

            "Stop".ToConsole();
            _feed.Stop();
        }
Beispiel #21
0
    public void UpdateFeederDisplay()
    {
        Feeder f = feeder.GetComponent <Feeder>();

        f.DropRate = gm.scalingManager.ScaleFeederDropRate(f.level);
        feederLevelText.GetComponent <TMPro.TextMeshProUGUI>().SetText("Level " + f.level.ToString());
        feederUpgradeSpeedText.GetComponent <TMPro.TextMeshProUGUI>().SetText(feederSpeedUpgradePrice.ToString() + "$");
        SetTMPText(feederRateText, ((60f / f.dropRate)).ToString("F2") + " food/min");
    }
Beispiel #22
0
 public FeedersListItem(MyDelegate sender, Feeder feeder)
 {
     InitializeComponent();
     myDelegate              = sender;
     this._feeder            = feeder;
     feederName.Text         = feeder.Name;
     feederTag.Text          = feeder.Tag;
     feederCapacityBar.Value = feeder.AmountOfFeed;
 }
        public void Feed()
        {
            if (FoodBowlEmpty)
            {
                Feeder.ReplenishFood();
            }

            // more code to feed the animal
        }
 public void AddPackage()
 {
     CurrentFeeder = new Feeder();
     _isEditing    = false;
     AddFeederCommand.RaiseCanExecuteChanged();
     SaveFeederCommand.RaiseCanExecuteChanged();
     DeleteFeederCommand.RaiseCanExecuteChanged();
     CancelFeederCommand.RaiseCanExecuteChanged();
     SetLocationCommand.RaiseCanExecuteChanged();
 }
Beispiel #25
0
        public void Feeder_ContsructorTest()
        {
            var feeder = new Feeder(new Uri("http://feeds.feedburner.com/TEDTalks_video"));

            Assert.IsNotNull(feeder);

            Uri uri = feeder.Uri;

            Assert.AreEqual <string>("http://feeds.feedburner.com/TEDTalks_video", feeder.Uri.AbsoluteUri);
        }
Beispiel #26
0
        //feeder
        public static void sendPwdForgot(this Feeder feeder)
        {
            var messaging = new MessagingService();
            var resetUrl  = getUrl(Globals.Instance.settings["WebHost"],
                                   Globals.Instance.settings["AdminPwdReset"], feeder.activationToken);

            var forgotPwdEmail = new ForgotPwdEmail(feeder.email, resetUrl, feeder.name);

            messaging.enqueueMessage(forgotPwdEmail);
        }
Beispiel #27
0
        public Etat EtatPrevision()
        {
            Etat e = new Etat();

            e.Feeders = new List <Feeder>();


            try
            {
                //textBox5.Text = DateTime.Now.Month.ToString();
                SqlConnection conn = new SqlConnection(global::feeder.Properties.Settings.Default.connn);
                conn.Open();

                SqlDataReader reader;
                SqlCommand    cmd = new SqlCommand(String.Format(" SELECT [id],[jour],[TF1],[TF2],[TF3],[TF4],[TF5],[TF6],[TB1],[TB2],[TB3],[TB4],[TB5],[TB6],[TB7],[TB8],[TB9],[TB10],[TB11],[TB12],[TB13],[TB14],[TB15],[TB16],[TB17],[TB18],[TB19],[TB20],[TB21],[TB22],[TB23],[TB24],[TB25],[TB26],[TB27],[TB28],[TB29],[TB30],[TB31],[TB32],[TB33] FROM [dbo].[Prevision_etat] WHERE (ID=5) ;"), conn);

                int j = 2;
                int h = 8;
                reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    e.Feeders   = new List <Feeder>();
                    e.Buses     = new List <Buse>();
                    e.EtatID    = Convert.ToInt32(reader.GetValue(0));
                    e.NumEquipe = Convert.ToInt32(reader.GetValue(8));
                    for (int i = 0; i < 6; i++)
                    {
                        Feeder f = new Feeder {
                            FedderID = "TF" + (i + 1), Quantite = Convert.ToInt32(reader.GetValue(j))
                        };
                        e.Feeders.Add(f);
                        j++;// Convert.ToInt32(reader.GetValue(0));
                    }

                    j = 2;


                    for (int i = 0; i < 33; i++)
                    {
                        Buse b = new Buse {
                            BuseID = "TB" + (i + 1), Quantite = Convert.ToInt32(reader.GetValue(h))
                        };
                        e.Buses.Add(b);
                        h++;// Convert.ToInt32(reader.GetValue(0));
                    }
                    h = 8;
                }
                conn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            return(e);
        }
Beispiel #28
0
 public void Consume(Feeder feeder, Consumable consumable, Interaction interaction)
 {
     foreach (Interactable i in subscribers)
     {
         if (i is Consumer)
         {
             ((Consumer)i).OnConsume(feeder.gameObject, consumable, interaction);
         }
     }
     feeder.Feed();
 }
Beispiel #29
0
    public void LoadGame()
    {
        List <CageSaveData> cages = JsonConvert.DeserializeObject <List <CageSaveData> >(PlayerPrefs.GetString("save"));

        DataManager.Money = (PlayerPrefs.GetInt("money", 0));
        for (int i = 0; i < cages.Count; i++)
        {
            Cage tmp = CageFactory.GetNewCage(cages[i].biome, i, true);
            tmp.Name  = cages[i].Name;
            tmp.stage = cages[i].stage;
            GameManager.Ins.cages.Add(tmp);
            GameManager.Ins.ToCage(i);
            foreach (var item in cages[i].items)
            {
                if (item.type == NeedType.Food)
                {
                    Feeder f = Instantiate(feeders[(int)item.food], tmp.transform).GetComponent <Feeder>();
                    f.transform.localPosition = item.localPos;
                    f.capacity = item.capacity;
                    f.Place();
                }
                else
                {
                    SpecialItem s = Instantiate(specials[(int)item.special], tmp.transform).GetComponent <SpecialItem>();
                    s.transform.localPosition = item.localPos;
                    s.Place();
                }
            }
            foreach (var animal in cages[i].animals)
            {
                Animal a = AnimalFactory.NewAnimalOfKind(animal.kind, tmp.transform, true);
                a.data.name           = animal.data.name;
                a.data.adult          = animal.data.adult;
                a.data.age            = animal.data.age;
                a.data.male           = animal.data.male;
                a.data.pregnant       = animal.data.pregnant;
                a.data.pregnancy      = animal.data.pregnancy;
                a.data.sexualActivity = animal.data.sexualActivity;
                a.data.happiness      = animal.data.happiness;
                a.data.foods          = animal.data.foods;
                a.data.specials       = animal.data.specials;
                a.transform.position  = tmp.GetFreeTileInGrid();
                a.status.RecalculateHappiness();
            }

            if (tmp.animals.Count > 0)
            {
                GameManager.Ins.cageIcons.GetChild(i).GetComponent <Image>().sprite = Resources.Load <Sprite>($"Animals/{tmp.animals[0].stats.kind}/CageIcon");
            }
        }
        Technet99m.Clock.deltaActualized += SaveGame;
        GameManager.Ins.ToCage(0);
        StartCoroutine(CalculateTimeChanges());
    }
Beispiel #30
0
 public void UpdateSelectedFeeder(Feeder feeder)
 {
     foreach (FeedersListItem item in feedersListPanel.Controls)
     {
         if (item.Equals(_feeder))
         {
             item.UpdateFeederInformation(feeder);
         }
     }
     _feeder = feeder;
 }
        private void WriteToServer(Feeder feeder)
        {
            if (this.tableName.Length == 0)
                throw new ArgumentException("The name of the destination table hasn't been specified", "DestinationTableName");

            StringBuilder builder = new StringBuilder();
            builder.Append("INSERT INTO `");
            builder.Append(this.tableName.Replace("`", "``"));
            builder.Append("` ");
            if (mappings.Count == 0)
            {
                // the target table has the same number and names of the columns as in the specified input rows
                builder.Append("VALUES (");
                for (int i = 0; i < feeder.FieldCount; i++)
                {
                    if (i != 0)
                        builder.Append(", ");
                    builder.Append("?");
                }
                builder.Append(")");
            }
            else
            {
                DataRowCollection targetColumns = null;
                builder.Append(" (");
                for(int i=0;i<mappings.Count;i++)
                {
                    NuoDbBulkLoaderColumnMapping mapping = mappings[i];
                    if (i != 0)
                        builder.Append(", ");
                    builder.Append("`");
                    if (mapping.DestinationColumn == null)
                    {
                        // we are requested to map to a target column that is identified with its ordinal number, so
                        // fetch the schema of the target table to find out what is its name
                        if (targetColumns == null)
                        {
                            // split the destination table into its different parts
                            string[] parts = this.tableName.Split(new char[] { '.' });

                            DataTable targetSchema = this.connection.GetSchema("Columns", new string[] { null, // catalog
                                                                                    parts.Length == 2 ? parts[0] : null, // schema
                                                                                    parts.Length == 2 ? parts[1] : parts[0] // table
                                                                                });
                            targetColumns = targetSchema.Rows;
                        }

                        if (mapping.DestinationOrdinal < 0 || mapping.DestinationOrdinal > targetColumns.Count)
                            throw new IndexOutOfRangeException(String.Format("The specified ordinal of the target column ({0}) is outside the range of the column count ({1}) of table {2}",
                                new object[] { mapping.DestinationOrdinal, targetColumns.Count, this.tableName }));

                        string columnName = (string)(targetColumns[mapping.DestinationOrdinal]["COLUMN_NAME"]);
                        builder.Append(columnName.Replace("`", "``"));
                    }
                    else
                        builder.Append(mapping.DestinationColumn.Replace("`", "``"));
                    builder.Append("`");
                }
                builder.Append(") VALUES (");
                for (int i = 0; i < mappings.Count; i++)
                {
                    if (i != 0)
                        builder.Append(", ");
                    builder.Append("?");
                }
                builder.Append(")");
            }
            string sqlString = builder.ToString();
            #if DEBUG
            System.Diagnostics.Trace.WriteLine("NuoDbBulkLoader::WriteToServer: "+sqlString);
            #endif

            if (this.connection.State != ConnectionState.Open)
                this.connection.Open();

            using (NuoDbCommand command = new NuoDbCommand(sqlString, this.connection))
            {
                command.Prepare();
                int totalSize = 0;

                // do the check for out-of-range values just once
                foreach (NuoDbBulkLoaderColumnMapping mapping in mappings)
                {
                    if (mapping.SourceColumn == null && mapping.SourceOrdinal < 0 || mapping.SourceOrdinal > feeder.FieldCount)
                        throw new IndexOutOfRangeException(String.Format("The specified ordinal of the source column ({0}) is outside the range of the column count ({1})",
                            new object[] { mapping.SourceOrdinal, feeder.FieldCount }));
                }

                while (true)
                {
                    EncodedDataStream dataStream = new RemEncodedStream(connection.InternalConnection.protocolVersion);
                    dataStream.startMessage(Protocol.ExecuteBatchPreparedStatement);
                    dataStream.encodeInt(command.handle);
                    int batchCount = 0;

                    for (; batchCount < this.batchSize && feeder.MoveNext(); batchCount++)
                    {
                        dataStream.encodeInt(command.Parameters.Count);
                        if (mappings.Count == 0)
                        {
                            for (int i = 0; i < feeder.FieldCount; i++)
                            {
                                dataStream.encodeDotNetObject(feeder[i]);
                            }
                        }
                        else
                        {
                            foreach (NuoDbBulkLoaderColumnMapping mapping in mappings)
                            {
                                if (mapping.SourceColumn == null)
                                {
                                    dataStream.encodeDotNetObject(feeder[mapping.SourceOrdinal]);
                                }
                                else
                                {
                                    dataStream.encodeDotNetObject(feeder[mapping.SourceColumn]);
                                }
                            }
                        }
                    }

                    // the iterator hasn't found any more data to import, let's break out
                    if (batchCount == 0)
                        break;

                    dataStream.encodeInt(-1);
                    dataStream.encodeInt(batchCount);
                    totalSize += batchCount;
            #if DEBUG
                    System.Diagnostics.Trace.WriteLine("NuoDbBulkLoader::WriteToServer: sending a batch of " + batchCount + " rows");
            #endif
                    this.connection.InternalConnection.sendAndReceive(dataStream);

                    string firstViolationString = "";
                    int firstViolation = 0;
                    bool haserrors = false;

                    for (int i = 0; i < batchCount; i++)
                    {
                        int result = dataStream.getInt();
                        if (result == EXECUTE_FAILED)
                        {
                            if (this.connection.InternalConnection.protocolVersion >= Protocol.PROTOCOL_VERSION6)
                            {
                                int status = dataStream.getInt();
                                string s = dataStream.getString();

                                // Only take the first constraint violation.
                                if (NuoDbSqlCode.FindCode(status).SQLState.Equals("CONSTRAINT_ERROR") && firstViolation == 0)
                                {
                                    firstViolation = status;
                                    firstViolationString = s;
                                }
                            }
                            haserrors = true;
                        }
                    }

                    if (this.connection.InternalConnection.protocolVersion >= Protocol.PROTOCOL_VERSION3)
                    {
                        long txnId = dataStream.getLong();
                        int nodeId = dataStream.getInt();
                        long commitSequence = dataStream.getLong();
                        this.connection.InternalConnection.setLastTransaction(txnId, nodeId, commitSequence);
                    }

                    if (handlers.Count != 0)
                    {
                        BatchProcessedEventHandler[] tmpArray = new BatchProcessedEventHandler[handlers.Count];
                        handlers.CopyTo(tmpArray);
                        BatchProcessedEventArgs args = new BatchProcessedEventArgs();
                        args.BatchSize = batchCount;
                        args.TotalSize = totalSize;
                        args.HasErrors = haserrors;
                        foreach (BatchProcessedEventHandler h in tmpArray)
                        {
                            h.Invoke(this, args);
                        }
                    }

                    if (haserrors)
                    {
                        if (firstViolation == 0)
                        {
                            throw new NuoDbSqlException("", NuoDbSqlCode.FindError("BATCH_UPDATE_ERROR"));
                        }
                        else
                        {
                            throw new NuoDbSqlException(firstViolationString, NuoDbSqlCode.FindError("BATCH_UPDATE_ERROR"));
                        }
                    }
                }
            }
        }