Example #1
0
        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);
        }
Example #3
0
 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();