Beispiel #1
0
        protected override void Build(IRepository repository)
        {
            var execution = new Reference {
                Name = "Вид исполнения"
            };

            execution.AddValue(new ReferenceValue {
                Value = "Открытое"
            });
            execution.AddValue(new ReferenceValue {
                Value = "Закрытое"
            });
            repository.Save(execution);

            Power = new Specification
            {
                Name = "Мощность электодвигателя",
                Type = SpecificationType.Decimal,
                Unit = new MeasureUnit {
                    Name = "КВт"
                }
            };

            RPM = new Specification
            {
                Name = "Частота вращения",
                Type = SpecificationType.Int,
                Unit = new MeasureUnit {
                    Name = "Об/мин"
                }
            };

            Execution = new Specification
            {
                Name      = "Исполнение",
                Type      = SpecificationType.Reference,
                Reference = execution
            };

            RegistrationNumber = new Specification
            {
                Name = "Гос. №",
                Type = SpecificationType.String
            };

            EngineVolume = new Specification
            {
                Name = "Объём двигателя, л",
                Type = SpecificationType.Decimal
            };


            repository.Save(Power);
            repository.Save(RPM);
            repository.Save(Execution);
            repository.Save(RegistrationNumber);
            repository.Save(EngineVolume);
        }
Beispiel #2
0
        public Reference Entity()
        {
            var reference = new Reference
            {
                Name = Name
            };

            Values.ForEach(v => reference.AddValue(v.Value));
            return(reference);
        }
Beispiel #3
0
        public void Merge(Reference reference)
        {
            reference.Name = Name;

            var added   = Values.Where(x => x.Id == 0).ToList();
            var map     = Values.Where(x => x.Id != 0).ToDictionary(r => r.Id, r => r.Value);
            var deleted = new List <ReferenceValue>();

            reference.Values.ToList().ForEach(val =>
            {
                if (map.ContainsKey(val.Id))
                {
                    val.Value = map[val.Id];
                }
                else
                {
                    deleted.Add(val);
                }
            });

            deleted.ForEach(d => reference.RemoveValue(d));
            added.ForEach(a => reference.AddValue(a.Value));
        }