示例#1
0
        /// <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);
        }
示例#2
0
        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);
        }
示例#3
0
        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]);
        }
示例#4
0
        /// <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));
            }
        }