Ejemplo n.º 1
0
        public static MarcRecord SetSubField
        (
            [NotNull] this MarcRecord record,
            int tag,
            int fieldOccurrence,
            char code,
            int subFieldOccurrence,
            [CanBeNull] string newValue
        )
        {
            Sure.NotNull(record, "record");
            Sure.Positive(tag, "tag");

            RecordField field = record.Fields.GetField(tag, fieldOccurrence);

            if (!ReferenceEquals(field, null))
            {
                SubField subField = field.GetSubField(code, subFieldOccurrence);
                if (!ReferenceEquals(subField, null))
                {
                    subField.Value = newValue;
                }
            }

            return(record);
        }
Ejemplo n.º 2
0
 public static string GetSubFieldValue
 (
     [CanBeNull] this SubField subField
 )
 {
     return(ReferenceEquals(subField, null)
                ? null
                : subField.Value);
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Restore subfield from JSON.
        /// </summary>
        public static SubField FromJson
        (
            [NotNull] string text
        )
        {
            Sure.NotNullNorEmpty(text, "text");

            SubField result = JsonConvert.DeserializeObject <SubField>(text);

            return(result);
        }
Ejemplo n.º 4
0
        public static JObject ToJObject
        (
            [NotNull] this SubField subField
        )
        {
            Sure.NotNull(subField, "subField");

            JObject result = JObject.FromObject(subField);

            return(result);
        }
Ejemplo n.º 5
0
        public static string ToJson
        (
            [NotNull] this SubField subField
        )
        {
            Sure.NotNull(subField, "subField");

            string result = JsonUtility.SerializeShort(subField);

            //JObject.FromObject(subField).ToString();

            return(result);
        }
Ejemplo n.º 6
0
        public Field Add
        (
            char code,
            object?value
        )
        {
            var text     = value?.ToString();
            var subfield = new SubField {
                Code = code, Value = text
            };

            Subfields.Add(subfield);

            return(this);
        } // method Add
Ejemplo n.º 7
0
        public static SubField FromJObject
        (
            [NotNull] JObject jObject
        )
        {
            Sure.NotNull(jObject, "jObject");

            SubField result = new SubField
                              (
                jObject["code"].ToString()[0]
                              );
            JToken value = jObject["value"];

            if (value != null)
            {
                result.Value = value.ToString();
            }

            return(result);
        }
Ejemplo n.º 8
0
        public Field AddNonEmpty
        (
            char code,
            object?value
        )
        {
            if (!ReferenceEquals(value, null))
            {
                var text = value.ToString();
                if (!string.IsNullOrEmpty(text))
                {
                    var subfield = new SubField {
                        Code = code, Value = text
                    };
                    Subfields.Add(subfield);
                }
            }

            return(this);
        } // method AddNonEmpty
Ejemplo n.º 9
0
        public static SubField GetFirstSubField
        (
            [NotNull] this SubFieldCollection subFields,
            char code,
            [CanBeNull] string value
        )
        {
            Sure.NotNull(subFields, "subFields");

            int count = subFields.Count;

            for (int i = 0; i < count; i++)
            {
                SubField subField = subFields[i];
                if (subField.Code.SameChar(code) &&
                    subField.Value.SameStringSensitive(value))
                {
                    return(subField);
                }
            }

            return(null);
        }