public async Task <bool> GenerateChildNodes(int factoryId, GenerationRequestModel generationRequest) { if (generationRequest.NumberOfChildren > 15 || generationRequest.NumberOfChildren <= 0 || generationRequest.UpperLimit < generationRequest.LowerLimit) { return(false); } var factory = await _treeChallengeDbContext.Factory.Where(g => g.Id == factoryId).FirstOrDefaultAsync(); if (factory == null) { return(false); } try { var children = _treeChallengeDbContext.ChildNode.Where(g => g.FactoryId == factoryId); _treeChallengeDbContext.ChildNode.RemoveRange(children); for (int i = 0; i < generationRequest.NumberOfChildren; i++) { Random rnd = new Random(); int num = rnd.Next(generationRequest.LowerLimit, generationRequest.UpperLimit + 1); _treeChallengeDbContext.ChildNode.Add(new ChildNodeModel { FactoryId = factoryId, Name = num.ToString() }); } return(await _treeChallengeDbContext.SaveChangesAsync() > 0); } catch (Exception e) { return(false); } }
public async Task <IActionResult> GenerateChildNodes(int factoryId, [FromBody] GenerationRequestModel generationRequest) { var saveResult = await _factoryService.GenerateChildNodes(factoryId, generationRequest); if (saveResult) { await _hubContext.Clients.All.SendAsync("ListChanged", factoryId); } return(StatusCode(200, saveResult)); }