Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 4
0
 public DatasetEntity MapPut(DatasetPut datasetPut)
 {
     return(_autoMapper.Map <DatasetEntity>(datasetPut));
 }