private async Task <int> SaveSettingsAsync(int itemId, int userId, ProfileSettingsParams profileSettings) { if (profileSettings == null) { throw new ArgumentException(I18NHelper.FormatInvariant( ErrorMessages.ArtifactList.SaveProfileSettingsProfileSettingsNull)); } var existingSettings = await _artifactListSettingsRepository.GetSettingsAsync(itemId, userId); var settings = new XmlProfileSettings { Columns = !profileSettings.ColumnsUndefined ? ArtifactListHelper.ConvertProfileColumnsToXmlProfileSettings(profileSettings.Columns) : existingSettings?.Columns, PaginationLimit = !profileSettings.PaginationLimitUndefined ? profileSettings.PaginationLimit : existingSettings?.PaginationLimit, }; if (existingSettings == null) { return(await _artifactListSettingsRepository.CreateSettingsAsync(itemId, userId, settings)); } else { return(await _artifactListSettingsRepository.UpdateSettingsAsync(itemId, userId, settings)); } }
public void Initialize() { _userId = 1; _itemId = 1; _xmlProfileSettings = new XmlProfileSettings { Columns = new List <XmlProfileColumn> { new XmlProfileColumn { PropertyName = "Name", Predefined = (int)PropertyTypePredefined.Name, PrimitiveType = (int)PropertyPrimitiveType.Text }, new XmlProfileColumn { PropertyName = "My Choice", Predefined = (int)PropertyTypePredefined.CustomGroup, PrimitiveType = (int)PropertyPrimitiveType.Choice, PropertyTypeId = 25 } } }; _repositoryMock = new Mock <IArtifactListSettingsRepository>(); _repositoryMock .Setup(m => m.GetSettingsAsync(_itemId, _userId)) .ReturnsAsync(_xmlProfileSettings); _service = new ArtifactListService(_repositoryMock.Object); }
public static ProfileColumns ConvertXmlProfileSettingsToProfileColumns(XmlProfileSettings settings) => new ProfileColumns( settings.Columns? .Select(xmlColumn => new ProfileColumn( xmlColumn.PropertyName, (PropertyTypePredefined)xmlColumn.Predefined, (PropertyPrimitiveType)xmlColumn.PrimitiveType, xmlColumn.PropertyTypeId)) .ToList());
public async Task <int> UpdateSettingsAsync(int itemId, int userId, XmlProfileSettings settings) { var parameters = new DynamicParameters(); parameters.Add("@userId", userId); parameters.Add("@itemId", itemId); parameters.Add("@settings", SerializationHelper.ToXml(settings)); return(await _connectionWrapper.ExecuteScalarAsync <int>( "UpdateArtifactListSettings", parameters, commandType : CommandType.StoredProcedure)); }
public static int?ConvertXmlProfileSettingsToPaginationLimit(XmlProfileSettings settings) => settings.PaginationLimit;