public async Task <ValidationResult> AgainstInvalidDatasetPutAsync(DatasetPut dataset, int datasetId, int?userId) { var result = new ValidationResult(); if (userId.HasValue) { await _userValidator.UserExistsAsync(userId.Value, result); } if (dataset.Private) { _datasetValidator.DatasetCanBePrivate(userId, result); } if (dataset.CategoryId.HasValue) { await _categoryValidator.CategoryExistsAsync(dataset.CategoryId.Value, result); } if (dataset.Groups != null && dataset.Groups.Any()) { foreach (var seriesGroup in dataset.Groups) { _seriesGroupValidator.SeriesGroupHasValidOrder(seriesGroup.Order, result); } var seriesGroupIds = dataset.Groups.Where(z => z.Id.HasValue).Select(z => z.Id.Value); await _datasetValidator.DatasetContainsSeriesGroupsAsync(datasetId, seriesGroupIds, result); var orderIdentifiers = dataset.Groups .Select(z => new OrderIdentifier { Id = z.Id, Order = z.Order }); await _seriesGroupValidator.SeriesGroupsHaveValidOrderAsync(datasetId, orderIdentifiers, result); foreach (var group in dataset.Groups) { if (group.Series != null) { ValidateSeriesPut(group.Series, result); } } } if (dataset.Series != null) { ValidateSeriesPut(dataset.Series, result); } return(result); }
public async Task <ActionResult> PutAsync(int id, [FromBody] DatasetPut datasetPut) { try { await _datasetService.PutAsync(id, datasetPut); } catch (Exception ex) { return(BadRequest(ex.Message)); } return(Ok()); }
public async Task PutAsync(int datasetId, DatasetPut datasetPut) { var userId = await GetUserIdAsync(); await InvokeGuard(() => _guard.AgainstInvalidDatasetPutAsync(datasetPut, datasetId, userId)); var entity = _mapper.MapPut(datasetPut); // TODO: await _repository.PutDatasetAsync(entity, datasetId); await _unitOfWork.SaveChangesAsync(); }
public DatasetEntity MapPut(DatasetPut datasetPut) { return(_autoMapper.Map <DatasetEntity>(datasetPut)); }