Exemple #1
0
 public void AddEmailToContact(string email, ContentItem contact)
 {
     if (!string.IsNullOrEmpty(email))
     {
         CommunicationEmailRecord cmr = null;
         if (contact != null)
         {
             cmr = _repositoryCommunicationEmailRecord.Fetch(x => x.Email == email && x.EmailContactPartRecord_Id == contact.Id).FirstOrDefault();
         }
         if (cmr != null)
         {
             if (cmr.EmailContactPartRecord_Id != contact.Id)
             {
                 cmr.EmailContactPartRecord_Id = contact.Id;
                 cmr.DataModifica = DateTime.Now;
                 _repositoryCommunicationEmailRecord.Update(cmr);
                 _repositoryCommunicationEmailRecord.Flush();
             }
         }
         else
         {
             CommunicationEmailRecord newrec = new CommunicationEmailRecord();
             newrec.Email = email;
             newrec.EmailContactPartRecord_Id = contact.Id;
             newrec.Id              = 0;
             newrec.Validated       = true;
             newrec.DataInserimento = DateTime.Now;
             newrec.DataModifica    = DateTime.Now;
             newrec.Produzione      = true;
             _repositoryCommunicationEmailRecord.Create(newrec);
             _repositoryCommunicationEmailRecord.Flush();
         }
     }
 }
Exemple #2
0
        private void CreateMailForContact(string mail, int contactId)
        {
            CommunicationEmailRecord cer = new CommunicationEmailRecord();

            cer.Email                     = mail;
            cer.DataInserimento           = DateTime.Now;
            cer.DataModifica              = DateTime.Now;
            cer.Produzione                = true;
            cer.Validated                 = true;
            cer.EmailContactPartRecord_Id = contactId;
            _repositoryCommunicationEmailRecord.Create(cer);
        }
Exemple #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="part"></param>
        /// <param name="context"></param>
        protected override void Importing(EmailContactPart part, ImportContentContext context)
        {
            var emailRecord = context.Data.Element(part.PartDefinition.Name).Elements("EmailRecord");

            if (emailRecord != null)
            {
                if (part.EmailRecord == null)
                {
                    part.EmailRecord = new List <CommunicationEmailRecord>();
                }
                foreach (var rec in emailRecord)
                {
                    string locEmail = "";
                    var    Email    = rec.Attribute("Email");
                    if (Email != null)
                    {
                        locEmail = Email.Value;
                    }

                    CommunicationEmailRecord recMail = part.Record.EmailRecord.FirstOrDefault(x =>
                                                                                              x.Email == locEmail);
                    if (recMail == null)
                    {
                        recMail = new CommunicationEmailRecord();
                        recMail.EmailContactPartRecord_Id = part.Id;
                        recMail.Email           = locEmail;
                        recMail.DataInserimento = DateTime.Now; //valore iniziale temporaneo per poter creare il record
                        recMail.DataModifica    = DateTime.Now; //valore iniziale temporaneo per poter creare il record
                        _repoEmail.Create(recMail);
                        part.EmailRecord.Add(recMail);
                    }
                    var Language = rec.Attribute("Language");
                    if (Language != null)
                    {
                        recMail.Language = Language.Value;
                    }

                    var Validated = rec.Attribute("Validated");
                    if (Validated != null)
                    {
                        recMail.Validated = Convert.ToBoolean(Validated.Value);
                    }

                    var DataInserimento = rec.Attribute("DataInserimento");
                    if (DataInserimento != null)
                    {
                        recMail.DataInserimento = Convert.ToDateTime(DataInserimento.Value, CultureInfo.InvariantCulture);
                    }

                    var DataModifica = rec.Attribute("DataModifica");
                    if (DataModifica != null)
                    {
                        recMail.DataModifica = Convert.ToDateTime(DataModifica.Value, CultureInfo.InvariantCulture);
                    }

                    var Produzione = rec.Attribute("Produzione");
                    if (Produzione != null)
                    {
                        recMail.Produzione = Convert.ToBoolean(Produzione.Value);
                    }

                    var AccettatoUsoCommerciale = rec.Attribute("AccettatoUsoCommerciale");
                    if (AccettatoUsoCommerciale != null)
                    {
                        recMail.AccettatoUsoCommerciale = Convert.ToBoolean(AccettatoUsoCommerciale.Value);
                    }

                    var AutorizzatoTerzeParti = rec.Attribute("AutorizzatoTerzeParti");
                    if (AutorizzatoTerzeParti != null)
                    {
                        recMail.AutorizzatoTerzeParti = Convert.ToBoolean(AutorizzatoTerzeParti.Value);
                    }

                    var KeyUnsubscribe = rec.Attribute("KeyUnsubscribe");
                    if (KeyUnsubscribe != null)
                    {
                        recMail.KeyUnsubscribe = KeyUnsubscribe.Value;
                    }

                    var DataUnsubscribe = rec.Attribute("DataUnsubscribe");
                    if (DataUnsubscribe != null)
                    {
                        recMail.DataUnsubscribe = Convert.ToDateTime(DataUnsubscribe.Value, CultureInfo.InvariantCulture);
                    }
                }
                _repoEmail.Flush();
            }
        }
