private ApplicationOperation CreateOrUpdateOperation(string name, string parent, string type, bool isAvailableToAllAuthorizedUsers, bool isAvailableToAnonymous, IEnumerable <ApplicationPermission> perms, Repository repo) { if (_applicationOperationDictionary == null) { _applicationOperationDictionary = new ConcurrentDictionary <string, ApplicationOperation>(); var applicationOperations = repo.Get <ApplicationOperation>(a => a.Name != null); foreach (ApplicationOperation item in applicationOperations) { string key = GetApplicationOperationKey(item.Name, item.ParentControllerName, item.Type); if (!_applicationOperationDictionary.ContainsKey(key)) { _applicationOperationDictionary.TryAdd(key, item); } } } ApplicationOperation op = null; string currentKey = GetApplicationOperationKey(name, parent, type); bool update = false; if (_applicationOperationDictionary.ContainsKey(currentKey)) { op = _applicationOperationDictionary[currentKey]; if (op.IsAvailableToAllAuthorizedUsers != isAvailableToAllAuthorizedUsers) { op.IsAvailableToAllAuthorizedUsers = isAvailableToAllAuthorizedUsers; update = true; } if (op.IsAvailableToAnonymous != isAvailableToAnonymous) { op.IsAvailableToAnonymous = isAvailableToAnonymous; update = true; } List <ApplicationPermission> applicationPermissions = op.Permissions.Where(p => !p.IsCustom).ToList(); HandleApplicationPermissions <ApplicationOperation>(op, applicationPermissions, perms, ref update); } else { update = true; op = new ApplicationOperation(); op.Name = name; op.Type = type; op.IsAvailableToAllAuthorizedUsers = isAvailableToAllAuthorizedUsers; op.IsAvailableToAnonymous = isAvailableToAnonymous; op.ParentControllerName = parent; if (perms != null) { foreach (var p in perms) { op.AddPermissions(p); } } } if (update) { repo.Save(op); } return(op); }
public void Initialize() { context = new ClientContext(); factory = new Mock <IApplicationFactory>(); monitor = new Mock <IApplicationMonitor>(); logger = new Mock <ILogger>(); text = new Mock <IText>(); context.Settings = new AppSettings(); sut = new ApplicationOperation(context, factory.Object, monitor.Object, logger.Object, text.Object); }
public ActionResult <ApplicationOperationDTO> PostOperation(ApplicationOperationDTO applicationOperationDTO) { var manager = ServiceLocator.Current.GetInstance <IMiniSessionService>(); var repo = new Repository(manager); var applicationOperation = new ApplicationOperation(); applicationOperation.IsAvailableToAllAuthorizedUsers = applicationOperationDTO.IsAvailableToAllAuthorizedUsers; applicationOperation.IsAvailableToAnonymous = applicationOperationDTO.IsAvailableToAnonymous; applicationOperation.Name = applicationOperationDTO.Name; applicationOperation.ParentControllerName = applicationOperationDTO.ParentControllerName; applicationOperation.Type = applicationOperationDTO.Type; foreach (var permissionDTO in applicationOperationDTO.Permissions) { var permission = repo.GetById <ApplicationPermission>(permissionDTO.Id); applicationOperation.Permissions.Add(permission); } repo.Save <ApplicationOperation>(applicationOperation); manager.Session.Flush(); return(CreatedAtAction("PostOperation", new { id = applicationOperation.Id }, applicationOperation)); }
public void ApplicationOperationTest() { var operation = new ApplicationOperation { Id = 0, Name = "name", ParentControllerName = "parent", Type = "type", IsAvailableToAnonymous = true, IsAvailableToAllAuthorizedUsers = true, Permissions = new List <ApplicationPermission>() }; Assert.AreEqual(0, operation.Id); Assert.AreEqual("name", operation.Name); Assert.AreEqual("parent", operation.ParentControllerName); Assert.AreEqual("type", operation.Type); Assert.AreEqual(true, operation.IsAvailableToAnonymous); Assert.AreEqual(true, operation.IsAvailableToAllAuthorizedUsers); Assert.IsNotNull(operation.Permissions); }
public ApplicationConfig(string sourcePath, string targetPath, ApplicationOperation operation) { SourcePath = sourcePath; TargetPath = targetPath; Operation = operation; }
/// <summary> /// Contains the information for performing a Application-level operation (e.g. switch window) /// </summary> /// <param name="window">The Window to base the action on (most likely to be the currently active window) </param> /// <param name="operation">The operation to perfrom (e.g. switch window) </param> public ApplicationOperationEventArgs(Window window, ApplicationOperation operation) { Window = window; Operation = operation; }
public string GetOperationDictionaryKey(ApplicationOperation operation) { return (GetOperationDictionaryKey(operation.Type, operation.Name, operation.ParentControllerName)); }