Beispiel #1
0
        public bool DownloadFile(Google.Apis.Drive.v2.Data.File myFile, string BestandsNaam)
        {
            bool Succes = false;

            m_File         = myFile;
            m_BestandsNaam = BestandsNaam;

            try
            {
                HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(new Uri(myFile.DownloadUrl));
                m_Authenticator.ApplyAuthenticationToRequest(myRequest);

                m_State             = new GRequestState(BUFFER_SIZE);
                m_State.Request     = myRequest;
                m_State.WriteStream = System.IO.File.OpenWrite(BestandsNaam);

                m_State.ProgressEvent += ProgressEvent;
                m_State.FinishedEvent += FinishedEvent;

                IAsyncResult myResult = (IAsyncResult)myRequest.BeginGetResponse(new AsyncCallback(RespCallback), m_State);
            }
            catch (Exception ex)
            {
                ErrorDump.AddError(System.IntPtr.Zero, "GDownload.cs", "DownloadFile", ex);
                if (FinishedEvent != null)
                {
                    FinishedEvent(new DriveFinishedEventArgs(false, "Fout bij downloaden", ex));
                }
            }

            return(Succes);
        }
Beispiel #2
0
        private static void RespCallback(IAsyncResult AsyncResult)
        {
            GRequestState myState = ((GRequestState)(AsyncResult.AsyncState));

            try
            {
                WebRequest myRequest       = myState.Request;
                string     myDescription   = "";
                string     myContentLength = "";

                HttpWebResponse myResponse = ((HttpWebResponse)(myRequest.EndGetResponse(AsyncResult)));
                myState.Response   = myResponse;
                myDescription      = myResponse.StatusDescription;
                myState.TotalBytes = myState.Response.ContentLength;
                myContentLength    = myState.Response.ContentLength.ToString();

                Stream myResponseStream = myState.Response.GetResponseStream();
                myState.StreamResponse = myResponseStream;

                IAsyncResult myIAsyncResult = myResponseStream.BeginRead(myState.BufferRead, 0, BUFFER_SIZE, new AsyncCallback(ReadCallback), myState);

                return;
            }
            catch (Exception ex)
            {
                ErrorDump.AddError(System.IntPtr.Zero, "GDownload.cs", "RespCallback", ex);
                if (myState.FinishedEvent != null)
                {
                    myState.FinishedEvent(new DriveFinishedEventArgs(false, "Fout bij downloaden", ex));
                }
            }
        }
Beispiel #3
0
        private static void ReadCallback(IAsyncResult AsyncResult)
        {
            GRequestState myState = ((GRequestState)(AsyncResult.AsyncState));

            try
            {
                Stream myResponseStream = myState.StreamResponse;

                int myBytesRead = myResponseStream.EndRead(AsyncResult);

                myState.WriteStream.Write(myState.BufferRead, 0, myBytesRead);

                if (myBytesRead > 0)
                {
                    myState.BytesRead += myBytesRead;
                    double myPctComplete = ((double)myState.BytesRead / (double)myState.TotalBytes) * 100.0f;

                    if (myState.ProgressEvent != null)
                    {
                        myState.ProgressEvent(new DriveProgressEventArgs(myPctComplete));
                    }

                    IAsyncResult myIAsyncResult = myResponseStream.BeginRead(myState.BufferRead, 0, BUFFER_SIZE, new AsyncCallback(ReadCallback), myState);
                    return;
                }
                else
                {
                    myState.WriteStream.Close();
                    myState.StreamResponse.Close();
                    myState.Response.Close();

                    if (myState.FinishedEvent != null)
                    {
                        myState.FinishedEvent(new DriveFinishedEventArgs(true));
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorDump.AddError(System.IntPtr.Zero, "GDownload.cs", "ReadCallback", ex);
                if (myState.FinishedEvent != null)
                {
                    myState.FinishedEvent(new DriveFinishedEventArgs(false, "Fout bij downloaden", ex));
                }
            }
        }