/// <summary>
        /// Save records array to xml file.
        /// </summary>
        /// <param name="writer">The xml writer.</param>
        public void SaveToXml(StreamWriter writer)
        {
            if (writer is null)
            {
                throw new ArgumentNullException($"{nameof(writer)} cannot be null.");
            }

            var collection = new List <SerializableRecord>();

            foreach (var record in this.records)
            {
                var serializeRecord = new SerializableRecord();
                serializeRecord.Id           = record.Id;
                serializeRecord.FirstName    = record.FirstName;
                serializeRecord.LastName     = record.LastName;
                serializeRecord.DateOfBirth  = record.DateOfBirth;
                serializeRecord.Eperience    = record.Experience;
                serializeRecord.Balance      = record.Balance;
                serializeRecord.EnglishLevel = record.EnglishLevel;

                collection.Add(serializeRecord);
            }

            var serializableRecords = new SerializableRecordsArray();

            serializableRecords.SerializeRecords = collection.ToArray();

            var xmlWriter = new FileCabinetRecordXmlWriter(XmlWriter.Create(writer), serializableRecords);

            xmlWriter.Write();
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="FileCabinetRecordXmlWriter"/> class.
 /// </summary>
 /// <param name="writer">The xml writer.</param>
 /// <param name="records">The serializable records.</param>
 public FileCabinetRecordXmlWriter(XmlWriter writer, SerializableRecordsArray records)
 {
     this.writer     = writer;
     this.records    = records;
     this.serializer = new XmlSerializer(typeof(SerializableRecordsArray));
 }