/// <summary> /// Creates the record. /// </summary> /// <param name="rec">The record.</param> /// <returns>New file cabinet record.</returns> public int CreateRecord(RecordParameters rec) { if (rec == null) { throw new ArgumentNullException(nameof(rec)); } int id = (this.list.Count > 0) ? this.list[this.list.Count - 1].Id + 1 : 1; this.InsertRecord(rec, id); return(id); }
private void CreateFileCabinetRecord(RecordParameters rec, int id) { this.validator.ValidateParameters(rec); var record = new FileCabinetRecord { Id = id, FirstName = rec.FirstName, LastName = rec.LastName, DateOfBirth = rec.DateOfBirth, Gender = rec.Gender, Office = rec.Office, Salary = rec.Salary, }; this.list.Add(record); this.AddToDictionaries(record); }
private void EditDictionaries(RecordParameters rec, int indexInList) { if (!this.firstNameDictionary.ContainsKey(rec.FirstName)) { this.firstNameDictionary.Add(rec.FirstName, new List <FileCabinetRecord>()); } if (!this.lastNameDictionary.ContainsKey(rec.LastName)) { this.lastNameDictionary.Add(rec.LastName, new List <FileCabinetRecord>()); } if (!this.dateOfBirthDictionary.ContainsKey(rec.DateOfBirth)) { this.dateOfBirthDictionary.Add(rec.DateOfBirth, new List <FileCabinetRecord>()); } this.firstNameDictionary[rec.FirstName].Add(this.list[indexInList]); this.lastNameDictionary[rec.LastName].Add(this.list[indexInList]); this.dateOfBirthDictionary[rec.DateOfBirth].Add(this.list[indexInList]); }
/// <summary> /// Inserts the record. /// </summary> /// <param name="rec">The record.</param> /// <param name="id">The identifier.</param> /// <exception cref="ArgumentNullException">rec is null.</exception> /// <exception cref="ArgumentException">The id can not be less than one.</exception> public void InsertRecord(RecordParameters rec, int id) { if (rec == null) { throw new ArgumentNullException(nameof(rec)); } if (id < 1) { throw new ArgumentException($"The '{nameof(id)}' can not be less than one.", nameof(id)); } this.validator.ValidateParameters(rec); if (!this.IsThereARecordWithThisId(id)) { this.CreateFileCabinetRecord(rec, id); } else { throw new ArgumentException($"The record #{id} is already exist.", nameof(id)); } }