Exemplo n.º 1
0
        /// <summary>
        /// Passa oggetto su Slot Fornito
        /// </summary>
        /// <param name="slotIn"></param>
        public void SwitchToSlot(BusinessSlot slotIn)
        {
            if (slotIn == null || slotIn.Terminated)
            {
                throw new ObjectException(Resources.ObjectMessages.Base_SwithToNullSession);
            }

            //Imposta sessione
            this.SetSlot(slotIn);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Cripta il testo fornito
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="clearText"></param>
        /// <returns></returns>
        internal string Encrypt(BusinessSlot slot, Property prop, string clearText)
        {
            var sEnc = string.Concat(S_ENC_PREFIX, RSA_AES_Encryptor.AES_Encrypt_B64_Text(clearText, slot.PropertyGet(this.mSlotKeyProperty).ToString(), Encoding.UTF8));

            if (sEnc.Length > this.mFieldLen)
            {
                throw new ObjectException(Resources.ObjectMessages.Prop_Enc_Wrong_Length, prop.Name, this.mFieldLen);
            }

            return(sEnc);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Imposta uno slot sulla lista corrente
        /// </summary>
        public new void SwitchToSlot(BusinessSlot slot)
        {
            base.SwitchToSlot(slot);

            //La imposta su tutti i sotto oggetti se istanziati
            for (int i = 0; i < this.mInnerList.Count; i++)
            {
                if (this.mInnerList[i].Object != null)
                {
                    this.mInnerList[i].Object.SwitchToSlot(slot);
                }
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Decripta il testo fornito
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="encText"></param>
        /// <returns></returns>
        internal string Decrypt(BusinessSlot slot, Property prop, string encText)
        {
            if (!this.IsEncrypted(encText))
            {
                return(encText);
            }

            try
            {
                return(RSA_AES_Encryptor.AES_Decrypt_B64_Text(encText.Substring(S_ENC_PREFIX.Length), slot.PropertyGet(this.mSlotKeyProperty).ToString(), Encoding.UTF8));
            }
            catch (Exception ex)
            {
                throw new ObjectException(Resources.ObjectMessages.Enc_Decrypt_Failure, prop.Schema.ClassName, prop.Name, ex.Message);
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Crea un codice hash in formato stringa leggibile
        /// </summary>
        /// <param name="slot"></param>
        /// <param name="schema"></param>
        /// <param name="pkvalues"></param>
        /// <returns></returns>
        internal static string GetObjectHashString(BusinessSlot slot, ClassSchema schema, object[] pkvalues)
        {
            const string SEP = @"|";
            var          db  = slot.DbGet(schema);

            return(string.Concat((schema.IsDefaultDb ? Constants.STR_DB_DEFAULT : schema.DbConnDef.Name),
                                 SEP, db.HashCode.ToString(),
                                 SEP, schema.InternalID.ToString(),
                                 SEP, slot.DbPrefixGetTableName(schema.TableDef),
                                 SEP, JoinString(SEP, pkvalues)));

            //Versione compressa con doppio hash inverso
            //var sHashBase = string.Concat((schema.IsDefaultDb ? Constants.STR_DB_DEFAULT : schema.DbConnDef.Name),
            //    SEP, db.HashCode.ToString(),
            //    SEP, slot.DbPrefixGetTableName(schema.TableDef),
            //    SEP, JoinString(SEP, pkvalues));

            //return string.Concat(sHashBase.GetHashCode().ToString(),SEP, StringHelper.Reverse(sHashBase).GetHashCode().ToString() );
        }
Exemplo n.º 6
0
        /// <summary>
        /// Crea istanza di BusinessObject utilizzando un costruttore dinamico
        /// </summary>
        /// <param name="tBiz"></param>
        /// <param name="slot"></param>
        /// <param name="keyName"></param>
        /// <param name="args"></param>
        /// <returns></returns>
        internal BusinessObjectBase CreateBizObj(Type tBiz, BusinessSlot slot, bool createNew, string keyName, params object[] args)
        {
            try
            {
                var entry = ProxyAssemblyCache.Instance.GetBizEntry(tBiz);

                DataObjectBase oDal;

                if (string.IsNullOrEmpty(keyName))
                {
                    oDal = slot.CreateObjectByType(entry.DalType);
                }
                else
                {
                    if (createNew)
                    {
                        oDal = slot.LoadObjOrNewInternalByKEY(keyName, entry.DalType, args);
                    }
                    else
                    {
                        oDal = slot.LoadObjectInternalByKEY(keyName, entry.DalType, true, args);
                    }
                }

                //Crea oggetto
                return(CreateBizObj(entry, oDal));
            }
            catch (KeyNotFoundException)
            {
                throw new TypeFactoryException("Tipo {0} non trovato nella cache. Anomalia grave!", tBiz.Name);
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null)
                {
                    throw ex.InnerException;
                }
                else
                {
                    throw ex;
                }
            }
        }
Exemplo n.º 7
0
 /// <summary>
 /// Costruttore base
 /// </summary>
 /// <param name="slotIn"></param>
 public DataUtil(BusinessSlot slotIn)
 {
     //Imposta oggetto
     this.SetSlot(slotIn);
 }
Exemplo n.º 8
0
 internal override void SetSlot(BusinessSlot slot)
 {
     base.SetSlot(slot);
     this.mLoadFullObjects = this.Slot.Conf.LoadFullObjects;
 }
Exemplo n.º 9
0
        protected static int TaskExecute()
        {
            WriteLog(@"Creazione slot");

            var esito = 0;

            var bSendEmail = _SendMail;

            WriteLog("Invio email attivo: {0}", bSendEmail.ToString());

            using (var slot = new BusinessSlot(@"Default"))
            {
                WriteLog(@"Caricamento estrazioni da valutare");

                var reports = slot.CreateList <ReportEstrazioneLista>()
                              .SearchByColumn(new FilterEQUAL(nameof(ReportEstrazione.Attivo), 1)
                                              .And(new FilterLESSEQ(nameof(ReportEstrazione.DataInizio), DateTime.Today)
                                                   .And(new FilterGREATEREQ(nameof(ReportEstrazione.DataFine), DateTime.Today))));

                WriteLog("Numero estrazioni da valutare: {0}", reports.Count);

                WriteLog(@"Avvio valutazione estrazioni");
                //Usa i biz
                var reportsBiz = new ReportEstrazioneBIZ_Lista(reports);

                //Se presenti dei report da forzare li filtra dall'elenco
                IEnumerable <ReportEstrazioneBIZ> reportExec;
                if (_ReportForzati.Length > 0)
                {
                    //Include solo i report forzati
                    reportExec = reportsBiz.Where(r => _ReportForzati.Contains(r.DataObj.Id)).ToList();
                }
                else
                {
                    //Include solo i report che rientrano nella schedulazione
                    reportExec = reportsBiz.Where(r => r.CanRunSchedulato).ToList();
                }

                var iCount = reportExec.Count();
                var index  = 1;

                WriteLog("Numero estrazioni da eseguire: {0}", iCount);


                foreach (var repBiz in reportExec)
                {
                    WriteLog(SEP);
                    //RaiseOnProgress(index, iCount);
                    WriteLog("Avvio report {0}", repBiz.DataObj.Nome);
                    try
                    {
                        //Esegue
                        repBiz.Run();

                        //Invia email
                        if (bSendEmail)
                        {
                            WriteLog("Previsto invio mail {0}", repBiz.IsPrevistoInvioMail ? "SI" : "NO");

                            if (repBiz.IsPrevistoInvioMail)
                            {
                                var mails = repBiz.SendEmail();

                                foreach (var item in mails)
                                {
                                    WriteLog("Mail inviata");
                                    WriteLog(" >> MailTO: {0}", item.MailTO);
                                    WriteLog(" >> MailCC: {0}", item.MailCC);
                                    WriteLog(" >> MailBCC: {0}", item.MailBCC);
                                }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        esito = 1;
                        WriteLog("**Errore report {0}: {1}", repBiz.DataObj.Nome, e.Message);
                        WriteLog(e.StackTrace);
                    }
                    finally
                    {
                        index++;
                        WriteLog("Fine report {0}", repBiz.DataObj.Nome);
                    }
                }
            }

            return(esito);
        }
Exemplo n.º 10
0
 /// <summary>
 /// Imposta lo slot sull'oggetto
 /// </summary>
 /// <param name="slot"></param>
 internal virtual void SetSlot(BusinessSlot slot)
 {
     this.mSlot = slot;
 }