Пример #1
0
        /// <summary>
        /// Агент синхронизации ящиков.
        /// </summary>
        public virtual void SyncBoxes()
        {
            var allBoxes = BusinessUnitBoxes.GetAll().ToList();
            var boxes    = allBoxes.Where(b => Equals(b.ConnectionStatus, ExchangeCore.BusinessUnitBox.ConnectionStatus.Connected) ||
                                          Equals(b.ConnectionStatus, ExchangeCore.BusinessUnitBox.ConnectionStatus.Error)).ToList();

            foreach (var box in boxes)
            {
                Transactions.Execute(() =>
                {
                    Functions.BusinessUnitBox.SyncBoxStatus(box);

                    if (box.ConnectionStatus == ExchangeCore.BusinessUnitBox.ConnectionStatus.Connected)
                    {
                        Functions.BusinessUnitBox.UpdateExchangeServiceCertificates(box);
                        Functions.DepartmentBox.CreateDepartmentBoxes(box);
                    }
                });
            }
            // Проставить статус соединения в абонентских ящиках подразделений.
            foreach (var box in allBoxes)
            {
                Functions.Module.SetDepartmentBoxConnectionStatus(box);
            }
        }
Пример #2
0
        public override IQueryable <T> Filtering(IQueryable <T> query, Sungero.Domain.FilteringEventArgs e)
        {
            if (_filter == null)
            {
                return(query);
            }

            if (_filter.Active || _filter.Closed)
            {
                query = query.Where(r => _filter.Active && r.Status == Status.Active ||
                                    _filter.Closed && r.Status == Status.Closed);
            }

            if (_filter.BusinessUnit != null)
            {
                query = query.Where(b =>
                                    (BusinessUnitBoxes.Is(b) && Equals(BusinessUnitBoxes.As(b).BusinessUnit, _filter.BusinessUnit)) ||
                                    (DepartmentBoxes.Is(b) && Equals(DepartmentBoxes.As(b).RootBox.BusinessUnit, _filter.BusinessUnit)));
            }

            if (_filter.ExchangeService != null)
            {
                query = query.Where(b =>
                                    (BusinessUnitBoxes.Is(b) && Equals(BusinessUnitBoxes.As(b).ExchangeService, _filter.ExchangeService)) ||
                                    (DepartmentBoxes.Is(b) && Equals(DepartmentBoxes.As(b).RootBox.ExchangeService, _filter.ExchangeService)));
            }

            return(query);
        }