/// <summary>
        /// Processes an uploaded csv file of language entries into the database
        /// </summary>
        /// <param name="languageId">The language to update</param>
        /// <param name="fileUploadStream">The uploaded file containing the language entries</param>
        /// <returns>True if successful</returns>
        public bool ProcessUploadedCsvLanguageFile(int languageId, Stream fileUploadStream)
        {
            bool bReturn = false;

            using (var sr = new StreamReader(fileUploadStream))
            {
                using (var transaction = new TransactionScope())
                {
                    try
                    {
                        using (var csv = new CsvReader(sr, new CsvConfiguration {
                            HasHeaderRecord = true
                        }))
                        {
                            var items = csv.GetRecords <LanguageEntry>();

                            foreach (var item in items)
                            {
                                _db.up_LanguageTextSetByQualifiedFieldName(languageId, item.FieldName, null,
                                                                           item.LanguageText);
                            }
                        }
                        _db.SaveChanges();
                        transaction.Complete();
                        bReturn = true;

                        new LanguageManager(_db).ReloadLanguage(languageId);
                    }
                    catch (CsvMissingFieldException)
                    {
                        throw;
                    }
                    catch (Exception ex)
                    {
                        //TODO Log exception
                        System.Diagnostics.Debug.WriteLine(ex.Message);
                    }
                }
            }

            return(bReturn);
        }