Esempio n. 1
0
File: Ged.cs Progetto: clasie/T-P
        /// <summary>
        /// UploadFile according to the the doc type
        /// </summary>
        /// <param name="barcode"></param>
        /// <param name="entirePathFileToUpload"></param>
        /// <param name="enumDocType"></param>
        /// <returns></returns>
        public GEDJsonClassRequestResponse UploadFile(
            string barcode,
            string entirePathFileToUpload,
            GedService.DocTypesEnum enumDocType,
            bool doubleCheckTheUpload = false
            )
        {
            //File Validation before going further
            FileValidationHelper.ValidateFile(entirePathFileToUpload);

            //GED Web call preparation
            string    requestURL = $"{GEDUrl}{GedConstants.WebSeparator}{GedConstants.ServiceUpload}";
            string    fileName   = entirePathFileToUpload;
            WebClient wc         = new WebClient();

            byte[] bytes = wc.DownloadData(fileName); //in case the file is on another server.
            wc.Dispose();

            string userAgent          = GedConstants.WebUserAgent;
            string returnResponseText = string.Empty;

            int loopsMax = GedConstants.LoopGetTokenMinConterValue;

            while (loopsMax++ < GedConstants.LoopGetTokenMaxConterValue)
            {
                try
                {
                    //Prepare parameters
                    Dictionary <string, object> postParameters = new Dictionary <string, object>();
                    postParameters.Add(GedConstants.ParameterFile, new UploadFileHelper.FileParameter(bytes, Path.GetFileName(fileName), HttpParamContentType));
                    postParameters.Add(GedConstants.ParameterToken, Token);
                    postParameters.Add(GedConstants.ParameterDocType, enumDocType.ToString());
                    postParameters.Add(GedConstants.ParameterBarCode, barcode);
                    postParameters.Add(GedConstants.ParameterProvider, string.Empty);
                    //Prepare call the service
                    HttpWebResponse webResponse =
                        UploadFileHelper.MultipartFormPost(
                            requestURL,
                            userAgent,
                            postParameters,
                            GedConstants.HeaderCacheParam,
                            GedConstants.HeaderCacheValue
                            );
                    //Call the service
                    StreamReader responseReader = new StreamReader(webResponse.GetResponseStream());
                    returnResponseText = responseReader.ReadToEnd();
                    //Analyse the response
                    return(ExceptionCallerHelper.UploadFileTestExecute(returnResponseText, bytes.Length));
                }
                //The token has expired, we try again just once
                catch (GEDTokenException gedTokenException)
                {
                    Token = GetConnectionToken().Token;
                }
            }
            return(new GEDJsonClassRequestResponse()
            {
                error = $"{GedConstants.UnknownDEGDllError}, {this.GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}"
            });
        }
