/// <summary>
        ///  Recognize barcode from a url.
        /// </summary>
        /// <param name="type">Barcode type.</param>
        /// <param name="checksumValidation">Checksum validation parameter</param>
        /// <param name="stripFNC">Allows to strip FNC symbol in recognition results.</param>
        /// <param name="url">The image file url.</param>
        /// <param name="rotationAngle">Recogniton of rotated barcode. Possible angles are 90, 180, 270, default is 0</param>
        /// <returns>BarcodeResponse object with barcode data.</returns>
        public BarcodeResponse RecognizeBarCodeFromUrl(BarCodeType type, ChecksumValidation checksumValidation, bool stripFNC, string url, int rotationAngle = 0)
        {
            // POST barcode/recognize?appSid={appSid}&type={type}&checksumValidation={checksumValidation}&stripFNC={stripFNC}&rotationAngle={rotationAngle}&url={url}

            string apiUrl = string.Format(@"barcode/recognize?type={0}&checksumValidation={1}&stripFNC={2}&rotationAngle={3}&url={4}",
                                          type, checksumValidation, stripFNC, rotationAngle, url);

            JObject         jObject         = JObject.Parse(ServiceController.Post(apiUrl, AppSid, AppKey));
            BarcodeResponse barcodeResponse = jObject.ToObject <BarcodeResponse>();

            return(barcodeResponse);
        }
        /// <summary>
        ///  Recognize barcode from a url. 
        /// </summary>
        /// <param name="type">Barcode type.</param>
        /// <param name="checksumValidation">Checksum validation parameter</param>
        /// <param name="stripFNC">Allows to strip FNC symbol in recognition results.</param>        
        /// <param name="url">The image file url.</param>
        /// <param name="rotationAngle">Recogniton of rotated barcode. Possible angles are 90, 180, 270, default is 0</param>
        /// <returns>BarcodeResponse object with barcode data.</returns>
        public BarcodeResponse RecognizeBarCodeFromUrl(BarCodeType type, ChecksumValidation checksumValidation, bool stripFNC, string url, int rotationAngle = 0)
        {
            // POST barcode/recognize?appSid={appSid}&type={type}&checksumValidation={checksumValidation}&stripFNC={stripFNC}&rotationAngle={rotationAngle}&url={url}

            string apiUrl = string.Format(@"barcode/recognize?type={0}&checksumValidation={1}&stripFNC={2}&rotationAngle={3}&url={4}",
                                            type, checksumValidation, stripFNC, rotationAngle, url);

            JObject jObject = JObject.Parse(ServiceController.Post(apiUrl, AppSid, AppKey));
            BarcodeResponse barcodeResponse = jObject.ToObject<BarcodeResponse>();
            return barcodeResponse;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="name">The image name.</param>
        /// <param name="type">The barcode type.</param>
        /// <param name="checksumValidation">Checksum validation parameter.</param>
        /// <param name="stripFNC">Allows to strip FNC symbol in recognition results.</param>
        /// <param name="barcodesCount">Count of barcodes to recognize.</param>
        /// <param name="rectX">Top left point X coordinate of  to recognize barcode inside.</param>
        /// <param name="rectY">Top left point Y coordinate of  to recognize barcode inside.</param>
        /// <param name="rectWidth">Width of  to recognize barcode inside.</param>
        /// <param name="rectHeight">Height of  to recognize barcode inside.</param>
        /// <param name="storage">The image storage.</param>
        /// <param name="folder">The image folder.</param>
        /// <param name="rotationAngle">Recogniton of rotated barcode. Possible angles are 90, 180, 270, default is 0</param>
        /// <returns>BarcodeResponse object with barcode data.</returns>
        public BarcodeResponse RecognizeBarCodeFromFileOnServer(string name, BarCodeType type, ChecksumValidation checksumValidation, bool stripFNC, int barcodesCount,
                                                                int rectX, int rectY, int rectWidth, int rectHeight, string storage, string folder, int rotationAngle = 0)
        {
            // GET 	barcode/{name}/recognize?appSid={appSid}&type={type}&checksumValidation={checksumValidation}&stripFNC={stripFNC}&rotationAngle={rotationAngle}&barcodesCount={barcodesCount}&rectX={rectX}&rectY={rectY}&rectWidth={rectWidth}&rectHeight={rectHeight}&storage={storage}&folder={folder} 

            string apiUrl = string.Format(@"barcode/{0}/recognize?type={1}&checksumValidation={2}&stripFNC={3}&rotationAngle={4}&barcodesCount={5}&rectX={6}&rectY={7}&rectWidth={8}&rectHeight={9}&storage={10}&folder={11}",
                                            name, type, checksumValidation, stripFNC, rotationAngle, barcodesCount, rectX, rectY, rectWidth, rectHeight, storage, folder);

            JObject jObject = JObject.Parse(ServiceController.Get(apiUrl, AppSid, AppKey));
            BarcodeResponse barcodeResponse = jObject.ToObject<BarcodeResponse>();
            return barcodeResponse;
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="name">The image name.</param>
        /// <param name="type">The barcode type.</param>
        /// <param name="checksumValidation">Checksum validation parameter.</param>
        /// <param name="stripFNC">Allows to strip FNC symbol in recognition results.</param>
        /// <param name="barcodesCount">Count of barcodes to recognize.</param>
        /// <param name="rectX">Top left point X coordinate of  to recognize barcode inside.</param>
        /// <param name="rectY">Top left point Y coordinate of  to recognize barcode inside.</param>
        /// <param name="rectWidth">Width of  to recognize barcode inside.</param>
        /// <param name="rectHeight">Height of  to recognize barcode inside.</param>
        /// <param name="storage">The image storage.</param>
        /// <param name="folder">The image folder.</param>
        /// <param name="rotationAngle">Recogniton of rotated barcode. Possible angles are 90, 180, 270, default is 0</param>
        /// <returns>BarcodeResponse object with barcode data.</returns>
        public BarcodeResponse RecognizeBarCodeFromFileOnServer(string name, BarCodeType type, ChecksumValidation checksumValidation, bool stripFNC, int barcodesCount,
                                                                int rectX, int rectY, int rectWidth, int rectHeight, string storage, string folder, int rotationAngle = 0)
        {
            // GET  barcode/{name}/recognize?appSid={appSid}&type={type}&checksumValidation={checksumValidation}&stripFNC={stripFNC}&rotationAngle={rotationAngle}&barcodesCount={barcodesCount}&rectX={rectX}&rectY={rectY}&rectWidth={rectWidth}&rectHeight={rectHeight}&storage={storage}&folder={folder}

            string apiUrl = string.Format(@"barcode/{0}/recognize?type={1}&checksumValidation={2}&stripFNC={3}&rotationAngle={4}&barcodesCount={5}&rectX={6}&rectY={7}&rectWidth={8}&rectHeight={9}&storage={10}&folder={11}",
                                          name, type, checksumValidation, stripFNC, rotationAngle, barcodesCount, rectX, rectY, rectWidth, rectHeight, storage, folder);

            JObject         jObject         = JObject.Parse(ServiceController.Get(apiUrl, AppSid, AppKey));
            BarcodeResponse barcodeResponse = jObject.ToObject <BarcodeResponse>();

            return(barcodeResponse);
        }