public override Dictionary <string, Field> GetUpdateFields()
        {
            var updateFieldsBuilder = new UpdateFieldsBuilder();

            return(updateFieldsBuilder
                   .BuildNew(keyValueData)
                   .SetPrimary(pasport.Code, pasport.Title)
                   .AddTextField(surname.Code, new TextField(surname.Title), 1)
                   .AddTextField(name.Code, new TextField(name.Title), 2)
                   .AddTextField(secondName.Code, new TextField(secondName.Title), 3)
                   .GetResult());
        }
        public override Dictionary <string, Field> GetUpdateFields()
        {
            if (keyValueData.Count == 0)
            {
                throw new NoRowsToEditException();
            }

            UpdateFieldsBuilder builder = new UpdateFieldsBuilder();

            builder.BuildNew(keyValueData);
            User user     = Program.Container.GetCurrentUser();
            bool isWorker = user.Role.Name == "worker";

            if (isWorker)
            {
                var keys = GetCurrentUserKeys();
                if (keys.Count() == 0)
                {
                    throw new NoRowsToEditException();
                }
                builder.SetPrimary("id", keys, "Id неисправности");
            }
            else
            {
                builder.SetPrimary("id", "Id неисправности");
            }

            builder.AddTextField("auto_registration_number", new TextField("Номер госрегистрации автомобиля"), 1);
            builder.AddTextField("type", new TextField("Тип неисправности"), 2);
            TextField pasport = new TextField("Паспорт сотрудника");

            if (isWorker)
            {
                pasport.PreventSet = true;
            }

            builder.AddTextField("worker", pasport, 3);
            builder.AddTextField("time", new TextField("Время ремонта"), 4);

            return(builder.GetResult());
        }