/// <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); //} }
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(); } } } }