예제 #1
0
        public void Add(string name, GridWithStartAndEnd grid)
        {
            var newGrid = mapper.Map <Entities.Grid>(grid);

            newGrid.Name = name;
            context.Grids.Add(newGrid);
            context.SaveChanges();
        }
예제 #2
0
 public async Task AddAsync(string name, GridWithStartAndEnd grid)
 {
     if (await MazeExistsAsync(name))
     {
         throw new ArgumentException($"maze with name \"{name}\" has already exists");
     }
     await repository.AddAsync(name, grid);
 }
예제 #3
0
 public void Add(string name, GridWithStartAndEnd grid)
 {
     if (MazeExists(name))
     {
         throw new ArgumentException($"maze with name \"{name}\" has already exists");
     }
     repository.Add(name, grid);
 }
예제 #4
0
        public async Task AddAsync(string name, GridWithStartAndEnd grid)
        {
            var newGrid = mapper.Map <Entities.Grid>(grid);

            newGrid.Name = name;
            await context.Grids.AddAsync(newGrid);

            await context.SaveChangesAsync();
        }
예제 #5
0
 public static bool TryGetValue(this IMazeRepository repository, string name, out GridWithStartAndEnd value)
 {
     try
     {
         value = repository.Get(name);
         return(value != null);
     }
     catch (Exception)
     {
         value = null;
         return(false);
     }
 }
예제 #6
0
        public async Task <GridWithStartAndEnd> GetAsync(string name)
        {
            GridWithStartAndEnd maze = null;

            if (await repository.TryGetValueAsync(name, value => maze = value))
            {
                return(maze);
            }
            var generatedMaze = mazeCreationFactory.Create(name);

            if (generatedMaze != null)
            {
                return(generatedMaze);
            }
            throw new ArgumentException($"maze not found {name}");
        }