/// <summary> /// Create dataset /// </summary> /// <param name="datasetCreation"></param> /// <returns>Created dataset id</returns> public async Task <int> CreateAsync(DatasetCreation datasetCreation) { var userId = await GetUserIdAsync(); var entity = _mapper.MapCreation(datasetCreation); await InvokeGuard(() => _guard.AgainstInvalidDatasetCreationAsync(userId, datasetCreation)); await _repository.AddDatasetAsync(userId, entity); await _unitOfWork.SaveChangesAsync(); return(entity.Id); }
public async Task <ActionResult <int> > CreateAsync([FromBody] DatasetCreation datasetCreation) { int datasetId; try { datasetId = await _datasetService.CreateAsync(datasetCreation); } catch (Exception ex) { return(BadRequest(ex.Message)); } return(Ok(datasetId)); }
public async Task <ValidationResult> AgainstInvalidDatasetCreationAsync(int?userId, DatasetCreation dataset) { var result = new ValidationResult(); if (userId.HasValue) { await _userValidator.UserExistsAsync(userId.Value, result); } if (dataset.Private.HasValue && dataset.Private.Value) { _datasetValidator.DatasetCanBePrivate(userId, result); } if (dataset.CategoryId.HasValue) { await _categoryValidator.CategoryExistsAsync(dataset.CategoryId.Value, result); } if (dataset.Series != null && dataset.Series.Any()) { foreach (var series in dataset.Series) { if (!string.IsNullOrWhiteSpace(series.Color)) { _seriesValidator.SeriesHasValidColor(series.Label, series.Color, result); } _seriesValidator.SeriesHasValidTypeId(series.Label, series.Type, result); } _datasetValidator.DatasetSeriesHaveValidOrder(dataset.Series.Select(x => new OrderIdentifier { Id = null, Order = x.Order }), result); } return(result); }
public DatasetEntity MapCreation(DatasetCreation datasetCreation) { return(_autoMapper.Map <DatasetEntity>(datasetCreation)); }