Exemplo n.º 1
0
 public static void CheckResultErrors(DeleteResult[] deleteResults)
 {
     string errMessages = string.Empty;
     foreach (DeleteResult dr in deleteResults)
     {
         if (!dr.success)
         {
             foreach (Error err in dr.errors)
                 errMessages += err.message + "\n";
         }
     }
     if (errMessages != string.Empty)
         throw new Exception(errMessages);
 }
        public new DeleteResult[] delete(string[] ids)
        {
            long start = DateTime.Now.Ticks;
            if (ids.Length > 1)
                SetAutoRequestCompressed();
            else
                SetAutoRequestPlain();
            SetAutoResponseCompressed();

            try
            {
                if (ids.Length <= maxRowCount)
                    return base.delete(ids);
                else
                {
                    DeleteResult[] results = new DeleteResult[ids.Length];
                    for (int startPos = 0; startPos < ids.Length; startPos += maxRowCount)
                    {
                        string[] buffer = new string[Math.Min(maxRowCount, ids.Length - startPos)];
                        Array.Copy(ids, startPos, buffer, 0, buffer.Length);
                        (base.delete(buffer)).CopyTo(results, startPos);
                    }
                    return results;
                }
            }
            finally
            {
                if (OnDeleteComplete != null)
                    OnDeleteComplete(new TimeSpan(DateTime.Now.Ticks - start));
                ResetCompressionModes();
            }
        }