private void Ok() { //TODO: should to be moved to repo? var matchedParts = from parts in context.Set <TEntity>() where parts.Name.Equals(Entity.Name, StringComparison.OrdinalIgnoreCase) select parts; var existingPart = matchedParts.FirstOrDefault(); if (existingPart != null) { MessageBox.Show("Запись с таким именем уже существует", "Ошибка", MessageBoxButton.OK, icon: MessageBoxImage.Error); return; } try { context.SaveChanges(); DialogResult = true; } catch (Exception e) { MessageBox.Show(e.Message, "Ошибка", MessageBoxButton.OK, icon: MessageBoxImage.Error); } }
private void Ok() { var matchedParts = from parts in context.Set <TEntity>() where parts.Name.Equals(NewEntity.Name, StringComparison.OrdinalIgnoreCase) select parts; var existingPart = matchedParts.FirstOrDefault(); //if part already exist in db add reference to it if (existingPart != null) { if (EntitiesMapping != null) { //check for existing relation. show error if exist var existingMappings = from mappings in context.Set <TMapping>() where mappings.Child.Name .Equals(NewEntity.Name, StringComparison.OrdinalIgnoreCase) && mappings.Parent.Name .Equals(parent.Entity.Name, StringComparison.OrdinalIgnoreCase) select mappings; if (existingMappings.Count() != 0) { MessageBox.Show("Запись с таким именем уже существует", "Ошибка", MessageBoxButton.OK, icon: MessageBoxImage.Error); return; } EntitiesMapping.Child = existingPart; parent.Entity.ChildrenMappings.Add(EntitiesMapping); } else //message if entity exist in root { MessageBox.Show("Запись с таким именем уже существует", "Ошибка", MessageBoxButton.OK, icon: MessageBoxImage.Error); return; } } else { if (EntitiesMapping != null) { EntitiesMapping.Child = NewEntity; parent.Entity.ChildrenMappings.Add(EntitiesMapping); } context.AddEntity(NewEntity); } if (!context.Save(out string err)) { MessageBox.Show(err, "Ошибка", MessageBoxButton.OK, icon: MessageBoxImage.Error); } else { DialogResult = true; } }