예제 #1
0
 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;
 }
예제 #2
0
    // 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);
        }
    }
예제 #3
0
        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;
        }
예제 #4
0
 public WorkItem(SoftwareInput input, TaskCompletionSource <SoftwareOutput> tcs)
 {
     Input = input;
     TaskCompletionSource = tcs;
 }
예제 #5
0
        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 };
        }
예제 #6
0
		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;
			}
		}
예제 #7
0
		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;
			}
		}
예제 #8
0
		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();
		}