示例#1
0
        public virtual async Task <Guid> CreateAsync(CreateContainerDto input)
        {
            //Validate provider values
            var keyValuePairs = input.Items.ToDictionary(x => x.Name, y => y.Value);

            ContainerManager.ValidateProviderValues(input.Provider, keyValuePairs);

            //Validate name
            await ContainerManager.ValidateNameAsync(CurrentTenant.Id, input.Name, null);

            var container = new FileStoringContainer(
                GuidGenerator.Create(),
                CurrentTenant.Id,
                input.IsMultiTenant,
                input.Provider,
                input.Name,
                input.Title,
                input.HttpAccess);

            foreach (var item in input.Items)
            {
                container.Items.Add(new FileStoringContainerItem(
                                        GuidGenerator.Create(),
                                        item.Name,
                                        item.Value,
                                        container.Id));
            }

            await FileStoringContainerRepository.InsertAsync(container);

            return(container.Id);
        }
示例#2
0
        public virtual async Task <Guid> CreateAsync(CreateContainerDto input)
        {
            var valuesValidator = GetFileProviderValuesValidator(input.Provider);

            var dict   = input.Items.ToDictionary(x => x.Name, y => y.Value);
            var result = valuesValidator.Validate(dict);

            if (result.Errors.Any())
            {
                throw new AbpValidationException("Create Container validate failed.", result.Errors);
            }

            await CheckContainer(input.TenantId, input.Name, null);

            var container = new FileStoringContainer(
                GuidGenerator.Create(),
                input.TenantId,
                input.IsMultiTenant,
                input.Provider,
                input.Name,
                input.Title,
                input.HttpAccess);

            foreach (var item in input.Items)
            {
                container.Items.Add(new FileStoringContainerItem(
                                        GuidGenerator.Create(),
                                        item.Name,
                                        item.Value,
                                        container.Id));
            }

            await FileStoringContainerRepository.InsertAsync(container);

            return(container.Id);
        }
 public async Task <Guid> CreateAsync([FromBody] CreateContainerDto input)
 {
     return(await _containerAppService.CreateAsync(input));
 }