Ejemplo n.º 1
0
        public async Task <bool> SaveProfileColumnsAsync(int collectionId, ProfileColumns profileColumns, int userId)
        {
            if (userId < 1)
            {
                throw new ArgumentOutOfRangeException(nameof(userId));
            }

            var collection = await GetCollectionAsync(collectionId, userId);

            var artifacts = await GetArtifactItemsDetailsAsync(collectionId, userId);

            var propertyTypeInfos = await GetPropertyTypeInfosAsync(artifacts);

            var propertyTypes  = GetUnselectedColumns(propertyTypeInfos);
            var invalidColumns = profileColumns.GetInvalidColumns(propertyTypes);

            if (invalidColumns.Any())
            {
                throw ArtifactListExceptionHelper.InvalidColumnsException(invalidColumns);
            }

            var savingProfileColumnsTuple = profileColumns.ToValidColumns(propertyTypeInfos);

            await _artifactListService.SaveProfileColumnsAsync(collection.Id,
                                                               savingProfileColumnsTuple.Item1, userId);

            return(savingProfileColumnsTuple.Item2);
        }
Ejemplo n.º 2
0
        private void Add(ProfileColumn column)
        {
            if (column == null)
            {
                throw new ArgumentNullException(nameof(column));
            }

            if (NameMatches(column.PropertyName))
            {
                throw ArtifactListExceptionHelper.DuplicateColumnException(column.PropertyName);
            }

            if (_columns.Count >= _maxCapacity)
            {
                throw ArtifactListExceptionHelper.ColumnCapacityExceededException(column.PropertyName, _maxCapacity);
            }

            _columns.Add(column);
        }
Ejemplo n.º 3
0
        public void Construction_DuplicateColumns_ThrowsException()
        {
            // Arrange
            var column = _columns.Last();

            _columns.Add(column);

            // Act
            try
            {
                new ProfileColumns(_columns);
            }
            catch (BadRequestException ex)
            {
                // Assert
                var expectedException = ArtifactListExceptionHelper.DuplicateColumnException(column.PropertyName);
                Assert.AreEqual(expectedException.ErrorCode, ex.ErrorCode);
                Assert.AreEqual(expectedException.Message, ex.Message);
                return;
            }

            Assert.Fail("BadRequestException was expected.");
        }
Ejemplo n.º 4
0
        public void Construction_OverCapacity_ThrowException()
        {
            // Arrange
            const int maxCapacity = 2;
            var       column      = new ProfileColumn("Test3", PropertyTypePredefined.CustomGroup, PropertyPrimitiveType.Text);

            _columns.Add(column);

            // Act
            try
            {
                new ProfileColumns(_columns, maxCapacity);
            }
            catch (BadRequestException ex)
            {
                // Assert
                var expectedException = ArtifactListExceptionHelper.ColumnCapacityExceededException(column.PropertyName, maxCapacity);
                Assert.AreEqual(expectedException.ErrorCode, ex.ErrorCode);
                Assert.AreEqual(expectedException.Message, ex.Message);
                return;
            }

            Assert.Fail("BadRequestException was expected.");
        }