public static void FillFrom([NotNull] this IReadOnlyCollection <FieldWithValue> characterFieldValues, [CanBeNull] IFieldContainter container) { if (characterFieldValues == null) { throw new ArgumentNullException(nameof(characterFieldValues)); } if (container == null) { return; } var data = container.DeserializeFieldValues(); foreach (var characterFieldValue in characterFieldValues) { var value = data.GetValueOrDefault(characterFieldValue.Field.ProjectFieldId); if (value != null) { try { characterFieldValue.Value = value; } catch (Exception e) { throw new Exception($"Problem parsing field value for field = {characterFieldValue.Field.ProjectFieldId}, Value = {value}", e); } } } }
public static AccessArguments GetAccessArguments( [NotNull] this IFieldContainter entityWithFields, int userId) { if (entityWithFields == null) { throw new ArgumentNullException(nameof(entityWithFields)); } if (entityWithFields is Claim claim) { return(new AccessArguments(claim, userId)); } if (entityWithFields is Character character) { return(new AccessArguments(character, userId)); } throw new NotSupportedException($"{entityWithFields.GetType()} is not supported to get fields for."); }
public static Predicate <FieldWithValue> GetShowForUserPredicate( [NotNull] IFieldContainter entityWithFields, int userId) { if (entityWithFields == null) { throw new ArgumentNullException(nameof(entityWithFields)); } var claim = entityWithFields as Claim; var character = entityWithFields as Character; if (claim != null) { return(f => f.HasViewAccess(new AccessArguments(claim, userId))); } if (character != null) { return(f => f.HasViewAccess(new AccessArguments(character, userId))); } throw new NotSupportedException($"{entityWithFields.GetType()} is not supported to get fields for."); }
public static void FillFrom([NotNull] this ICollection <FieldWithValue> characterFieldValues, [CanBeNull] IFieldContainter container) { if (characterFieldValues == null) { throw new ArgumentNullException(nameof(characterFieldValues)); } if (container == null) { return; } var data = container.DeserializeFieldValues(); foreach (var characterFieldValue in characterFieldValues) { var value = data.GetValueOrDefault(characterFieldValue.Field.ProjectFieldId); if (value != null) { characterFieldValue.Value = value; } } }
private static Dictionary <int, string> DeserializeFieldValues([CanBeNull] this IFieldContainter containter) { return(JsonConvert.DeserializeObject <Dictionary <int, string> >(containter?.JsonData ?? "") ?? new Dictionary <int, string>()); }
public static void FieldValuesShouldBe(this IFieldContainter mockCharacter, params FieldWithValue[] field2) => mockCharacter.JsonData.ShouldBe(field2.SerializeFields());
public static void AssignFieldValues(IFieldContainter mockCharacter, params FieldWithValue[] fieldWithValues) => mockCharacter.JsonData = fieldWithValues.SerializeFields();