/// <summary>
        /// Initiates a user-controlled upload loop whereby failed operations from a non-transactional
        /// package upload can be retried as many times until either all failed operations have been
        /// accounted for, or the user has decided to stop
        /// </summary>
        /// <param name="owner"></param>
        /// <param name="conn"></param>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public static DialogResult StartNonTransactionalUploadLoop(Form owner, IServerConnection conn, string fileName)
        {
            var result = new UploadPackageResult();
            var res = UploadPackageNonTransactional(owner, conn, fileName, result);

            //We do this until either there are no failures or the user has given up retrying
            while (result.Failed.Count > 0)
            {
                using (var resultDiag = new PackageUploadResultDialog(result))
                {
                    if (resultDiag.ShowDialog() == DialogResult.Retry)
                    {
                        var success = result.Successful;
                        var skipped = result.SkipOperations;

                        //Create a new result object and skip any previous ones that were
                        //either successful or skipped themselves
                        result = new UploadPackageResult(success);
                        foreach (var skip in skipped)
                            result.SkipOperations.Add(skip);

                        res = UploadPackageNonTransactional(owner, conn, fileName, result);
                    }
                    else //Not retrying
                    {
                        break;
                    }
                }
            }
            return res;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Initiates a user-controlled upload loop whereby failed operations from a non-transactional
        /// package upload can be retried as many times until either all failed operations have been 
        /// accounted for, or the user has decided to stop
        /// </summary>
        /// <param name="owner"></param>
        /// <param name="conn"></param>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public static DialogResult StartNonTransactionalUploadLoop(Form owner, IServerConnection conn, string fileName)
        {
            var result = new UploadPackageResult();
            var res = UploadPackageNonTransactional(owner, conn, fileName, result);

            //We do this until either there are no failures or the user has given up retrying
            while (result.Failed.Count > 0)
            {
                using (var resultDiag = new PackageUploadResultDialog(result))
                {
                    if (resultDiag.ShowDialog() == DialogResult.Retry)
                    {
                        var success = result.Successful;
                        var skipped = result.SkipOperations;

                        //Create a new result object and skip any previous ones that were
                        //either successful or skipped themselves
                        result = new UploadPackageResult(success);
                        foreach (var skip in skipped)
                            result.SkipOperations.Add(skip);

                        res = UploadPackageNonTransactional(owner, conn, fileName, result);
                    }
                    else //Not retrying
                    {
                        break;
                    }
                }
            }
            return res;
        }