public async Task Name(DragonDal dragonDal) { var validator = new RegisterDragonValidator(); var results = validator.Validate(dragonDal); if (!results.IsValid) { _numberNameList++; } else { try { await _context.Dragons.AddAsync(dragonDal); await _context.SaveChangesAsync(); _numberNameList = -1; } catch (DbUpdateException ex) when(ex.InnerException is SqlException sqlException && sqlException.Number == SQL_EXCEPTION_DUPLICATE_KEY) { _numberNameList++; } } }
public async Task CreateAsync() { var dragonDal = new DragonDal(); List <string> AllName = GetName(); dragonDal.Id = Guid.NewGuid(); Random rand = new Random(); dragonDal.Hp = rand.Next(80, 100); dragonDal.HpMax = dragonDal.Hp; dragonDal.Date = DateTime.Now; while (_numberNameList != -1) { if (_numberNameList < AllName.Count) { dragonDal.Name = AllName[0 + _numberNameList]; await Name(dragonDal); } else { break; // максимум драконов создан } } }