private void SaveData() { if (ServiceLock != null) { ServiceLock.Enabled = Enabled.Checked; ServiceLockConfigurationController controller = new ServiceLockConfigurationController(); DateTime scheduledDate = DateTime.ParseExact(ScheduleDate.Text, CalendarExtender.Format, null); if (ScheduleTime.Text.Contains("_") == false) { try { DateTime scheduleTime = DateTime.ParseExact(ScheduleTime.Text, TIME_FORMAT, null); scheduledDate = scheduledDate.Add(scheduleTime.TimeOfDay); } catch (Exception) { //Ignore this exception since the time is not fully typed in or in an incorrect format, //that will be validated when the user presses apply. } } if (controller.UpdateServiceLock(ServiceLock.GetKey(), Enabled.Checked, scheduledDate)) { if (ServiceLockUpdated != null) { ServiceLockUpdated(ServiceLock); } } else { ErrorMessageBox.Message = SR.ServiceLockUpdateFailed_ContactAdmin; ErrorMessageBox.MessageType = MessageBox.MessageTypeEnum.ERROR; ErrorMessageBox.Show(); } } }
/// <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() { var criteria = new ServiceLockSelectCriteria(); var 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) { var fsController = new FileSystemsConfigurationController(); var fileSystemKeys = new List <ServerEntityKey>(); foreach (ListItem fileSystem in FileSystemFilter.Items) { if (fileSystem.Selected) { fileSystemKeys.Add(new ServerEntityKey("FileSystem", fileSystem.Value)); } } IList <Filesystem> fs = fsController.GetFileSystems(fileSystemKeys); if (fs != null) { var entityKeys = new List <ServerEntityKey>(); foreach (Filesystem f in fs) { entityKeys.Add(f.Key); } criteria.FilesystemKey.In(entityKeys); } } if (PartitionFilter.SelectedIndex != -1) { var partitionKeys = new List <ServerEntityKey>(); foreach (ListItem partition in PartitionFilter.Items) { if (partition.Selected) { partitionKeys.Add(new ServerEntityKey("ServerPartition", partition.Value)); } } criteria.ServerPartitionKey.In(partitionKeys); } 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); } // If x is null and y is not null, y // is greater. return(-1); } // If a is not null... if (b == null) { // ...and b is null, x is greater. return(1); } // just compare if (a.Filesystem == null || b.Filesystem == null) { return(String.Compare(a.ServiceLockTypeEnum.Description, b.ServiceLockTypeEnum.Description, StringComparison.Ordinal)); } int retVal = String.Compare(a.Filesystem.Description, b.Filesystem.Description, StringComparison.Ordinal); if (retVal == 0) { return(String.Compare(a.ServiceLockTypeEnum.Description, b.ServiceLockTypeEnum.Description, StringComparison.Ordinal)); } return(retVal); }); var items = new ServiceLockCollection { sortedServices }; ServiceLockGridViewControl.ServiceLocks = items; ServiceLockGridViewControl.RefreshCurrentPage(); }