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); }
public Reference Entity() { var reference = new Reference { Name = Name }; Values.ForEach(v => reference.AddValue(v.Value)); return(reference); }
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)); }