Exemple #4
0
        protected override DriverResult Editor(EmailContactPart part, IUpdateModel updater, dynamic shapeHelper)
        {
            View_EmailVM oldviewModel = new View_EmailVM();

            updater.TryUpdateModel(oldviewModel, Prefix, null, null);
            bool error = false;

            _transaction.Demand();
            foreach (View_EmailVM_element vmel in oldviewModel.Elenco)
            {
                if ((vmel.Delete || string.IsNullOrEmpty(vmel.Email)) && vmel.Id > 0)
                {
                    CommunicationEmailRecord cmr = _repoEmail.Fetch(x => x.Id == vmel.Id).FirstOrDefault();
                    _repoEmail.Delete(cmr);
                }
                else
                if (!vmel.Delete)
                {
                    if (!string.IsNullOrEmpty(vmel.Email))
                    {
                        if (_repoEmail.Fetch(x => x.Email == vmel.Email && x.Id != vmel.Id).Count() > 0)
                        {
                            error = true;
                            updater.AddModelError("Error", T("Email can't be assigned is linked to other contact"));
                        }
                    }
                    if (vmel.Id > 0)
                    {
                        CommunicationEmailRecord cmr = _repoEmail.Fetch(x => x.Id == vmel.Id).FirstOrDefault();
                        if (cmr.Email != vmel.Email || cmr.Validated != vmel.Validated ||
                            cmr.AccettatoUsoCommerciale != vmel.AccettatoUsoCommerciale ||
                            cmr.AutorizzatoTerzeParti != vmel.AutorizzatoTerzeParti)
                        {
                            cmr.Email     = vmel.Email;
                            cmr.Validated = vmel.Validated;
                            cmr.AccettatoUsoCommerciale = vmel.AccettatoUsoCommerciale;
                            cmr.AutorizzatoTerzeParti   = vmel.AutorizzatoTerzeParti;
                            cmr.DataModifica            = DateTime.Now;
                            _repoEmail.Update(cmr);
                        }
                    }
                    else
                    {
                        View_EmailVM_element     vm  = new View_EmailVM_element();
                        CommunicationEmailRecord cmr = new CommunicationEmailRecord();
                        _mapper.Map <View_EmailVM_element, CommunicationEmailRecord>(vm, cmr);
                        cmr.Email     = vmel.Email;
                        cmr.Validated = vmel.Validated;
                        cmr.AccettatoUsoCommerciale   = vmel.AccettatoUsoCommerciale;
                        cmr.AutorizzatoTerzeParti     = vmel.AutorizzatoTerzeParti;
                        cmr.EmailContactPartRecord_Id = part.Id;
                        _repoEmail.Create(cmr);
                    }
                }
            }
            if (error == true)
            {
                _transaction.Cancel();
            }
            else
            {
                _repoEmail.Flush();
            }
            //    _transaction.RequireNew();
            return(Editor(part, shapeHelper));
        }