private Result Initialize() { try { _tableConfigParser.Source = _gameInputReader.GetTableConfig(); _movesConfigParser.Source = _gameInputReader.GetMovesConfig(); TableConfig = _tableConfigParser.ParseConfig(); MovesConfigs = _movesConfigParser.ParseConfig(); TableConfig.Validate(); _logger.BusinessSuccess(BL.EVENT_APPSTART_ID, BL.EVENT_APPSTART_NAME); return(new Result()); } catch (ParseException pex) { _logger.BusinessFail(BL.EVENT_APPSTART_ID, BL.EVENT_APPSTART_NAME, pex); return(new ErrorResult { ResultString = pex.Message }); } catch (BusinessException bex) { _logger.BusinessFail(BL.EVENT_APPSTART_ID, BL.EVENT_APPSTART_NAME, bex); return(new ErrorResult { ResultString = bex.Message }); } catch (OutOfMemoryException oex) { _logger.BusinessFail(BL.EVENT_APPSTART_ID, BL.EVENT_APPSTART_NAME, oex); return(new ErrorResult { ResultString = "Application is out of memory" }); } catch (Exception ex) { _logger.PublishException(ex); return(new ErrorResult { ResultString = "An error occured" }); } }