Example #1
0
        /// <summary>
        /// Dictionary per effettuare il caching degli oggetti documenti reperiti
        /// </summary>
        //private Dictionary<int, DocsPaVO.documento.SchedaDocumento> _state = null;

        /// <summary>
        /// Reperimento documento
        /// </summary>
        /// <returns></returns>
        protected virtual DocsPaVO.documento.SchedaDocumento GetDocument(LogInfo logInfo)
        {
            //if (this._state == null)
            //    this._state = new Dictionary<int, DocsPaVO.documento.SchedaDocumento>();

            //if (this._state.ContainsKey(logInfo.ObjectId))
            //{
            //    return (DocsPaVO.documento.SchedaDocumento)this._state[logInfo.ObjectId];
            //}
            //else
            //{
            DocsPaVO.documento.SchedaDocumento document = DocumentDataAdapter.GetDocument(logInfo);

            //lock (_state)
            //{
            //    this._state[logInfo.ObjectId] = document;
            //}

            return(document);
            //}
        }
Example #2
0
        public override DbImportResult Import(bool canCreateProperties = false)
        {
            DbImportResult = new DbImportResult();

            if (MetaData.ImportType != CommonUtils.ImportType.CreateDocument && MetaData.ImportType != CommonUtils.ImportType.UpdateDocument)
            {
                DbImportResult.ErrorMessages.Add(IMPORT_TYPE_NOT_COMPATIBLE);
                return DbImportResult;
            }

            //Load Lookups into Memory.
            mExistingDocumentTypes = Cee.DocumentTypes.ToList();
            mExistingAuthors = Cee.DocumentAuthors.ToList();
            mExistingDisciplines = Cee.DocumentDisciplines.ToList();

            CanCreateProperties = canCreateProperties;

            string connString = BuildConnectionString(MetaData.FullFileName);

            IList<DocumentDataAdapter> importData = new List<DocumentDataAdapter>();
            using (var excelConn = new OleDbConnection(connString))
            {
                try
                {
                    using (var cmd = new OleDbCommand())
                    {
                        cmd.CommandTimeout = 6000;
                        cmd.Connection = excelConn;
                        cmd.CommandText = string.Format(@"SELECT * FROM [{0}$] WHERE [{1}] IS NOT NULL", WorkSheetName, DocumentColumn.Name);
                        excelConn.Open();

                        if (!WorkSheetCheckColumnNamesAreValid<DocumentColumn>(GetColumnHeadersFromDataSet(cmd, (int)DocumentColumn.IsActive)))
                        {
                            DbImportResult.ErrorMessages.Add(ExcelWorkSheetColumnsNotValidMessage());
                            return DbImportResult;
                        }

                        int rowNumber = 1;
                        using (OleDbDataReader dr = cmd.ExecuteReader())
                        {
                            while (dr.Read())
                            {
                                rowNumber++;

                                var adapter = new DocumentDataAdapter(dr, rowNumber, CommonUtils.ImportType.UpdateDocument);
                                importData.Add(adapter);
                            }
                        }

                        excelConn.Close();
                    }

                    if (MetaData.ImportType == CommonUtils.ImportType.CreateDocument)
                    {
                        InsertData(importData);
                    }
                    else if (MetaData.ImportType == CommonUtils.ImportType.UpdateDocument)
                    {
                        UpdatetData(importData);
                    }
                    else
                    {
                        throw new InvalidDataException(string.Format("Invalid import type of '{0}'.  Import aborted.", MetaData.ImportType));
                    }

                    DbImportResult.ImportedCount = mSavedResults.Count;
                    return DbImportResult;
                }
                catch (OleDbException ex)
                {
                    DbImportResult.ErrorMessages.Add(ex.ToString());
                    return DbImportResult;
                }
                finally
                {
                    if (excelConn.State == ConnectionState.Open)
                    {
                        excelConn.Close();
                    }
                }
            }
        }