public HttpResponseMessage CreateNewMaze(MazeInitModel model)
        {
            Guid mazeId = Guid.Empty;

            if (ModelState.IsValid)
            {
                try
                {
                    var maze = new Maze(model);
                    mazeId = MemoryCacher.AddMazeInCache(maze);
                }
                catch (Exception ex)
                {
                    throw CreateResponseException(HttpStatusCode.InternalServerError, ex.Message);
                }

                return(Request.CreateResponse(HttpStatusCode.OK, mazeId.ToString()));
            }
            else
            {
                var message = string.Join(" | ", ModelState.Values
                                          .SelectMany(v => v.Errors)
                                          .Select(e => e.ErrorMessage));
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, message));
            }
        }