Example #1
0
        private void SetRicevutaPecCombo()
        {
            string ricevutaPecType = SenderManager.getSetRicevutaPec(this.cboRegistriRF.SelectedValue, null, null, true, ddl_caselle.SelectedValue);

            if (ricevutaPecType == null)
            {
                ricevutaPecType = string.Empty;
            }
            else
            if (ricevutaPecType.Length > 0)
            {
                ricevutaPecType = ricevutaPecType.Substring(0, 1);
            }
            else
            {
                ricevutaPecType = string.Empty;
            }

            switch (ricevutaPecType)
            {
            case "B":
            case "S":
            case "C":
                SenderLblTipoRicevuta.Visible         = true;
                cboTipoRicevutaPec.Visible            = true;
                this.cboTipoRicevutaPec.SelectedValue = ricevutaPecType;
                break;

            default:
                SenderLblTipoRicevuta.Visible = false;
                cboTipoRicevutaPec.Visible    = false;
                break;
            }
        }
Example #2
0
        private void ReadListaReportMonitoring()
        {
            DocsPaWR.FiltriReportSpedizioni filters = new FiltriReportSpedizioni();
            filters = getFiltersFromGui();
            try
            {
                List <DocsPaWR.InfoDocumentoSpedito> listSpedizioni = SenderManager.GetReportSpedizioniDocumenti(filters, this.IdDocumentiSelezionatiMonitoring);
                if (listSpedizioni.Count > 0 && string.IsNullOrEmpty(IdDocumento))
                {
                    this.tblEspandiChiudi.Visible = true;
                    this.lblNumDocTrovati.Text    = listSpedizioni.Count.ToString();
                }
                else
                {
                    this.tblEspandiChiudi.Visible = false;
                }

                gvlistaDocumenti.DataSource = listSpedizioni;
                gvlistaDocumenti.DataBind();
                UpPnlDest.Update();
                gvlistaDocumenti.Visible = true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #3
0
        static void Main(string[] args)
        {
            ILogger log = new Logger();

            Logging.Initialize(log);

            _server         = new ServerManager(MulticastHostint, UdpPort, TcpPort);
            _sender         = new SenderManager(MulticastHostint, TcpPort, UdpPort);
            _messageManager = new MessageManager(MulticastHostint, _myCode, _sender, _server, new[] { _host });

            _server.ServerStart();

            PropertyInfo propInfo = new PropertyInfo("", true, ProperyType.Int);

            Properties properties = new Properties(new Dictionary <string, PropertyInfo> {
                { propName, propInfo }
            });
            Device         device  = new Device(_myCode, "LALA", "Я ДЕВАЙС", properties);
            ConnectMessage connect = new ConnectMessage(device, _myCode, DateTime.Now, _host);

            _messageManager.OnConnectMessage(null, new EventMessageConnectArgs(connect));

            while (true)
            {
                Task.Delay(3000).Wait();
                Telemetry telemetry = new Telemetry(_myCode, new PropertiesValues {
                    { propName, _rnd.Next(10, 20).ToString() }
                }, DateTime.Now, _host);
                Console.WriteLine($"{_myCode}: [{telemetry.TimeMarker}] {telemetry.Values[propName]}");
                _messageManager.OnTelemetry(null, new EventTelemetryArgs(telemetry));
            }
        }
Example #4
0
        public MainPageModel()
        {
            #region Preparing

            var log = new Logger();
            Logging.Initialize(log);

            var db = new DataBaseSqlite();
            DbControlling.Initialize(db);

            //TODO убрать тру и пересоздание таблиц вслучае ошибки
            int res = db.Create(true);
            if (res != 0)
            {
                db.Create(true);
            }

            #endregion

            _subscribers = new ConcurrentBag <RemoteHostInfo>();
            _server      = new ServerManager(MulticastHostint, UdpPort, TcpPort);
            _sender      = new SenderManager(MulticastHostint, TcpPort, UdpPort);
            _dbManager   = new DbManager(_myCode);

            _messageManager = new MessageManager(MulticastHostint, _myCode, _sender, _server, _dbManager);
            _actualizer     = new Actualizer(_messageManager, _dbManager, _myCode);

            _requestManager = new RequestManager(_actualizer, _messageManager, _myCode);
            _Poped         += PopHandler;
            _Connected     += PopHandler;
            _messageManager.ConnectMessageReceived += (o, args) => _Connected?.Invoke(args.ConnectMessage);
            _messageManager.TelemetryReceived      += (o, args) => _Poped?.Invoke(args.TelemetryInfo);
            _server.ServerStart();
        }
Example #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="infoSpedizione"></param>
        protected void Spedisci(DocsPaWR.SpedizioneDocumento infoSpedizione)
        {
            // Spedizione del documento ai destinatari selezionati
            DocsPaWR.SchedaDocumento scheda = DocumentManager.getSelectedRecord();


            //filtro dagli allegati da spedire quelli associati a notifiche di tipo PEC
            List <DocsPaWR.Allegato> listAllegati = new List <DocsPaWR.Allegato>();

            if (scheda.allegati != null && scheda.allegati.Length > 0)
            {
                foreach (DocsPaWR.Allegato a in scheda.allegati)
                {
                    if (a.versionId != null)
                    {
                        if (!DocumentManager.AllegatoIsPEC(a.versionId).Equals("1"))
                        {
                            listAllegati.Add(a);
                        }
                    }
                }
                scheda.allegati = listAllegati.ToArray();
            }
            if (scheda.spedizioneDocumento != null)
            {
                scheda.spedizioneDocumento.tipoMessaggio = infoSpedizione.tipoMessaggio;
            }
            else
            {
                scheda.spedizioneDocumento = infoSpedizione;
            }
            infoSpedizione = SenderManager.SpedisciDocumento(scheda, infoSpedizione);

            //Andrea
            foreach (string s in infoSpedizione.listaDestinatariNonRaggiungibili)
            {
                messError = messError + s + Environment.NewLine;
            }
            if (infoSpedizione != null && infoSpedizione.listaDestinatariNonRaggiungibili != null)
            {
                infoSpedizione.listaDestinatariNonRaggiungibili = null;
            }

            if (messError != "")
            {
                Session.Add("MessError", messError);
            }
            //End Andrea

            // Impostazione dei dati di spedizione
            this.SetSpedizioneDocumento(infoSpedizione);

            this.FetchData(infoSpedizione);

            this.SetReturnValue(true);

            InitializesForm(infoSpedizione, scheda.tipoProto);
        }
Example #6
0
        public void SenderManager_BackupRouting()
        {
            // Setup
            var senderManager = new SenderManager();
			var senderFactory1Mock = new Mock<ISenderFactory>();
			var senderFactory2Mock = new Mock<ISenderFactory>();
			var senderFactory3Mock = new Mock<ISenderFactory>();
			var senderFactory4Mock = new Mock<ISenderFactory>();

			senderManager.Route<DateTime>(senderFactory1Mock.Object,
										  senderFactory2Mock.Object,
										  senderFactory3Mock.Object,
										  senderFactory4Mock.Object);

			senderFactory1Mock.SetupGet(m => m.Available).Returns(true);
			senderFactory1Mock.Setup(m => m.Sender()).Returns(new MockSender());
			senderFactory2Mock.SetupGet(m => m.Available).Returns(true);
			senderFactory2Mock.Setup(m => m.Sender()).Returns(new MockSender());
			senderFactory3Mock.SetupGet(m => m.Available).Returns(true);
			senderFactory3Mock.Setup(m => m.Sender()).Returns(new MockSender());
			senderFactory4Mock.SetupGet(m => m.Available).Returns(true);
			senderFactory4Mock.Setup(m => m.Sender()).Returns(new MockSender());

            // Run & Assert
            Assert.IsNotNull(senderManager.ResolveSender<DateTime>());
			senderFactory1Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory2Mock.Verify(m => m.Sender(), Times.Never);
			senderFactory3Mock.Verify(m => m.Sender(), Times.Never);
			senderFactory4Mock.Verify(m => m.Sender(), Times.Never);


			senderFactory1Mock.SetupGet(m => m.Available).Returns(false);

			Assert.IsNotNull(senderManager.ResolveSender<DateTime>());
			senderFactory1Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory2Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory3Mock.Verify(m => m.Sender(), Times.Never);
			senderFactory4Mock.Verify(m => m.Sender(), Times.Never);


			senderFactory2Mock.SetupGet(m => m.Available).Returns(false);

			Assert.IsNotNull(senderManager.ResolveSender<DateTime>());
			senderFactory1Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory2Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory3Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory4Mock.Verify(m => m.Sender(), Times.Never);

			senderFactory3Mock.SetupGet(m => m.Available).Returns(false);

			Assert.IsNotNull(senderManager.ResolveSender<DateTime>());
			senderFactory1Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory2Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory3Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory4Mock.Verify(m => m.Sender(), Times.Once);


        }
Example #7
0
        static void Main(string[] args)
        {
            var log = new Logger();

            Logging.Initialize(log);

            _server = new ServerManager(MulticastHostint, UdpPort, TcpPort);
            _sender = new SenderManager(MulticastHostint, TcpPort, UdpPort);
        }
Example #8
0
 public MainActivityModel()
 {
     _sender = new SenderManager(MulticastHostint, TcpPort, UdpPort);
     _server = new ServerManager(MulticastHostint, UdpPort, TcpPort);
     _server.ServerStart();
     _messageManager = new MessageManager(MulticastHostint, _myCode, _sender, _server, new [] { _host });
     _messageManager.RequestReceived += PopHandler;
     PropNames = new List <string> { /*PropName1, PropName2,*/
         PropName3
     };
     _setProps = new Dictionary <string, PropertiesValues>
     {
         //{ _setDevice, new PropertiesValues { { PropName1, "" } } },
         { _albom, new PropertiesValues {
               { PropName3, "" }
           } }
     };
 }
Example #9
0
        protected override void Load(ContainerBuilder builder)
        {
            //Proxy
            // var baseFolder = AppDomain.CurrentDomain.BaseDirectory;
            //var rootTemplates = Path.Combine(baseFolder, "PlantillasCorreo");

            string UrlCorreo_Api = Configuration.GetSection("AppSettings:UrlCorreo_Api").Value;

            //EmailSender.Templates = SenderManager.GetEmailTemplates(rootTemplates, EmailSender.Templates);
            //builder.RegisterType<EmailSender>().As<IEmailSender>().WithParameter("route", UrlCorreo_Api);

            var baseFolder    = System.IO.Directory.GetCurrentDirectory();
            var rootTemplates = System.IO.Path.Combine(baseFolder, "PlantillasCorreo");

            EmailSender.Templates = SenderManager.GetEmailTemplates(rootTemplates, EmailSender.Templates);
            builder.RegisterType <EmailSender>().As <IEmailSender>().WithParameter("route", UrlCorreo_Api);

            base.Load(builder);
        }
Example #10
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public DocsPaWR.SpedizioneDocumento GetSpedizioneDocumento()
        {
            DocsPaWR.SpedizioneDocumento instance = this.ViewState["SpedizioniDocumento"] as DocsPaWR.SpedizioneDocumento;

            if (instance == null || !instance.IdDocumento.Equals(DocumentManager.getSelectedRecord().docNumber))
            {
                if (DocumentManager.getSelectedRecord().spedizioneDocumento == null)
                {
                    instance = SenderManager.GetSpedizioneDocumento(DocumentManager.getSelectedRecord());
                }
                else
                {
                    instance = DocumentManager.getSelectedRecord().spedizioneDocumento;
                }

                this.ViewState["SpedizioniDocumento"] = instance;
            }

            return(instance);
        }
Example #11
0
        async public Task Execute(IJobExecutionContext context)
        {
            DbContextOptionsBuilder <ApplicationDbContext> optionbuilder = new DbContextOptionsBuilder <ApplicationDbContext>();

            optionbuilder.UseSqlServer("Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=SmsServiceAppDB;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
            ApplicationDbContext db = new ApplicationDbContext(optionbuilder.Options);

            var senderManager = new SenderManager(db);
            var messageLogger = new XmlLogger("XmlLog.xml");
            var smsSender     = new ConsoleSmsSender();

            var messages = await senderManager.GetMessagesToSend();

            foreach (var message in messages)
            {
                await smsSender.Send(message.Sender, message.Reciever, message.Text, "");

                messageLogger.Log(message.Sender, message.Reciever, message.Text, DateTime.UtcNow);
            }
            var Ids = from i in messages
                      select i.TimeId;
            await senderManager.SetTimesAsSent(Ids);
        }
Example #12
0
        /// <summary>
        /// Imposta la visibilità sul flag di selezione/deselezione dei destinatari
        /// </summary>
        protected bool VisibilitySelectDeselectRecipients(DocsPaWR.SpedizioneDocumento infoSped)
        {
            bool select = true;

            try
            {
                DocsPaWR.DocsPaWebService    ws             = new DocsPaWR.DocsPaWebService();
                DocsPaWR.SpedizioneDocumento infoSpedizione = new DocsPaWR.SpedizioneDocumento();

                if (infoSped == null)
                {
                    infoSpedizione = SenderManager.GetSpedizioneDocumento(DocumentManager.getSelectedRecord());
                }
                else
                {
                    infoSpedizione = infoSped;
                }

                if (this.TipoDestinatario == NttDataWA.Utils.CorrespondentTypeEnum.EsternoNonInteroperante)
                {
                    select = false;
                }

                if (this.TipoDestinatario == NttDataWA.Utils.CorrespondentTypeEnum.Esterno &&
                    ((infoSpedizione.DestinatariEsterni.Count(d => d.DatiDestinatari[0].tipoIE != null && d.DatiDestinatari[0].tipoIE.Equals("I")) > 0 &&
                      (infoSpedizione.DestinatariEsterni.Count(d => d.DatiDestinatari[0].tipoIE != null && d.DatiDestinatari[0].tipoIE.Equals("E")) > 0))))
                {
                    select = false;
                }
            }
            catch (Exception ex)
            {
                select = false;
            }
            return(select);
        }
Example #13
0
        protected void SenderBtnSend_Click(object sender, EventArgs e)
        {
            try {
                HttpContext.Current.Session.Remove("DestinatariNonRaggiunti");
                if (cboTipoRicevutaPec.Visible == true)
                {
                    SenderManager.getSetRicevutaPec(cboRegistriRF.SelectedValue, null, cboTipoRicevutaPec.SelectedValue, false, ddl_caselle.SelectedValue);
                }
                try
                {
                    DocsPaWR.ConfigSpedizioneDocumento config         = SenderManager.GetConfigSpedizioneDocumento();
                    DocsPaWR.SpedizioneDocumento       infoSpedizione = this.GetSpedizioneDocumento();

                    // Aggiornamento dati destinatari selezionati per la spedizione
                    this.listaDestinatariInterni.SaveData(infoSpedizione);
                    this.listaDestinatariInteroperanti.SaveData(infoSpedizione);
                    this.listaDestinatatiInteropSempl.SaveData(infoSpedizione);

                    bool almostOne = (this.listaDestinatariInterni.Items > 0 && this.listaDestinatariInterni.AlmostOneChecked);

                    if (!almostOne)
                    {
                        almostOne = (this.listaDestinatariInteroperanti.Items > 0 && this.listaDestinatariInteroperanti.AlmostOneChecked) || (this.listaDestinatatiInteropSempl.Items > 0 && this.listaDestinatatiInteropSempl.AlmostOneChecked);
                    }


                    if (!almostOne)
                    {
                        this.ShowErrorMessage("WarningSenderRecipients");
                    }

                    /*else if (!this.IsDocumentoAcquisito && config.AvvisaSuSpedizioneDocumento)
                     * {
                     *  this.msgSpedisci.Confirm("E' stata richiesta la spedizione senza aver associato alcun documento elettronico.\\nSi vuole eseguire le operazioni di trasmissione e spedizione automatiche?");
                     * }*///Gestito con nuovo messaggio
                    else
                    {
                        bool destInteropRGSSelected = (from d in infoSpedizione.DestinatariEsterni where d.InteroperanteRGS && d.IncludiInSpedizione select d).FirstOrDefault() != null;

                        DocsPaWR.SchedaDocumento schedaDoc = DocumentManager.getSelectedRecord();
                        if (destInteropRGSSelected && schedaDoc.template != null && !string.IsNullOrEmpty(schedaDoc.template.ID_CONTESTO_PROCEDURALE))
                        {
                            List <DocsPaWR.Messaggio> messaggiSuccessivi = SenderManager.GetMessaggiSuccessiviFlussoProcedurale(schedaDoc);

                            //se sono presenti più di uno messaggio lascio scegliere all'utente.
                            if (messaggiSuccessivi != null && messaggiSuccessivi.Count > 1)
                            {
                                this.NextMessages = messaggiSuccessivi;
                                this.InfoSpedizioneSelectMessage = infoSpedizione;
                                ScriptManager.RegisterStartupScript(this, this.GetType(), "SelectNextMessage", "ajaxModalPopupSelectNextMessage();", true);
                                return;
                            }
                            if (messaggiSuccessivi != null && messaggiSuccessivi.Count == 1)
                            {
                                infoSpedizione.tipoMessaggio = messaggiSuccessivi[0];
                            }
                        }
                        else
                        {
                            infoSpedizione.tipoMessaggio = null;
                        }
                        this.Spedisci(infoSpedizione);
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }

                if (Session["MessError"] != null)
                {
                    messError = Session["MessError"].ToString();

                    string msgDesc  = "WarningDocumentCustom";
                    string errFormt = Server.UrlEncode(messError);
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "ajaxDialogModal", "if (parent.fra_main) {parent.fra_main.ajaxDialogModal('" + utils.FormatJs(msgDesc) + "', 'warning', '', '" + utils.FormatJs(errFormt) + "');} else {parent.ajaxDialogModal('" + utils.FormatJs(msgDesc) + "', 'warning', '', '" + utils.FormatJs(errFormt) + "');}; ", true);

                    Session.Remove("MessError");
                    messError = string.Empty;
                }

                if (listaDestinatariInterni.Items > 0)
                {
                    UpdateDestinatariInterni.Update();
                }
                if (listaDestinatariInteroperanti.Items > 0)
                {
                    UpdateDestinatariInteroperanti.Update();
                }
                if (listaDestinatatiInteropSempl.Items > 0)
                {
                    UpdateDestinatatiInteropSempl.Update();
                }
                if (listaDestinatariNonInteroperanti.Items > 0)
                {
                    UpdateDestinatariNonInteroperanti.Update();
                }

                ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "function", "<script>reallowOp();</script>", false);
                NttDataWA.DocsPaWR.SchedaDocumento documentTab = DocumentManager.getSelectedRecord();
                //aggiorno l'elenco allegati in sessione(per ricevute PITRE)
                if (documentTab != null && !string.IsNullOrEmpty(documentTab.docNumber))
                {
                    DocumentManager.setSelectedRecord(DocumentManager.getDocumentDetails(this.Page, documentTab.docNumber, documentTab.docNumber));
                }

                if (!string.IsNullOrEmpty(this.DestinatariNonRaggiunti))
                {
                    string msgDesc  = "WarningSendingRecipients";
                    string errFormt = this.DestinatariNonRaggiunti;
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "ajaxDialogModal", "if (parent.fra_main) {parent.fra_main.ajaxDialogModal('" + utils.FormatJs(msgDesc) + "', 'warning', '', '" + utils.FormatJs(errFormt) + "');} else {parent.ajaxDialogModal('" + utils.FormatJs(msgDesc) + "', 'warning', '', '" + utils.FormatJs(errFormt) + "');}; ", true);
                    HttpContext.Current.Session.Remove("DestinatariNonRaggiunti");
                }
            }
            catch (System.Exception ex)
            {
                UIManager.AdministrationManager.DiagnosticError(ex);
                return;
            }
        }
Example #14
0
        /// <summary>
        /// Effettua dei controlli legati al tipo di mezzo di spedizione scelto per ogni singolo destinatario
        /// </summary>
        /// <param name="destinatari"></param>
        protected void CheckMezzoDiSpedizione(DocsPaWR.DestinatarioEsterno[] destinatari)
        {
            DocsPaWR.DocsPaWebService ws = new DocsPaWR.DocsPaWebService();
            foreach (DocsPaWR.DestinatarioEsterno dest in destinatari)
            {
                //se destinatario diverso da occasionale
                if (!dest.DatiDestinatari[0].tipoCorrispondente.ToUpper().Equals("O"))
                {
                    //se il destinatario di default è interoperante ma per la trasmissione corrente, ha scelto un mezzo di trasmissione non interoperante, allora
                    // aggiorno le informazioni sullo stato.
                    if (dest.DatiDestinatari[0].canalePref != null)
                    {
                        if ((!string.IsNullOrEmpty(dest.DatiDestinatari[0].canalePref.descrizione)) &&
                            (!dest.DatiDestinatari[0].canalePref.descrizione.ToUpper().Equals("MAIL")) &&
                            (!dest.DatiDestinatari[0].canalePref.descrizione.ToUpper().Equals("INTEROPERABILITA")) &&
                            (!dest.DatiDestinatari[0].canalePref.descrizione.ToUpper().Equals("PORTALE")) &&
                            (!dest.DatiDestinatari[0].canalePref.typeId.Equals(SimplifiedInteroperabilityManager.SimplifiedInteroperabilityId)))
                        //((!string.IsNullOrEmpty(dest.DatiDestinatari[0].canalePref.typeId) && !dest.DatiDestinatari[0].canalePref.typeId.ToUpper().Equals("S")) ||
                        //(!string.IsNullOrEmpty(dest.DatiDestinatari[0].canalePref.tipoCanale) && !dest.DatiDestinatari[0].canalePref.tipoCanale.ToUpper().Equals(InteroperabilitaSemplificataManager.SimplifiedInteroperabilityId))))
                        {
                            // destinatario non interoperante
                            dest.Interoperante = false;
                            dest.StatoSpedizione.Descrizione = "mezzo di spedizione: " + dest.DatiDestinatari[0].canalePref.descrizione;
                        }
                    }
                    //DocsPaWR.Canale canalePref = UserManager.getCorrispondentBySystemID(dest.DatiDestinatari[0].systemId).canalePref;
                    DocsPaWR.Canale canalePref = SenderManager.getDatiCanPref(dest.DatiDestinatari[0]);
                    //se il canale preferenziale non è definito ed il mezzo di spedizione per la trasmissione corrente non è interoperante,
                    //allora aggiorno le informazioni sullo stato ed imposto il corrispondente come non interoperante
                    if (canalePref == null && !dest.DatiDestinatari[0].tipoIE.Equals("I"))
                    {
                        // Ticket Unitn-Apss dopo rilascio reperortori 3.19.x-brach.. impossibile spedire i documenti se un destinatario non ha il mezzo
                        //if (
                        //    !string.IsNullOrEmpty(dest.DatiDestinatari[0].canalePref.descrizione) &&
                        //    ((dest.DatiDestinatari[0].canalePref.descrizione.ToUpper().Equals("MAIL")) ||
                        //    (dest.DatiDestinatari[0].canalePref.descrizione.ToUpper().Equals("INTEROPERABILITA"))))
                        //{
                        dest.Interoperante = false;
                        dest.StatoSpedizione.Descrizione = "Canale preferenziale non definito";
                        //}
                    }

                    if (canalePref != null &&
                        ((!string.IsNullOrEmpty(canalePref.descrizione)) &&
                         (!canalePref.descrizione.ToUpper().Equals("MAIL")) &&
                         (!canalePref.descrizione.ToUpper().Equals("INTEROPERABILITA")) &&
                         (!canalePref.descrizione.ToUpper().Equals("PORTALE"))) &&
                        (dest.DatiDestinatari[0].canalePref != null && !dest.DatiDestinatari[0].canalePref.typeId.Equals(SimplifiedInteroperabilityManager.SimplifiedInteroperabilityId)))
                    //((!string.IsNullOrEmpty(dest.DatiDestinatari[0].canalePref.typeId) && !dest.DatiDestinatari[0].canalePref.typeId.ToUpper().Equals("S")) ||
                    //(!string.IsNullOrEmpty(dest.DatiDestinatari[0].canalePref.tipoCanale) && !dest.DatiDestinatari[0].canalePref.tipoCanale.ToUpper().Equals(InteroperabilitaSemplificataManager.SimplifiedInteroperabilityId))))
                    {
                        if ((!string.IsNullOrEmpty(dest.DatiDestinatari[0].canalePref.descrizione)) &&
                            ((!dest.DatiDestinatari[0].canalePref.descrizione.ToUpper().Equals("MAIL")) &&
                             (!dest.DatiDestinatari[0].canalePref.descrizione.ToUpper().Equals("INTEROPERABILITA")) &&
                             (!dest.DatiDestinatari[0].canalePref.descrizione.ToUpper().Equals("PORTALE")) &&
                             (!dest.DatiDestinatari[0].canalePref.typeId.Equals(SimplifiedInteroperabilityManager.SimplifiedInteroperabilityId))))
                        {
                            dest.Interoperante = false;
                            dest.StatoSpedizione.Descrizione = "Canale preferenziale non interoperante.\nmezzo di spedizione: " + dest.DatiDestinatari[0].canalePref.descrizione;
                        }
                    }
                }
            }
        }
Example #15
0
        public void SenderManager_AlwaysRouting()
        {
            // Setup
			var senderManager = new SenderManager();
			var senderFactory1Mock = new Mock<ISenderFactory>();
			var senderFactory2Mock = new Mock<ISenderFactory>();

			senderManager.Route<DateTime>().Always(senderFactory1Mock.Object).Backup(senderFactory2Mock.Object);

			senderFactory1Mock.SetupGet(m => m.Available).Returns(true);
			senderFactory1Mock.Setup(m => m.Sender()).Returns(new MockSender());
			senderFactory2Mock.SetupGet(m => m.Available).Returns(true);
			senderFactory2Mock.Setup(m => m.Sender()).Returns(new MockSender());

            // Run & Assert
            Assert.IsNotNull(senderManager.ResolveSender<DateTime>());
			Assert.IsNotNull(senderManager.ResolveSender<DateTime>(DateTime.Now));
        }
Example #16
0
        public void SenderManager_TestConditionalRouting()
        {
            // Setup
			var senderManager = new SenderManager();
			var senderFactory1Mock = new Mock<ISenderFactory>();
			var senderFactory2Mock = new Mock<ISenderFactory>();
			var senderFactory3Mock = new Mock<ISenderFactory>();
			var senderFactory4Mock = new Mock<ISenderFactory>();

            senderManager.Route<DateTime>().When(dt => dt.Year == 2015, senderFactory1Mock.Object)
										   .When(dt => dt.Year == 2016, senderFactory2Mock.Object)
										   .When(dt => dt.Year == 2017, senderFactory3Mock.Object)
										   .Else(senderFactory4Mock.Object);

			senderFactory1Mock.SetupGet(m => m.Available).Returns(true);
			senderFactory1Mock.Setup(m => m.Sender()).Returns(new MockSender());
			senderFactory2Mock.SetupGet(m => m.Available).Returns(true);
			senderFactory2Mock.Setup(m => m.Sender()).Returns(new MockSender());
			senderFactory3Mock.SetupGet(m => m.Available).Returns(true);
			senderFactory3Mock.Setup(m => m.Sender()).Returns(new MockSender());
			senderFactory4Mock.SetupGet(m => m.Available).Returns(true);
			senderFactory4Mock.Setup(m => m.Sender()).Returns(new MockSender());

            // Run & Assert
			Assert.IsNotNull(senderManager.ResolveSender<DateTime>(new DateTime(2015, 02, 02)));
			senderFactory1Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory2Mock.Verify(m => m.Sender(), Times.Never);
			senderFactory3Mock.Verify(m => m.Sender(), Times.Never);
			senderFactory4Mock.Verify(m => m.Sender(), Times.Never);

			Assert.IsNotNull(senderManager.ResolveSender<DateTime>(new DateTime(2016, 03, 03)));
			senderFactory1Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory2Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory3Mock.Verify(m => m.Sender(), Times.Never);
			senderFactory4Mock.Verify(m => m.Sender(), Times.Never);

			Assert.IsNotNull(senderManager.ResolveSender<DateTime>(new DateTime(2017, 04, 04)));
			senderFactory1Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory2Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory3Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory4Mock.Verify(m => m.Sender(), Times.Never);

			Assert.IsNotNull(senderManager.ResolveSender<DateTime>(new DateTime(2014, 01, 01)));
			senderFactory1Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory2Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory3Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory4Mock.Verify(m => m.Sender(), Times.Once);

			Assert.IsNotNull(senderManager.ResolveSender<DateTime>(new DateTime(2018, 01, 01)));
			senderFactory1Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory2Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory3Mock.Verify(m => m.Sender(), Times.Once);
			senderFactory4Mock.Verify(m => m.Sender(), Times.AtLeastOnce);

        }