// METODI

        public void AddTo(string email, string name = null)
        {
            Tos.Add(new EmailAddress()
            {
                Email = email, Name = name
            });
        }
示例#2
0
        /// <summary>
        /// 邮件消息对象
        /// </summary>
        private MailMessage GetClient()
        {
            if (string.IsNullOrEmpty(Tos))
            {
                return(null);
            }
            var mailMessage = new MailMessage();

            //多个接收者
            foreach (var str in Tos.Split(','))
            {
                mailMessage.To.Add(str);
            }
            mailMessage.From            = new MailAddress(Username, Username);
            mailMessage.Subject         = Subject;
            mailMessage.Body            = Body;
            mailMessage.IsBodyHtml      = true;
            mailMessage.BodyEncoding    = System.Text.Encoding.UTF8;
            mailMessage.SubjectEncoding = System.Text.Encoding.UTF8;
            mailMessage.Priority        = MailPriority.High;
            foreach (var item in Attachments)
            {
                mailMessage.Attachments.Add(item);
            }

            return(mailMessage);
        }
示例#3
0
 /// <summary>
 /// EmailMessage uses a from address of [email protected]
 /// </summary>
 public EmailMessage(string subject, string text, string html, EmailAddress to)
 {
     Subject = subject;
     From    = new EmailAddress("*****@*****.**", "Arragro Support");
     Text    = text;
     Html    = html;
     Tos.Add(to);
 }
示例#4
0
 public EmailMessage(string subject, EmailAddress from, string text, string html, EmailAddress to)
 {
     Subject = subject;
     From    = from;
     Text    = text;
     Html    = html;
     Tos.Add(to);
 }
示例#5
0
        public void AddTo(Email email)
        {
            if (Tos == null)
            {
                Tos = new List <Email>();
            }

            Tos.Add(email);
        }
示例#6
0
 public bool AddTo(Point point)
 {
     if (InFroms(point))
     {
         return(false);
     }
     Tos.Add(point);
     return(true);
 }
示例#7
0
        private static void Main()
        {
            Console.CursorVisible = false;
            var tos = new Tos(TransponderReceiverFactory.CreateTransponderDataReceiver());
            var atm = new AirTrafficController(new CollisionDetector(), new TrackStorage(), new AirSpace(), new ConsoleView(new ConsoleOutput()), new FileLogger());

            tos.Attach(atm);

            Console.ReadLine();
        }
示例#8
0
        /// <summary>
        /// 初始化动画关键点值
        /// </summary>
        /// <param name="defaultOriginValue"></param>
        /// <param name="defaultDestinationValue"></param>
        private void InitAnimationKeyValues(CameraLookDirection defaultOriginValue, CameraLookDirection defaultDestinationValue)
        {
            if (From.HasValue)
            {
                if (To.HasValue)
                {
                    _keyValues    = new CameraLookDirection[2];
                    _keyValues[0] = From.Value;
                    _keyValues[1] = To.Value;
                }
                else if (Tos != null && Tos.Count() != 0)
                {
                    _keyValues    = new CameraLookDirection[Tos.Count() + 1];
                    _keyValues[0] = From.Value;

                    int index = 1;
                    foreach (CameraLookDirection lookDirection in Tos)
                    {
                        _keyValues[index] = lookDirection;
                        index++;
                    }
                }
                else
                {
                    _keyValues    = new CameraLookDirection[2];
                    _keyValues[0] = From.Value;
                    _keyValues[1] = defaultDestinationValue;
                }
            }
            else if (To.HasValue)
            {
                _keyValues    = new CameraLookDirection[2];
                _keyValues[0] = defaultOriginValue;
                _keyValues[1] = To.Value;
            }
            else if (Tos != null && Tos.Count() != 0)
            {
                _keyValues    = new CameraLookDirection[Tos.Count() + 1];
                _keyValues[0] = defaultOriginValue;

                int index = 1;
                foreach (CameraLookDirection lookDirection in Tos)
                {
                    _keyValues[index] = lookDirection;
                    index++;
                }
            }
            else
            {
                _keyValues    = new CameraLookDirection[2];
                _keyValues[0] = defaultOriginValue;
                _keyValues[1] = defaultDestinationValue;
            }
        }
        public void SetUp()
        {
            _collisionDetector = Substitute.For <ICollisionDetector>();
            _airSpace          = Substitute.For <IAirSpace>();
            _log          = Substitute.For <ILog>();
            _render       = Substitute.For <IRender>();
            _trackStorage = Substitute.For <ITrackStorage>();
            _tos          = Substitute.For <Tos>(Substitute.For <ITransponderReceiver>());

            validTrack1 = new Track {
                Tag = "AAA111", PositionX = 12000, PositionY = 80000, Altitude = 700
            };
            validTrack2 = new Track {
                Tag = "BBB222", PositionX = 80000, PositionY = 12000, Altitude = 1700
            };

            _uut = new AirTrafficController(_collisionDetector, _trackStorage, _airSpace, _render, _log);
        }
