/// <summary> /// Creates the record. /// </summary> /// <param name="recordParams">The record parameters.</param> /// <returns>The identifier.</returns> public int CreateRecord(RecordParams recordParams) { if (recordParams is null) { throw new ArgumentNullException($"{nameof(recordParams)} must nit be null"); } this.validator.ValidateCabinetRecord(recordParams); FileCabinetRecord record = new FileCabinetRecord { Id = ++this.id, FirstName = recordParams.FirstName, LastName = recordParams.LastName, DateOfBirth = recordParams.DateOfBirth, Department = recordParams.Department, Salary = recordParams.Salary, Class = recordParams.Class, }; this.list.Add(record); this.dictionaryId.Add(record.Id, record); AddToDictionary <string, FileCabinetRecord>(this.firstNameDictionary, recordParams.FirstName.ToUpperInvariant(), record); AddToDictionary <string, FileCabinetRecord>(this.lastNameDictionary, recordParams.LastName.ToUpperInvariant(), record); AddToDictionary <DateTime, FileCabinetRecord>(this.dateOfBirthDictionary, recordParams.DateOfBirth, record); return(record.Id); }
/// <summary> /// Edits the record. /// </summary> /// <param name="id">The identifier.</param> /// <param name="recordParams">The record parameters.</param> /// <exception cref="KeyNotFoundException">Throws when id not found.</exception> public void EditRecord(int id, RecordParams recordParams) { if (recordParams is null) { throw new ArgumentNullException($"{nameof(recordParams)} must nit be null"); } FileCabinetRecord record = this.dictionaryId[id]; this.validator.ValidateCabinetRecord(recordParams); if (record.FirstName.ToUpperInvariant() != recordParams.FirstName.ToUpperInvariant()) { this.firstNameDictionary[record.FirstName.ToUpperInvariant()].Remove(record); AddToDictionary <string, FileCabinetRecord>(this.firstNameDictionary, recordParams.FirstName.ToUpperInvariant(), record); } if (record.LastName.ToUpperInvariant() != recordParams.LastName.ToUpperInvariant()) { this.lastNameDictionary[record.LastName.ToUpperInvariant()].Remove(record); AddToDictionary <string, FileCabinetRecord>(this.lastNameDictionary, recordParams.LastName.ToUpperInvariant(), record); } if (record.DateOfBirth != recordParams.DateOfBirth) { this.dateOfBirthDictionary[record.DateOfBirth].Remove(record); AddToDictionary <DateTime, FileCabinetRecord>(this.dateOfBirthDictionary, recordParams.DateOfBirth, record); } record.FirstName = recordParams.FirstName; record.LastName = recordParams.LastName; record.DateOfBirth = recordParams.DateOfBirth; record.Department = recordParams.Department; record.Salary = recordParams.Salary; record.Class = recordParams.Class; }