/// <summary>Szöveges fájl feldolgozása.</summary>
        /// <param name="pSourceFile">Feldolgozandó szöveges fájl.</param>
        /// <param name="pUserToken">Feldolgozandó token azonosító.</param>
        /// <returns>Feldolgozás eredménye.</returns>
        public FileDownloadReturnMessage RunCalculation(FileUploadMessage pSourceFile)
        {
            try
            {
                if (!GetStatus(pSourceFile.UserToken))
                {
                    throw new TextAnalyticsServiceException("Csak bejelentkezett felhasználó veheti igénybe a szolgáltatást!");
                }

                //Meghatározzuk, hogy a szerveren hova mentsük el a fájlt.
                string file = Path.Combine(c_TextFilePath, pSourceFile.Filename);

                //Feltöltjük a szerverre a fájlt.
                StreamFunc.StreamToFile(pSourceFile.FileByteStream, file);

                //Elvégezzük a fájl feldolgozását és az eredmény fájlt visszaküldjük.
                string resultFile = r.RunCalculation(file, allLoginedUsers.Find(x => x.Token == pSourceFile.UserToken).LoginName);
                return(StreamToFileDownloadReturnMessage(resultFile));
            }
            catch (Exception ex)
            {
                FaultTextAnalytics frc = new FaultTextAnalytics()
                {
                    ErrorText = ex.Message
                };
                throw new FaultException <FaultTextAnalytics>(frc);
            }
        }
        private string DownloadFile(string pFile)
        {
            if (pFile == string.Empty)
            {
                WriteInfoError("Kötelező megadni fájlt!");
                return(string.Empty);
            }

            if (!File.Exists(pFile))
            {
                WriteInfoError("A megadott fájl nem létezik!");
                return(string.Empty);
            }

            string md5 = Cryptography.FileMD5Calculator(pFile);

            if (!client.SourceFileExist(md5))
            {
                WriteInfoError("A megadott fájl még nem került feldolgozásra.");
                return(string.Empty);
            }

            FileDownloadReturnMessage fdrm = null;

            try
            {
                fdrm = client.GetResultFile(new FileDownloadMessage(md5));
            }
            catch (FaultException <FaultTextAnalytics> ex)
            {
                WriteInfoError($"Az eredmény fájl letöltése a következő hibával állt le: { ex.Detail.ErrorText }.");
                return(string.Empty);
            }

            string resultFile = Path.Combine(c_ResultFilePath, $"{Path.GetFileNameWithoutExtension(fdrm.DownloadedFilename)}2.xml");

            StreamFunc.StreamToFile(fdrm.FileByteStream, resultFile);
            return(resultFile);
        }