示例#10
0
        public void Send()
        {
            try
            {
                Objects.Requires(EmailSettings != null, () => new NullReferenceException("email settings is null"));
                Objects.Requires(!string.IsNullOrWhiteSpace(From), () => new NullReferenceException("email From is null or empty"));
                Objects.Requires(Tos.Count > 0, () => new NullReferenceException("email To is empty"));
                Objects.Requires(!string.IsNullOrWhiteSpace(Subject), () => new NullReferenceException("email Subject is null or empty"));

                var message = new MailMessage();
                message.From = new MailAddress(From);
                Tos.ForEach(to => message.To.Add(new MailAddress(to)));
                message.Subject    = Subject;
                message.Body       = Body;
                message.IsBodyHtml = IsBodyHtml;
                Ccs.ForEach(cc => message.CC.Add(cc));

                using (var smtpClient = new SmtpClient(EmailSettings.Host, EmailSettings.Port)
                {
                    EnableSsl = EmailSettings.EnableSsl
                })
                {
                    if (!string.IsNullOrWhiteSpace(EmailSettings.UserName))
                    {
                        smtpClient.Credentials = string.IsNullOrWhiteSpace(EmailSettings.Domain)
                            ? new NetworkCredential(EmailSettings.UserName, EmailSettings.Password)
                            : new NetworkCredential(EmailSettings.UserName, EmailSettings.Password, EmailSettings.Domain);
                    }

                    smtpClient.Send(message);
                }
            }
            catch (Exception ex)
            {
                Log.Error($"Sending email {this} with settings {EmailSettings} failed", ex);
                throw;
            }
        }
示例#11
0
 public void SetUp()
 {
     _transponderReceiver = Substitute.For <ITransponderReceiver>();
     _uut = new Tos(_transponderReceiver);
 }
示例#12
0
        public void SetUp()
        {
            // The faked IOutpus must return a screen size to ConsoleViews ctor.
            _output = Substitute.For <IOutput>();
            _output.When(x => x.GetLargetsScreenSize(out int w, out int h)).Do(x =>
            {
                x[0] = 80;
                x[1] = 40;
            });

            _collisionDetector = new CollisionDetector();
            _trackStorage      = new TrackStorage();
            _airSpace          = new AirSpace();
            _log         = new FileLogger(_logPath);
            _consoleView = new ConsoleView(_output);
            _atm         = new AirTrafficController(_collisionDetector, _trackStorage, _airSpace, _consoleView, _log);

            // Create Tos with fake TransponderReceiver, attach ATM to subscribe on Tos.
            // _tos.Notify(_tos) will call _atm.Update(). Notify will start the system.
            _tos = new Tos(Substitute.For <ITransponderReceiver>());
            _tos.Attach(_atm);

            // Init some standard List with valid tracks, used to give to Tos before Notify() call.
            _tracks1 = new List <ITrack>
            {
                new Track
                {
                    Tag       = "AAA111",
                    PositionX = 15000,
                    PositionY = 30000,
                    Altitude  = 850,
                    Course    = 0,
                    Timestamp = DateTime.Now,
                    Velocity  = 0
                },
                new Track
                {
                    Tag       = "BBB222",
                    PositionX = 15000,
                    PositionY = 30000,
                    Altitude  = 850,
                    Course    = 0,
                    Timestamp = DateTime.Now,
                    Velocity  = 0
                },
                new Track
                {
                    Tag       = "CCC333",
                    PositionX = 15000,
                    PositionY = 30000,
                    Altitude  = 850,
                    Course    = 0,
                    Timestamp = DateTime.Now,
                    Velocity  = 0
                },
                new Track
                {
                    Tag       = "DDD444",
                    PositionX = 15000,
                    PositionY = 30000,
                    Altitude  = 850,
                    Course    = 0,
                    Timestamp = DateTime.Now,
                    Velocity  = 0
                },
                new Track
                {
                    Tag       = "EEE555",
                    PositionX = 15000,
                    PositionY = 30000,
                    Altitude  = 850,
                    Course    = 0,
                    Timestamp = DateTime.Now,
                    Velocity  = 0
                },
            };
            _tracks2 = new List <ITrack>
            {
                new Track
                {
                    Tag       = "AAA111",
                    PositionX = 15000,
                    PositionY = 80000,
                    Altitude  = 850,
                    Course    = 0,
                    Timestamp = DateTime.Now,
                    Velocity  = 0
                },
                new Track
                {
                    Tag       = "BBB222",
                    PositionX = 25000,
                    PositionY = 36000,
                    Altitude  = 850,
                    Course    = 0,
                    Timestamp = DateTime.Now,
                    Velocity  = 0
                },
                new Track
                {
                    Tag       = "CCC333",
                    PositionX = 10000,
                    PositionY = 27000,
                    Altitude  = 1900,
                    Course    = 0,
                    Timestamp = DateTime.Now,
                    Velocity  = 0
                },
                new Track
                {
                    Tag       = "DDD444",
                    PositionX = 45000,
                    PositionY = 66000,
                    Altitude  = 833,
                    Course    = 0,
                    Timestamp = DateTime.Now,
                    Velocity  = 0
                },
                new Track
                {
                    Tag       = "EEE555",
                    PositionX = 15000,
                    PositionY = 28000,
                    Altitude  = 2500,
                    Course    = 0,
                    Timestamp = DateTime.Now,
                    Velocity  = 0
                },
            };
        }
 public void AddTos(List <EmailAddress> emails)
 {
     Tos.AddRange(emails);
 }
 public void AddTo(EmailAddress email)
 {
     Tos.Add(email);
 }
示例#15
0
 private bool InTos(Point point)
 {
     return(Tos.Any(p => p.Name == point.Name) || Tos.Select(to => to.InTos(point)).Any(to => to));
 }
示例#16
0
 public void SetUp()
 {
     _uut      = new Tos(Substitute.For <ITransponderReceiver>());
     _observer = Substitute.For <AirTrafficMonitoring.Lib.IObserver <Tos> >();
 }