Esempio n. 2
0
File: Ged.cs Progetto: clasie/T-P
        /// <summary>
        /// DownloadFile
        /// </summary>
        /// <param name="barcode"></param>
        /// <param name="enumDocType"></param>
        /// <param name="majorVersion">Pas pris en compte par la GED actuellement</param>
        /// <param name="minorVersion">Pas pris en compte par la GED actuellement</param>
        /// <returns></returns>
        public GEDJsonClassRequestResponse DownloadFile(
            string barcode,
            GedService.DocTypesEnum enumDocType,
            int majorVersion = GedConstants.MaxVersionMinimal,
            int minorVersion = GedConstants.MinVersionMinimal
            )
        {
            string requestURL = $"{GEDUrl}{GedConstants.WebSeparator}{GedConstants.ServiceDownload}";
            int    loopsMax   = GedConstants.LoopGetTokenMinConterValue;

            while (loopsMax < GedConstants.LoopGetTokenMaxConterValue)
            {
                try
                {
                    using (WebClient client = new WebClient())
                    {
                        //Construire l'url GET
                        Uri url = new Uri(requestURL).
                                  AddQuery(GedConstants.ParameterRequestType, GedConstants.ParameterRequestTypeJson).
                                  AddQuery(GedConstants.ParameterToken, Token).
                                  AddQuery(GedConstants.ParameterDocType, enumDocType.ToString()).
                                  AddQuery(GedConstants.ParameterBarCode, barcode).
                                  //Gestion des versions
                                  AddQuery(GedConstants.ParameterMajorVersion, (GedConstants.MaxVersionMinimal.Equals(majorVersion)) ? string.Empty: majorVersion.ToString()).
                                  AddQuery(GedConstants.ParameterMinorVersion, (GedConstants.MinVersionMinimal.Equals(minorVersion)) ? string.Empty : minorVersion.ToString()).
                                  //Demande d'annexe
                                  AddQuery(GedConstants.ParameterAnnexe, (GedService.DocTypesEnum.AFAC.Equals(enumDocType))?true.ToString().ToLower():false.ToString().ToLower());

                        //Ask the GED
                        byte[] responsebytes = client.DownloadData(url.ToString());
                        string responsebody  = Encoding.UTF8.GetString(responsebytes);

                        //Analyse the response
                        return(ExceptionCallerHelper.UploadFileTestExecute(responsebody));
                    }
                }
                catch (GEDTokenException gedTokenException)
                {
                    //The token has expired or is empty, try again but just once
                    Token = GetConnectionToken().Token;
                }
                //Avoid end loop if GED problems
                loopsMax++;
            }
            return(new GEDJsonClassRequestResponse()
            {
                error = $"{GedConstants.UnknownDEGDllError}, {this.GetType().Name}.{System.Reflection.MethodBase.GetCurrentMethod().Name}"
            });
        }
Esempio n. 3
0
        /// <summary>
        /// Ask GED a token
        /// Create requests sync asynch ...
        /// https://stackoverflow.com/questions/27108264/c-sharp-how-to-properly-make-a-http-web-get-request
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="userPassWord"></param>
        /// <param name="gEDUrl"></param>
        /// <returns>string</returns>
        public static string DownLoadFile(
            string urlDownLoad,
            string token,
            string barcode,
            string gEDUrl,
            GedService.DocTypesEnum enumDocType,
            string majorVersion = "",
            string minorVersion = "")
        {
            using (WebClient client = new WebClient())
            {
                var url = urlDownLoad; // "http://127.0.0.1:8080/GEDServerV2Dvp/WebService/document/download/8000a084f9474ebdb1fb623df68b3ae1?majorVersion=14&minorVersion=0";

                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
                request.Method = "GET";
                String test = String.Empty;
                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    Stream       dataStream = response.GetResponseStream();
                    StreamReader reader     = new StreamReader(dataStream);
                    test = reader.ReadToEnd();
                    reader.Close();
                    dataStream.Close();
                }
                //DeserializeObject(test...)
                //return string;

                /*
                 * client.Headers.Add(GedConstants.HeaderCacheParam, GedConstants.HeaderCacheValue);
                 * var reqparm = new System.Collections.Specialized.NameValueCollection();
                 * reqparm.Add(GedConstants.ParameterProvider, string.Empty);
                 * reqparm.Add(GedConstants.ParameterToken, token);
                 * reqparm.Add(GedConstants.ParameterMajorVersion, majorVersion);
                 * reqparm.Add(GedConstants.ParameterMinorVersion, minorVersion);
                 * reqparm.Add(GedConstants.ParameterBarCode, barcode);
                 * reqparm.Add(GedConstants.ParameterDocType, enumDocType.ToString());
                 * string url = $"{gEDUrl}{GedConstants.WebSeparator}{GedConstants.ServiceDownload}";
                 * url = "http://127.0.0.1:8080/GEDServerV2Dvp/WebService/document/download/8000a084f9474ebdb1fb623df68b3ae1?majorVersion=14&minorVersion=0";
                 * byte[] responsebytes =
                 *  client.DownloadFile(url);
                 * string response = Encoding.UTF8.GetString(responsebytes);
                 * return response;
                 */
                return("");
            }
        }