Ejemplo n.º 1
0
        public async Task <IActionResult> AddResources([FromBody] GroupResourcesModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ErrorResponse.Create(ModelState.GetErrorMessage())));
            }

            if (!model.Name.IsValidPartitionOrRowKey())
            {
                return(BadRequest(ErrorResponse.Create($"Invalid {nameof(model.Name)} value")));
            }

            var group = _groupResourcesService.Get(model.Name);

            if (group != null)
            {
                return(BadRequest(ErrorResponse.Create($"'{model.Name}' group is already exists")));
            }

            if (model.Values.Length == 0)
            {
                return(BadRequest(ErrorResponse.Create($"{nameof(model.Values)} is empty")));
            }

            if (model.Values.Any(item => string.IsNullOrWhiteSpace(item.Id)))
            {
                return(BadRequest(ErrorResponse.Create("Id can't be empty")));
            }

            if (model.Values.Any(item => string.IsNullOrWhiteSpace(item.Value)))
            {
                return(BadRequest(ErrorResponse.Create("Value can't be empty")));
            }

            var ids = model.Values.Select(item => item.Id).Distinct().ToArray();

            if (ids.Length != model.Values.Length)
            {
                return(BadRequest(ErrorResponse.Create("Id must be unique")));
            }

            await _groupResourcesService.AddAsync(model.Name, model.Values);

            return(Ok());
        }