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); }
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); }
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."); }
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."); }