public async Task <bool> ManipulateLicenseAsync(Guid id, AssetForAssignDto assetForAssign) { var employee = await _repositoryManager.Employee.GetEmployeeAsync(CurrentUserId, id, true); var license = await _repositoryManager.License.GetLicenseAsync(CurrentUserId, assetForAssign.AssetId); if (license == null || employee == null) { return(false); } var tryFindLicense = employee.Licenses?.SingleOrDefault(x => x.Id.Equals(assetForAssign.AssetId)); switch (assetForAssign.AssignType) { case AssetAssignType.Adding when tryFindLicense != null: _logger.LogWarning("License with id {Id} is already exists", license.Id); return(false); case AssetAssignType.Removing when tryFindLicense == null: _logger.LogWarning("License with id {Id} doesn't exist", license.Id); return(false); case AssetAssignType.Adding: employee.Licenses?.Add(license); break; case AssetAssignType.Removing: employee.Licenses?.Remove(tryFindLicense); break; } _repositoryManager.Employee.UpdateEmployee(employee); await _repositoryManager.SaveAsync(); return(true); }
public async Task <bool> ManipulateAccessoryAsync(Guid id, AssetForAssignDto assetForAssign) { var device = await _repositoryManager.Device.GetDeviceAsync(CurrentUserId, id, true); var accessory = await _repositoryManager.Accessory.GetAccessoryAsync(CurrentUserId, assetForAssign.AssetId); if (accessory == null || device == null) { return(false); } var tryFindAccessory = device.Accessories?.SingleOrDefault(x => x.Id.Equals(assetForAssign.AssetId)); switch (assetForAssign.AssignType) { case AssetAssignType.Adding when tryFindAccessory != null: _logger.LogWarning("Accessory with id {Id} is already exists", accessory.Id); return(false); case AssetAssignType.Removing when tryFindAccessory == null: _logger.LogWarning("Accessory with id {Id} doesn't exist", accessory.Id); return(false); case AssetAssignType.Adding: device.Accessories?.Add(accessory); break; case AssetAssignType.Removing: device.Accessories?.Remove(tryFindAccessory); break; } _repositoryManager.Device.UpdateDevice(device); await _repositoryManager.SaveAsync(); return(true); }
public async Task <IActionResult> ManipulateDeviceComponent(Guid id, [FromQuery] AssetForAssignDto assetForAssign) => await _deviceService.ManipulateComponentAsync(id, assetForAssign) ? NoContent() : NotFound();
public async Task <IActionResult> ManipulateEmployeeLicense(Guid id, [FromQuery] AssetForAssignDto assetForAssignDto) => await _employeeService.ManipulateLicenseAsync(id, assetForAssignDto) ? NoContent() : NotFound();