public EsecuzioneImportazioneDati(string fileName, string password, string prefissoConto, bool contiStudio, TipoSaldi tipoSaldi, SoftwareInput inputType, TipoArchivioImportato tipoArchivio) { _tipoArchivio = tipoArchivio; _fileName = fileName; _inputType = inputType; _prefissoConto = prefissoConto; _contiStudio = contiStudio; _tipoSaldi = tipoSaldi; _password = password; InitializeComponent(); Load += esecuzioneImportazioneDatiLoad; DialogResult = DialogResult.OK; }
// Async action method optional public async Task <SoftwareOutput> ExecuteAsync(SoftwareInput input) { var tcs = new TaskCompletionSource <SoftwareOutput>(); var workItem = new WorkItem(input, tcs); _workQueue.Add(workItem); _software.ForceIdleEvent(); using (var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10))) { cts.Token.Register(() => tcs.TrySetCanceled()); return(await tcs.Task); } }
public string ImportaCondomini(string inputPathFileName, string prefixConto, bool importaContiStudio, TipoSaldi tipoSaldi, string password, SoftwareInput importType) { string message; var fullPathFileName = compressFile(inputPathFileName, importType == SoftwareInput.Excel || importType == SoftwareInput.Summa); // get some info about the input file var fileInfo = new FileInfo(fullPathFileName); // open input stream using (var stream = new FileStream(fullPathFileName, FileMode.Open, FileAccess.Read)) { var key = Guid.NewGuid(); using (var uploadStreamWithProgress = new StreamWithProgress(stream)) { //uploadStreamWithProgress.ProgressChanged += uploadStreamWithProgress_ProgressChanged; // start service client var client = new FileTransferServiceClient(); // upload file client.UploadFile(key.ToString(), fileInfo.Length, uploadStreamWithProgress); // close service client //client.Close(); } message = GetServiceClient().ImportazioneCondomini(key.ToString(), prefixConto, importaContiStudio, tipoSaldi, password, importType, GetUserInfo()); // Aggiorno le lista di condomini, unità immobiliari e persone _cacheService.LoadPersone(); _cacheService.LoadCondomini(); _cacheService.LoadUI(); _cacheService.LoadEsercizi(); CloseService(); } return message; }
public WorkItem(SoftwareInput input, TaskCompletionSource <SoftwareOutput> tcs) { Input = input; TaskCompletionSource = tcs; }
public CondominiImportabili GetCondomini(string inputPathFileName, string password, SoftwareInput importType) { try { var fullPathFileName = compressFile(inputPathFileName, importType == SoftwareInput.Excel || importType == SoftwareInput.Summa); // get some info about the input file var fileInfo = new FileInfo(fullPathFileName); // open input stream using (var stream = new FileStream(fullPathFileName, FileMode.Open, FileAccess.Read)) { var key = Guid.NewGuid(); using (var uploadStreamWithProgress = new StreamWithProgress(stream)) { //uploadStreamWithProgress.ProgressChanged += uploadStreamWithProgress_ProgressChanged; // start service client var client = new FileTransferServiceClient(); // upload file client.UploadFile(key.ToString(), fileInfo.Length, uploadStreamWithProgress); // close service client //client.Close(); } var result = GetServiceClient().GetCondominiDaImportare(key.ToString(), password, importType, GetUserInfo()); CloseService(); return result; } } catch (CommunicationObjectAbortedException ex) { _log.DebugFormat("Errore nella chiamata al servizio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda); } catch (CommunicationObjectFaultedException ex) { _log.DebugFormat("Errore nella chiamata al servizio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda); } catch (CommunicationException ex) { _log.DebugFormat("Errore nella chiamata al servizio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda); } catch (IOException ex) { _log.ErrorFormat("Errore nella lettura del file da importare - {0} - file:{1} - password:{2} - importType:{3} - azienda:{4}", ex, Utility.GetMethodDescription(), inputPathFileName, password, importType, Login.Instance.CurrentLogin().Azienda); var message = $"Non è possibile accedere al file: {inputPathFileName}"; return new CondominiImportabili { Message = message, Condomini = null}; } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura del file da importare - {0} - file:{1} - password:{2} - importType:{3} - azienda:{4}", ex, Utility.GetMethodDescription(), inputPathFileName, password, importType, Login.Instance.CurrentLogin().Azienda); var message = $"Errore inaspettato nell'importazione del file: {inputPathFileName}{Environment.NewLine}Si prega di riprovare."; return new CondominiImportabili { Message = message, Condomini = null }; } return new CondominiImportabili { Message = "Errore nella chiamata al servizio", Condomini = null }; }
public string ImportazioneFornitori(string key, string password, SoftwareInput inputType, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo, IsolationLevel.ReadUncommitted); IImportDati importDatiService = null; switch (inputType) { case SoftwareInput.YStabili: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.ystabili"); break; case SoftwareInput.Brainware: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.brainware"); break; case SoftwareInput.GeCo: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.geco"); break; case SoftwareInput.Condor: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.condor"); break; } string item = importDatiService != null ? importDatiService.LoadFornitori(key, userinfo.Azienda, password) : "L'applicazione origine non è riconosciuta"; if (string.IsNullOrEmpty(item)) windsorRep.Commit(); else windsorRep.Rollback(IsolationLevel.ReadUncommitted); return item; } catch (Exception ex) { _log.Error("Errore nella importazione di tutti i fornitori - " + Utility.GetMethodDescription() + " - idAzienda:" + userinfo.Azienda + " - software:" + inputType.ToString(), ex); windsorRep.Rollback(IsolationLevel.ReadUncommitted); throw; } }
public string ImportazioneSingoloCondominio(string key, string codiceCondominio, string prefixConto, bool loadContiStudio, TipoSaldi tipoSaldi, string password, SoftwareInput inputType, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo, IsolationLevel.ReadUncommitted); IImportDati importDatiService = null; string item; switch (inputType) { case SoftwareInput.YStabili: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.ystabili"); break; case SoftwareInput.Brainware: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.brainware"); break; case SoftwareInput.GeCo: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.geco"); break; case SoftwareInput.Condor: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.condor"); break; case SoftwareInput.Excel: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.excel"); break; case SoftwareInput.Summa: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.summa"); break; } if (importDatiService != null) { item = importDatiService.LoadCondominio(key, codiceCondominio, prefixConto, loadContiStudio, tipoSaldi, userinfo.Azienda, password); if(!string.IsNullOrEmpty(item)) windsorRep.Rollback(IsolationLevel.ReadUncommitted); } else item = "L'applicazione origine non è riconosciuta"; windsorRep.Commit(); return item; } catch (Exception ex) { _log.Error("Errore nella importazione dei dati di un condominio - " + Utility.GetMethodDescription() + " - codiceCondominio:" + codiceCondominio + " - software:" + inputType.ToString(), ex); windsorRep.Rollback(IsolationLevel.ReadUncommitted); throw; } }
public CondominiImportabili GetCondominiDaImportare(string key, string password, SoftwareInput inputType, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); IImportDati importDatiService = null; switch (inputType) { case SoftwareInput.YStabili: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.ystabili"); break; case SoftwareInput.Brainware: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.brainware"); break; case SoftwareInput.GeCo: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.geco"); break; case SoftwareInput.Condor: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.condor"); break; case SoftwareInput.Excel: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.excel"); break; case SoftwareInput.Summa: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.summa"); break; } if (importDatiService != null) { var item = importDatiService.GetCondomini(key, password); windsorRep.Commit(); _log.InfoFormat("Caricati {0} condomini - messaggio:{1} - {2}", item.Condomini.Count, item.Message, Utility.GetMethodDescription()); return item; } } catch (Exception ex) { _log.ErrorFormat("Errore durante il recupero della lista di condomini da importare - {0} - software:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), inputType.ToString(), userinfo.Azienda); windsorRep.Rollback(); throw; } return new CondominiImportabili(); }