/// <summary>
        /// Добавить новую фирму.
        /// </summary>
        /// <param name="newEntity">Новая фирма.</param>
        /// <returns>Добавленная фирма.</returns>
        public override IFirm Add(IFirm newEntity)
        {
            FirmWrap wrap = new FirmWrap(newEntity);

            this.Context.Firms.Add(wrap.GetRealObject());
            return(wrap);
        }
        /// <summary>
        /// Обновить данные существующей фирмы.
        /// </summary>
        /// <param name="changedEntity">Фирма с обновленными данными.</param>
        /// <returns>Обновленная фирма.</returns>
        public override IFirm Update(IFirm changedEntity)
        {
            if (!this.Context.Firms.Any(firm =>
                                        firm.FirmId == changedEntity.FirmId))
            {
                throw new InvalidOperationException(
                          "Попытка обновления несуществующего объекта. "
                          + "Фирмы с id=" + changedEntity.FirmId + " не существует.");
            }

            FirmWrap wrap = new FirmWrap(changedEntity);

            Firm updatedFirm = wrap.GetRealObject();

            Firm existingFirm = this.Context.Firms.First(f =>
                                                         f.FirmId == updatedFirm.FirmId);

            existingFirm.Name    = updatedFirm.Name;
            existingFirm.Address = updatedFirm.Address;
            existingFirm.Phone   = updatedFirm.Phone;

            return(wrap);
        }