Пример #1
0
        public void OnPostUpdate(PostUpdateEvent updateEvent)
        {
            var entity = updateEvent.Entity as IDomainObject;

            // Мы умеет трекать только объекты реализующие IDomainObject, иначе далее будем падать на получении Id.
            if (entity == null || !TrackerMain.NeedTrace(entity))
            {
                return;
            }

            //FIXME добавлено чтобы не дублировались записи. Потому что от Nhibernate приходит по 2 события на один объект. Если это удастся починить, то этот код не нужен.
            if (changes.Any(hce => hce.EntityId == entity.Id && NHibernateProxyHelper.GuessClass(entity).Name == hce.EntityClassName))
            {
                return;
            }

            var fields = Enumerable.Range(0, updateEvent.State.Length)
                         .Select(i => FieldChange.CheckChange(i, updateEvent))
                         .Where(x => x != null)
                         .ToList();

            if (fields.Count > 0)
            {
                changes.Add(new ChangedEntity(EntityChangeOperation.Change, updateEvent.Entity, fields));
            }
        }
Пример #2
0
 public EmailManager(TrackerMain mainForm)
 {
     _mainForm       = mainForm;
     Requests        = new ConcurrentQueue <User>();
     _timer.Interval = 15000;
     _timer.Elapsed += Timer_Tick;
     _timer.Start();
 }
Пример #3
0
 public AccountsSetup(TrackerMain mainForm)
 {
     InitializeComponent();
     _mainForm    = mainForm;
     Users        = new List <User>();
     _accountsDoc = new XmlDocument();
     _accountsDs  = new DataSet();
     InitializeComponent();
     Icon = Properties.Resources.IconPng.ToBitmapImage();
 }
Пример #4
0
 public MoreWindow(TrackerMain mainForm)
 {
     _mainForm = mainForm;
     InitializeComponent();
     Icon = Properties.Resources.IconPng.ToBitmapImage();
 }