/// <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);
            }
        }
 /// <summary>Megadott md5 alapján megkeressük, hogy volt-e már feldolgozva az a fájl. Ha igen, akkor visszaadjuk
 /// a feldolgozás eredményét, ha nem, akkor <see cref="TextAnalyticsServiceException"/> hibát dob.</summary>
 /// <param name="pResultFileMD5">Eredeti feldolgozandó fájl md5-je.</param>
 /// <returns>Feldolgozás eredménye.</returns>
 public FileDownloadReturnMessage GetResultFile(FileDownloadMessage pResultFileMD5)
 {
     try
     {
         string resultFile = r.GetResultFile(pResultFileMD5.MD5);
         if (resultFile == string.Empty)
         {
             throw new TextAnalyticsServiceException("Nincs ilyen feldolgozott fájl!");
         }
         return(StreamToFileDownloadReturnMessage(resultFile));
     }
     catch (Exception ex)
     {
         FaultTextAnalytics frc = new FaultTextAnalytics()
         {
             ErrorText = ex.Message
         };
         throw new FaultException <FaultTextAnalytics>(frc);
     }
 }
        /// <summary>Új felhasználó beregisztrálása.</summary>
        /// <param name="pLoginName">Felhasználó login neve.</param>
        /// <param name="pUserName">Felhasználó teljes neve.</param>
        /// <param name="pPassword">Felhasználó jelszava.</param>
        public void SignUp(string pLoginName, string pUserName, string pPassword)
        {
            try
            {
                if (pLoginName == string.Empty)
                {
                    throw new TextAnalyticsServiceException("A felhasználónevet, jelszót és azonosítót kötelező megadni!");
                }

                string p = Cryptography.CalculateSHA512Hash(pPassword);
                r.SignUp(pLoginName, pUserName, p);
            }
            catch (Exception ex)
            {
                FaultTextAnalytics frc = new FaultTextAnalytics()
                {
                    ErrorText = ex.Message
                };
                throw new FaultException <FaultTextAnalytics>(frc);
            }
        }