private void CreateMailData(Shipping _sp, EmailType _etype, ExternalRole _role, List <MailData> _Operarion2Do)
        {
            MailData _ced = new MailData()
            {
                EmailType   = _etype,
                Role        = _role,
                ShippmentID = _sp.Id.Value,
                URL         = this.m_OnWorkflowActivated_WorkflowProperties.Site.Url
            };

            _Operarion2Do.Add(_ced);
        }
        private void SendingEmailsReplicator_ChildInitialized(object sender, ReplicatorChildEventArgs e)
        {
            MailData _md = (MailData)e.InstanceData;

            try
            {
                using (EntitiesDataContext EDC = new EntitiesDataContext(_md.URL)
                {
                    ObjectTrackingEnabled = false
                })
                {
                    Shipping        _sp    = Element.GetAtIndex <Shipping>(EDC.Shipping, _md.ShippmentID.ToString());
                    IEmailGrnerator _msg   = default(IEmailGrnerator);
                    string          _cause = default(string);
                    switch (_md.EmailType)
                    {
                    case EmailType.Delayed:
                        _msg = new DelayedShippingVendorTemplate()
                        {
                            TruckTitle = _sp.TruckTitle.Title(),
                        };
                        _cause = "ShipmentDelayed".GetLocalizedString();
                        break;

                    case EmailType.RequestData:
                        switch (_md.Role)
                        {
                        case ExternalRole.Vendor:
                        case ExternalRole.Forwarder:
                            _msg = new SupplementData2hVendorTemplate();
                            break;

                        case ExternalRole.Escort:
                            _msg = new SupplementData2hEscortTemplate();
                            break;

                        default:
                            break;
                        }
                        _cause = "DataRequestShipment".GetLocalizedString();
                        break;

                    case EmailType.Canceled:
                        _msg   = new CanceledShippingVendorTemplate();
                        _cause = "ShipmentCanceled".GetLocalizedString();
                        break;
                    } //switch (_md.EmailType)
                    switch (_md.Role)
                    {
                    case ExternalRole.Vendor:
                    case ExternalRole.Forwarder:
                        _msg.PartnerTitle = _sp.PartnerTitle.Title();
                        m_CarrierNotificationSendEmail_To = _sp.PartnerTitle != null?_sp.PartnerTitle.EmailAddress.UnknownIfEmpty() : CommonDefinition.UnknownEmail;

                        break;

                    case ExternalRole.Escort:
                        _msg.PartnerTitle = _sp.Shipping2PartnerTitle.Title();
                        m_CarrierNotificationSendEmail_To = _sp.Shipping2PartnerTitle != null?_sp.Shipping2PartnerTitle.EmailAddress.UnknownIfEmpty() : CommonDefinition.UnknownEmail;

                        break;

                    default:
                        break;
                    } //switch (_md.Role)
                    _msg.ShippingTitle = _sp.Title();
                    _msg.StartTime     = _sp.StartTime.Value;
                    _msg.Subject       = _sp.Title().Insert(0, _cause);
                    ShepherdRole _ccRole = _sp.IsOutbound.Value ? ShepherdRole.OutboundOwner : ShepherdRole.InboundOwner;
                    string       _cc     = DistributionList.GetEmail(_ccRole, EDC);
                    m_CarrierNotificationSendEmail_Subject1 = _sp.Title().Insert(0, _cause);
                    m_CarrierNotificationSendEmail_CC       = _cc;
                    m_CarrierNotificationSendEmail_From     = _cc;
                    m_CarrierNotificationSendEmail_Body     = _msg.TransformText();
                } //using
            }
            catch (Exception ex)
            {
                ReportException("SendingEmailsReplicator_ChildInitialized", ex);
            }
        }