public void Add(string name, int idDocumentTemplate, IDictionary <Tuple <string, int>, IList <int> > paths) { var template = new DocumentTaskTemplate { Name = name, IdDocumentTemplate = idDocumentTemplate }; foreach (var path in paths) { var taskType = new DocumentTaskType { Name = path.Key.Item1, DaysLimit = path.Key.Item2 }; for (var i = path.Value.Count - 1; i >= 0; i--) { taskType.Paths.Add(new DocumentTaskTypePath { Index = i, IdUserGroup = path.Value[i], NextPath = taskType.Paths.Any() ? taskType.Paths.ElementAt(path.Value.Count - i - 2) : null }); } template.DocumentTaskTypes.Add(taskType); } dbContext.DocumentTaskTemplates.Add(template); }
public async Task Can_Return_Task_Types() { var template = new DocumentTaskTemplate { DocumentTaskTypes = new List <DocumentTaskType> { new DocumentTaskType(), new DocumentTaskType() } }; var dbContextOptions = CreateNewContextOptions(); using (var context = new ApplicationDbContext(dbContextOptions)) { context.DocumentTaskTemplates.Add(template); await context.SaveChangesAsync(); } using (var context = new ApplicationDbContext(dbContextOptions)) { var service = new DocumentTaskTemplatesService(context); var result = await service.GetAllTaskTypes(1); Assert.Equal(2, result.Count); } }