public DocumentServiceHelper( IDaoFactory daoFactory, FileShareLink fileShareLink, UserManager userManager, AuthContext authContext, FileSecurity fileSecurity, SetupInfo setupInfo, FileUtility fileUtility, MachinePseudoKeys machinePseudoKeys, Global global, DocumentServiceConnector documentServiceConnector, LockerManager lockerManager, IServiceProvider serviceProvider) { DaoFactory = daoFactory; FileShareLink = fileShareLink; UserManager = userManager; AuthContext = authContext; FileSecurity = fileSecurity; SetupInfo = setupInfo; FileUtility = fileUtility; MachinePseudoKeys = machinePseudoKeys; Global = global; DocumentServiceConnector = documentServiceConnector; LockerManager = lockerManager; ServiceProvider = serviceProvider; }
public void AddNotification(LockerManager from, Notification notification) { if (!Notifications.ContainsKey(from)) { Notifications[from] = new List <Notification>(); } Notifications[from].Add(notification); }
public void PickUpBox_When_BoxNumberIsNotValid_Should_ThrowException() { LockerManager lockerMgr = new LockerManager(); lockerMgr.PlaceBox(new Box()); Exception ex = Assert.Throws <Exception>(() => lockerMgr.PickUpBox(String.Empty)); Assert.Equal("Box number is not valid", ex.Message); }
public void PickUpBox_When_BoxNotAvailable_Should_ThrowException() { LockerManager lockerMgr = new LockerManager(); lockerMgr.PlaceBox(new Box()); Exception ex = Assert.Throws <Exception>(() => lockerMgr.PickUpBox(Guid.NewGuid().ToString())); Assert.Equal("Box is not available", ex.Message); }
public void PlaceBox_When_SlotOfBoxSizeNotAvailable_Should_PlaceBoxAtHigherSizeSlotAvailable() { LockerManager lockerMgr = new LockerManager(); Assert.Equal(4, lockerMgr.SlotsAvailable); lockerMgr.PlaceBox(new Box(Size.Small)); lockerMgr.PlaceBox(new Box(Size.Medium)); lockerMgr.PlaceBox(new Box(Size.Large)); Assert.Equal(1, lockerMgr.SlotsAvailable); Assert.Equal(3, lockerMgr.SlotsOccupied); lockerMgr.PlaceBox(new Box(Size.Small)); Assert.Equal(4, lockerMgr.SlotsOccupied); }
public void PickUpBox_When_BoxNumberIsValid_Should_ReturnBoxAndAddEmptySlotBackToAvailableSlotsBucket() { LockerManager lockerMgr = new LockerManager(); Box box = new Box(); string boxNumber = box.ID; lockerMgr.PlaceBox(box); Assert.Equal(3, lockerMgr.SlotsAvailable); Assert.Equal(1, lockerMgr.SlotsOccupied); Assert.Equal(boxNumber, lockerMgr.PickUpBox(boxNumber).ID); Assert.Equal(4, lockerMgr.SlotsAvailable); Assert.Equal(0, lockerMgr.SlotsOccupied); }
/// <summary> /// Initialization information for gateway service. ///</summary> public TestGatewayService(MemberInfo memberInfo) { MemberInfo = memberInfo; HttpHandler = new HttpHandlerHelper(MemberInfo.UriString); TokenResponse = ServiceInvoke.InitAsync(MemberInfo, HttpHandler); if (TokenResponse.StatusCode == 200) { LockerManager = new LockerManager(MemberInfo.ConfigurationPath); } if (LockerManager != null) { ScannerInit = ScannerServiceHelper.Start(LockerManager); } }
public void PlaceBox_When_NoAvailableSlots_Should_ThrowException() { LockerManager lockerMgr = new LockerManager(); Assert.Equal(4, lockerMgr.SlotsAvailable); lockerMgr.PlaceBox(new Box(Size.Small)); lockerMgr.PlaceBox(new Box(Size.Medium)); lockerMgr.PlaceBox(new Box(Size.Large)); lockerMgr.PlaceBox(new Box(Size.ExtraLarge)); Assert.Equal(0, lockerMgr.SlotsAvailable); Assert.Equal(4, lockerMgr.SlotsOccupied); Exception ex = Assert.Throws <Exception>(() => lockerMgr.PlaceBox(new Box(Size.Small))); Assert.Equal("No slots available", ex.Message); }
/// <summary> /// Start socket client by connecting and registering event. /// </summary> /// <returns> /// Gets the sucess result with bool type true. /// </returns> public static bool Start(LockerManager _lockerManager) { try { _client = new SocketClientInvoke(_lockerManager.LockerConfiguration.Socket.Server, _lockerManager.LockerConfiguration.Socket.Port); _client.Connect(); _lockerManager.RegisterScannerEvent(SendDataOnSocket); return(true); } catch (Exception ex) { Log.Error("[Scanner Service Helper][Start]" + "[" + ex + "]"); return(false); } }
public GameController(LockerManager lockerManager, ILogger <GameController> logger, IGameService gameService, IUserService userService, GetBetsRequestBuilder getBetsRequestBuilder, SpinRequestBuilder spinRequestBuilder, BonusGameRequestBuilder bonusGameRequestBuilder) { this.lockerManager = lockerManager; this.logger = logger; this.gameService = gameService; this.userService = userService; this.getBetsRequestBuilder = getBetsRequestBuilder; this.spinRequestBuilder = spinRequestBuilder; this.bonusGameRequestBuilder = bonusGameRequestBuilder; }
private void buttonConfigLocker_Click(object sender, EventArgs e) { string configurationPath = txtConfigurationFile.Text; // Socket Scanner Task.Run(() => StartSocketListener()); _lockerManager = new LockerManager(configurationPath); if (_lockerManager != null) { _isConfigured = true; btnSubmit.Enabled = true; } var hcStatus = _lockerManager.PortHealthCheckStatus(); bStatusCOM1.BackColor = hcStatus["locker"] ? System.Drawing.Color.LimeGreen : System.Drawing.Color.Salmon; bStatusCOM1.Text = "locker"; bStatusCOM2.BackColor = hcStatus["detection"] ? System.Drawing.Color.LimeGreen : System.Drawing.Color.Salmon; bStatusCOM2.Text = "detection"; bStatusCOM4.BackColor = hcStatus["scanner"] ? System.Drawing.Color.LimeGreen : System.Drawing.Color.Salmon; bStatusCOM4.Text = "scanner"; }
public File <T> GetParams <T>(File <T> file, bool lastVersion, FileShare linkRight, bool rightToRename, bool rightToEdit, bool editPossible, bool tryEdit, bool tryCoauth, out Configuration <T> configuration) { if (file == null) { throw new FileNotFoundException(FilesCommonResource.ErrorMassage_FileNotFound); } if (!string.IsNullOrEmpty(file.Error)) { throw new Exception(file.Error); } var rightToReview = rightToEdit; var reviewPossible = editPossible; var rightToFillForms = rightToEdit; var fillFormsPossible = editPossible; var rightToComment = rightToEdit; var commentPossible = editPossible; var rightModifyFilter = rightToEdit; if (linkRight == FileShare.Restrict && UserManager.GetUsers(AuthContext.CurrentAccount.ID).IsVisitor(UserManager)) { rightToEdit = false; rightToReview = false; rightToFillForms = false; rightToComment = false; } var fileSecurity = FileSecurity; rightToEdit = rightToEdit && (linkRight == FileShare.ReadWrite || linkRight == FileShare.CustomFilter || fileSecurity.CanEdit(file) || fileSecurity.CanCustomFilterEdit(file)); if (editPossible && !rightToEdit) { editPossible = false; } rightModifyFilter = rightModifyFilter && (linkRight == FileShare.ReadWrite || fileSecurity.CanEdit(file)); rightToRename = rightToRename && rightToEdit && fileSecurity.CanEdit(file); rightToReview = rightToReview && (linkRight == FileShare.Review || linkRight == FileShare.ReadWrite || fileSecurity.CanReview(file)); if (reviewPossible && !rightToReview) { reviewPossible = false; } rightToFillForms = rightToFillForms && (linkRight == FileShare.FillForms || linkRight == FileShare.Review || linkRight == FileShare.ReadWrite || fileSecurity.CanFillForms(file)); if (fillFormsPossible && !rightToFillForms) { fillFormsPossible = false; } rightToComment = rightToComment && (linkRight == FileShare.Comment || linkRight == FileShare.Review || linkRight == FileShare.ReadWrite || fileSecurity.CanComment(file)); if (commentPossible && !rightToComment) { commentPossible = false; } if (linkRight == FileShare.Restrict && !(editPossible || reviewPossible || fillFormsPossible || commentPossible) && !fileSecurity.CanRead(file)) { throw new SecurityException(FilesCommonResource.ErrorMassage_SecurityException_ReadFile); } if (file.RootFolderType == FolderType.TRASH) { throw new Exception(FilesCommonResource.ErrorMassage_ViewTrashItem); } if (file.ContentLength > SetupInfo.AvailableFileSize) { throw new Exception(string.Format(FilesCommonResource.ErrorMassage_FileSizeEdit, FileSizeComment.FilesSizeToString(SetupInfo.AvailableFileSize))); } string strError = null; if ((editPossible || reviewPossible || fillFormsPossible || commentPossible) && LockerManager.FileLockedForMe(file.ID)) { if (tryEdit) { strError = FilesCommonResource.ErrorMassage_LockedFile; } rightToRename = false; rightToEdit = editPossible = false; rightToReview = reviewPossible = false; rightToFillForms = fillFormsPossible = false; rightToComment = commentPossible = false; } if (editPossible && !FileUtility.CanWebEdit(file.Title)) { rightToEdit = editPossible = false; } if (file.Encrypted && file.RootFolderType != FolderType.Privacy) { rightToEdit = editPossible = false; rightToReview = reviewPossible = false; rightToFillForms = fillFormsPossible = false; rightToComment = commentPossible = false; } if (!editPossible && !FileUtility.CanWebView(file.Title)) { throw new Exception(string.Format("{0} ({1})", FilesCommonResource.ErrorMassage_NotSupportedFormat, FileUtility.GetFileExtension(file.Title))); } if (reviewPossible && !FileUtility.CanWebReview(file.Title)) { rightToReview = reviewPossible = false; } if (fillFormsPossible && !FileUtility.CanWebRestrictedEditing(file.Title)) { rightToFillForms = fillFormsPossible = false; } if (commentPossible && !FileUtility.CanWebComment(file.Title)) { rightToComment = commentPossible = false; } var rightChangeHistory = rightToEdit && !file.Encrypted; if (FileTracker.IsEditing(file.ID)) { rightChangeHistory = false; bool coauth; if ((editPossible || reviewPossible || fillFormsPossible || commentPossible) && tryCoauth && (!(coauth = FileUtility.CanCoAuhtoring(file.Title)) || FileTracker.IsEditingAlone(file.ID))) { if (tryEdit) { var editingBy = FileTracker.GetEditingBy(file.ID).FirstOrDefault(); strError = string.Format(!coauth ? FilesCommonResource.ErrorMassage_EditingCoauth : FilesCommonResource.ErrorMassage_EditingMobile, Global.GetUserName(editingBy, true)); } rightToEdit = editPossible = reviewPossible = fillFormsPossible = commentPossible = false; } } var fileStable = file; if (lastVersion && file.Forcesave != ForcesaveType.None && tryEdit) { var fileDao = DaoFactory.GetFileDao <T>(); fileStable = fileDao.GetFileStable(file.ID, file.Version); } var docKey = GetDocKey(fileStable); var modeWrite = (editPossible || reviewPossible || fillFormsPossible || commentPossible) && tryEdit; configuration = new Configuration <T>(file, ServiceProvider) { Document = { Key = docKey, Permissions = { Edit = rightToEdit && lastVersion, Rename = rightToRename && lastVersion && !file.ProviderEntry, Review = rightToReview && lastVersion, FillForms = rightToFillForms && lastVersion, Comment = rightToComment && lastVersion, ChangeHistory = rightChangeHistory, ModifyFilter = rightModifyFilter } }, EditorConfig = { ModeWrite = modeWrite, }, ErrorMessage = strError, }; if (!lastVersion) { configuration.Document.Title += string.Format(" ({0})", file.CreateOnString); } return(file); }
public static bool Prefix(PlayerInteract __instance, int lockerId, int chamberNumber) { if (!__instance._playerInteractRateLimit.CanExecute(true) || (__instance._hc.CufferId > 0 && !__instance.CanDisarmedInteract)) { return(false); } LockerManager singleton = LockerManager.singleton; if (lockerId < 0 || lockerId >= singleton.lockers.Length) { return(false); } if (!__instance.ChckDis(singleton.lockers[lockerId].gameObject.position) || !singleton.lockers[lockerId].supportsStandarizedAnimation) { return(false); } if (chamberNumber < 0 || chamberNumber >= singleton.lockers[lockerId].chambers.Length) { return(false); } if (singleton.lockers[lockerId].chambers[chamberNumber].doorAnimator == null) { return(false); } if (!singleton.lockers[lockerId].chambers[chamberNumber].CooldownAtZero()) { return(false); } singleton.lockers[lockerId].chambers[chamberNumber].SetCooldown(); string accessToken = singleton.lockers[lockerId].chambers[chamberNumber].accessToken; Item itemByID = __instance._inv.GetItemByID(__instance._inv.curItem); bool allow = string.IsNullOrEmpty(accessToken) || (itemByID != null && itemByID.permissions.Contains(accessToken)) || __instance._sr.BypassMode; Events.InvokeLockerInteract(__instance.gameObject, singleton.lockers[lockerId], lockerId, ref allow); if (allow) { bool flag = ((int)singleton.openLockers[lockerId] & 1 << chamberNumber) != 1 << chamberNumber; singleton.ModifyOpen(lockerId, chamberNumber, flag); singleton.RpcDoSound(lockerId, chamberNumber, flag); bool state = true; for (int i = 0; i < singleton.lockers[lockerId].chambers.Length; i++) { if (((int)singleton.openLockers[lockerId] & 1 << i) == 1 << i) { state = false; break; } } singleton.lockers[lockerId].LockPickups(state); if (!string.IsNullOrEmpty(accessToken)) { singleton.RpcChangeMaterial(lockerId, chamberNumber, false); } } else { singleton.RpcChangeMaterial(lockerId, chamberNumber, true); } __instance.OnInteract(); return(false); }
public void LockerManager_When_DefaultConstructor_Should_NumberOfLockersBeFour() { LockerManager lockerMgr = new LockerManager(); Assert.Equal(4, lockerMgr.NumberOfLockers); }
private static bool Prefix(PlayerInteract __instance, byte lockerId, byte chamberNumber) { try { if (!__instance._playerInteractRateLimit.CanExecute(true) || (__instance._hc.CufferId > 0 && !PlayerInteract.CanDisarmedInteract)) { return(false); } LockerManager singleton = LockerManager.singleton; if (lockerId >= singleton.lockers.Length) { return(false); } if (!__instance.ChckDis(singleton.lockers[lockerId].gameObject.position) || !singleton.lockers[lockerId].supportsStandarizedAnimation) { return(false); } if (chamberNumber >= singleton.lockers[lockerId].chambers.Length) { return(false); } if (singleton.lockers[lockerId].chambers[chamberNumber].doorAnimator == null) { return(false); } if (!singleton.lockers[lockerId].chambers[chamberNumber].CooldownAtZero()) { return(false); } singleton.lockers[lockerId].chambers[chamberNumber].SetCooldown(); string accessToken = singleton.lockers[lockerId].chambers[chamberNumber].accessToken; var itemById = __instance._inv.GetItemByID(__instance._inv.curItem); var ev = new InteractingLockerEventArgs( API.Features.Player.Get(__instance.gameObject), singleton.lockers[lockerId], singleton.lockers[lockerId].chambers[chamberNumber], lockerId, chamberNumber, string.IsNullOrEmpty(accessToken) || (itemById != null && itemById.permissions.Contains(accessToken)) || __instance._sr.BypassMode); Player.OnInteractingLocker(ev); if (ev.IsAllowed) { bool flag = (singleton.openLockers[lockerId] & 1 << chamberNumber) != 1 << chamberNumber; singleton.ModifyOpen(lockerId, chamberNumber, flag); singleton.RpcDoSound(lockerId, chamberNumber, flag); bool anyOpen = true; for (int i = 0; i < singleton.lockers[lockerId].chambers.Length; i++) { if ((singleton.openLockers[lockerId] & 1 << i) == 1 << i) { anyOpen = false; break; } } singleton.lockers[lockerId].LockPickups(!flag, chamberNumber, anyOpen); if (!string.IsNullOrEmpty(accessToken)) { singleton.RpcChangeMaterial(lockerId, chamberNumber, false); } } else { singleton.RpcChangeMaterial(lockerId, chamberNumber, true); } __instance.OnInteract(); return(false); } catch (Exception e) { Exiled.API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.InteractingLocker:\n{e}"); return(true); } }
public void ReleaseLocketManger() => LockerManager = null;
public void SetLocketManger(LockerManager lockerManager) => LockerManager = lockerManager;