示例#1
0
 /// <summary>
 /// Finds all <see cref="ServiceLock"/> of the specified <see cref="ServiceLockTypeEnum"/>
 /// </summary>
 /// <param name="type"></param>
 /// <returns></returns>
 public static IList<ServiceLock> FindServicesOfType(ServiceLockTypeEnum type)
 {
     using (var readCtx = PersistentStoreRegistry.GetDefaultStore().OpenReadContext())
     {
         var broker = readCtx.GetBroker<IServiceLockEntityBroker>();
         var criteria = new ServiceLockSelectCriteria();
         criteria.ServiceLockTypeEnum.EqualTo(type);
         return broker.Find(criteria);
     }
 }
示例#2
0
 /// <summary>
 /// Finds all <see cref="ServiceLock"/> of the specified <see cref="ServiceLockTypeEnum"/>
 /// </summary>
 /// <param name="type"></param>
 /// <returns></returns>
 public static IList<ServiceLock> FindServicesOfType(ServiceLockTypeEnum type)
 {
     using (var context = new ServerExecutionContext())
     {
         var broker = context.ReadContext.GetBroker<IServiceLockEntityBroker>();
         var criteria = new ServiceLockSelectCriteria();
         criteria.ServiceLockTypeEnum.EqualTo(type);
         return broker.Find(criteria);
     }
 }
 public ServiceLockSelectCriteria(ServiceLockSelectCriteria other)
 : base(other)
 {}
 public ServiceLockSelectCriteria(ServiceLockSelectCriteria other)
     : base(other)
 {
 }
        private bool CheckMultipleInstances()
        {
            TimeSpan cacheDuration = TimeSpan.FromMinutes(2);
            lock (_dbCheckSync)
            {
                if (!_multipleInstanceDetected.HasValue || Math.Abs(Environment.TickCount - _lastDbCheck) > cacheDuration.TotalMilliseconds)
                {

                    _lastDbCheck = Environment.TickCount;

                    using (IReadContext context = PersistentStoreRegistry.GetDefaultStore().OpenReadContext())
                    {
                        var broker = context.GetBroker<IServiceLockEntityBroker>();

                        var criteria = new ServiceLockSelectCriteria();
                        criteria.ServiceLockTypeEnum.EqualTo(ServiceLockTypeEnum.ImportFiles);
                        criteria.Enabled.EqualTo(true);

                        var list = broker.Find(criteria);

                        _multipleInstanceDetected = list.Count > 1;
                    }
                }
                
            }

            return _multipleInstanceDetected.Value;

        }
 /// <summary>
 /// Retrieve list of services.
 /// </summary>
 /// <param name="criteria"/>
 /// <returns>List of <see cref="ServiceLock"/> matches <paramref name="criteria"/></returns>
 public IList<ServiceLock> GetServiceLocks(ServiceLockSelectCriteria criteria)
 {
     return _adapter.GetServiceLocks(criteria);
 }
示例#7
0
        /// <summary>
        /// Load the devices for the partition based on the filters specified in the filter panel.
        /// </summary>
        /// <remarks>
        /// This method only reloads and binds the list bind to the internal grid.
        /// </remarks>
        public void LoadServiceLocks()
        {
            ServiceLockSelectCriteria criteria = new ServiceLockSelectCriteria();

            ServiceLockConfigurationController controller = new ServiceLockConfigurationController();

            if (TypeDropDownList.SelectedValue != SR.All)
            {
                criteria.ServiceLockTypeEnum.EqualTo(ServiceLockTypeEnum.GetEnum(TypeDropDownList.SelectedValue));
            }
            
            if (StatusFilter.SelectedIndex != 0)
            {
                if (StatusFilter.SelectedIndex == 1)
                    criteria.Enabled.EqualTo(true);
                else
                    criteria.Enabled.EqualTo(false);
            }

            if (FileSystemFilter.SelectedIndex != -1)
            {
                FileSystemsConfigurationController fsController = new FileSystemsConfigurationController();
                List<ServerEntityKey> fileSystemKeys = new List<ServerEntityKey>();
                foreach (ListItem fileSystem in FileSystemFilter.Items)
                {
                    if (fileSystem.Selected)
                    {
                        fileSystemKeys.Add(new ServerEntityKey("FileSystem", fileSystem.Value));
                    }
                }

                IList<Model.Filesystem> fs = fsController.GetFileSystems(fileSystemKeys);

                if(fs != null)
                {
                    List<ServerEntityKey> entityKeys = new List<ServerEntityKey>();
                    foreach(Filesystem f in fs)
                    {
                        entityKeys.Add(f.Key);
                    }
                    criteria.FilesystemKey.In(entityKeys);    
                }                
            }

            IList<ServiceLock> services = controller.GetServiceLocks(criteria);

        	List<ServiceLock> sortedServices =
        		CollectionUtils.Sort(services, delegate(ServiceLock a, ServiceLock b)
        		                               	{
        		                               		if (a == null)
        		                               		{
        		                               			if (b == null)
        		                               			{
        		                               				// If both null, they're equal. 
        		                               				return 0;
        		                               			}
        		                               			else
        		                               			{
        		                               				// If x is null and y is not null, y
        		                               				// is greater. 
        		                               				return -1;
        		                               			}
        		                               		}
        		                               		else
        		                               		{
        		                               			// If a is not null...
        		                               			if (b == null)
        		                               			{
															// ...and b is null, x is greater.
															return 1;
        		                               			}
        		                               			else
        		                               			{
        		                               				// just compare
															if (a.Filesystem == null || b.Filesystem == null)
																return a.ServiceLockTypeEnum.Description.CompareTo(b.ServiceLockTypeEnum.Description);

															int retVal =
        		                               					a.Filesystem.Description.CompareTo(
        		                               						b.Filesystem.Description);
															if (retVal == 0)
																return a.ServiceLockTypeEnum.Description.CompareTo(b.ServiceLockTypeEnum.Description);
        		                               				return retVal;
        		                               			}
        		                               		}
        		                               	});

			
            ServiceLockCollection items = new ServiceLockCollection();
            items.Add(sortedServices);

            ServiceLockGridViewControl.ServiceLocks = items;

            ServiceLockGridViewControl.RefreshCurrentPage();
        }