Beispiel #1
0
        public string[] GetLastError()
        {
            if (m_state != Upload506MasterState.HasErrors)
            {
                m_lastErrorMessage = string.Empty;
                m_lastError        = Upload506FileError.Success;
            }

            return(m_lastErrorMessage.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries));
        }
Beispiel #2
0
        private void SetError(Upload506FileError errorCode, string errorMessage)
        {
            SetState(Upload506MasterState.HasErrors);
            m_lastError        = errorCode;
            m_lastErrorMessage = errorMessage;

            if (errorCode == Upload506FileError.IncorrectDataFormat || errorCode == Upload506FileError.ValidationError)
            {
                m_errorsFile = new MemoryStream();
                WriteErrorsToStream(m_errorsFile);
            }
        }
Beispiel #3
0
        private Upload506FileError GetItemsFromDbf(string ext, string filePath, long startRecord, long count)
        {
            m_SourceType = SourceType.DBase;
            Upload506FileError result = Upload506FileError.Success;

            UploadMaster.Items.Clear();
            m_DbaseFile = new FlatDatabase.DBase.File();
            if (m_InputStream != null)
            {
                m_DbaseFile.Attach(m_InputStream, Path.GetFileName(filePath), true);
            }
            else
            {
                m_DbaseFile.Open(filePath, System.IO.FileMode.Open);
            }
            if (m_DbaseFile.RecordCount > MaxItemsCount)
            {
                return(Upload506FileError.TooManyRows);
            }

            if (!ValidateHeader(m_DbaseFile))
            {
                return(Upload506FileError.IvalidHeaderFormat);
            }
            try
            {
                for (m_DbaseFile.Position = 0; m_DbaseFile.Position < m_DbaseFile.RecordCount; m_DbaseFile.Position++)
                {
                    var itemResult = AddItemFromDbfFile(m_DbaseFile);
                    if (itemResult > 0)
                    {
                        result = Upload506FileError.IncorrectDataFormat;
                    }
                }
                //m_DbaseFile.Close();
            }
            catch (Exception ex)
            {
                LogError(ex);
                result = Upload506FileError.Unknown;
            }
            return(result);
        }
Beispiel #4
0
        /// <summary>
        ///
        /// </summary>
        /// <returns>
        /// Error code:
        /// 0 - no errors
        /// 1 - file doesn't exists
        /// 2 - usupported extension
        /// 3 - Ivalid header format (some column names don't match 506 format column names)
        /// 4 - incorrect data format in some cells
        /// 5 - invalid file format, error duirng file reading
        /// </returns>
        public Upload506FileError GetItems(long startRecord = 0, long count = -1)
        {
            if (m_InputStream == null && (string.IsNullOrEmpty(FilePath) || !File.Exists(FilePath)))
            {
                return(Upload506FileError.NullFile);
            }

            var ext = Path.GetExtension(FilePath);

            try
            {
                Upload506FileError result = Upload506FileError.UsupportedExtension;
                if (ext == ".xls" || ext == ".xlsx")
                {
                    if (m_InputStream == null)
                    {
                        m_InputStream = new FileStream(FilePath, FileMode.Open, FileAccess.Read);
                    }
                    m_ExcelFileWrapper.Read(m_InputStream);
                    result = GetItemsFromWorkbook();
                    UploadMaster.StoredData = m_ExcelFileWrapper.Workbook;
                    m_ExcelFileWrapper.ShoudDisposeWorkbook = false;
                }
                else if (ext == ".dbf")
                {
                    result = GetItemsFromDbf(ext, FilePath, startRecord, count);
                    UploadMaster.StoredData = m_DbaseFile;
                }
                //else if (ext == ".mdb")
                //{
                //    result = GetItemsFromDatabase(ext, FilePath, startRecord, count);
                //}
                //if (result == Upload506FileError.IncorrectDataFormat)
                //    FlushErrors();
                UploadMaster.SourceType = m_SourceType;
                return(result);
            }
            catch (Exception ex)
            {
                LogError(ex);
                return(Upload506FileError.InvalidFileFormat);
            }
        }
Beispiel #5
0
        public void Clear()
        {
            try
            {
                Items.Clear();
                Duplicates.Clear();

                m_lastErrorMessage = string.Empty;
                m_lastError        = Upload506FileError.Success;

                FileName         = null;
                FileContent      = null;
                m_resultFileName = null;
                m_errorFileName  = null;
                var disposable = StoredData as IDisposable;
                if (disposable != null)
                {
                    disposable.Dispose();
                }
                StoredData = null;
                if (m_errorsFile != null)
                {
                    m_errorsFile.Dispose();
                    m_errorsFile = null;
                }
                if (m_resultFile != null)
                {
                    m_resultFile.Dispose();
                    m_resultFile = null;
                }

                SetState(Upload506MasterState.ReadyForUpload);
            }
            catch (Exception ex)
            {
                LogError.Log("ErrorLog", ex);
            }
        }
Beispiel #6
0
        private string GetMessageByCode(Upload506FileError errorCode)
        {
            string errorMessage;

            switch (errorCode)
            {
            case Upload506FileError.Success:
                errorMessage = null;
                break;

            case Upload506FileError.NullFile:                                    // file doesn't exists
                errorMessage = EidssMessages.Get("msgUploadFileNullFile");
                break;

            case Upload506FileError.IncorrectDataFormat:        // incorrect data format in some cells
                errorMessage = string.Format(EidssMessages.Get("msgUploadFileValidationError"), GetErrorFileName());
                break;

            case Upload506FileError.UsupportedExtension:        // usupported extension
                errorMessage = EidssMessages.Get("msg506UnsupportedExtention");
                break;

            case Upload506FileError.InvalidFileFormat:                  // invalid file format, error duirng file reading
                errorMessage = EidssMessages.Get("msgUploadFileInvalidFormat");
                break;

            case Upload506FileError.TooManyRows:                // invalid file format, error duirng file reading
                errorMessage = EidssMessages.Get("msgUploadFileTooManyRows");
                break;

            default:
                errorMessage = EidssMessages.Get("msgUploadFileError");
                break;
            }

            return(errorMessage);
        }
Beispiel #7
0
 private Upload506FileError GetItemsFromWorkbook()
 {
     m_SourceType = SourceType.Excel;
     UploadMaster.Items.Clear();
     if (!ValidateHeader())
     {
         return(Upload506FileError.IvalidHeaderFormat);
     }
     try
     {
         var sheet = m_ExcelFileWrapper.Workbook.GetSheetAt(0);
         if (sheet.PhysicalNumberOfRows > MaxItemsCount + 1)
         {
             return(Upload506FileError.TooManyRows);
         }
         Upload506FileError result = Upload506FileError.Success;
         for (int i = sheet.FirstRowNum + 1; i <= sheet.LastRowNum; i++)
         {
             var row        = sheet.GetRow(i);
             var itemResult = AddItemFromSheetRow(row);
             if (itemResult > 0)
             {
                 result = Upload506FileError.IncorrectDataFormat;
             }
             if (itemResult == -1)//read data until first empty line
             {
                 break;
             }
         }
         return(result);
     }
     catch (Exception ex)
     {
         LogError(ex);
         return(Upload506FileError.InvalidFileFormat);
     }
 }
Beispiel #8
0
 private void SetError(Upload506FileError errorCode)
 {
     SetError(errorCode, GetMessageByCode(errorCode));
 }