Exemple #1
0
        /// <summary>
        /// Returns a new instance of the <see cref="ApiRequestException"/> class.
        /// </summary>
        /// <typeparam name="T">Expected type of operation result</typeparam>
        /// <param name="apiResponse">The API response.</param>
        /// <returns><see cref="ApiRequestException"/></returns>
        public static ApiRequestException FromApiResponse <T>(ApiResponse <T> apiResponse)
        {
            return(ApiExceptionParser.Parse <T>(apiResponse));

            /*
             * string message;
             * switch (apiResponse.ErrorCode)
             * {
             *  //TODO: Add test cases for all those
             *  case 400:
             *      message = apiResponse.Description.Remove(0, "Bad Request: ".Length);
             *      switch (message.Trim())
             *      {
             *          case "have no rights to send a message":
             *              return new BotRestrictedException(apiResponse.Description)
             *              {
             *                  Parameters = apiResponse.Parameters
             *              };
             *          case "not enough rights to restrict/unrestrict chat member":
             *              return new NotEnoughRightsException(apiResponse.Description)
             *              {
             *                  Parameters = apiResponse.Parameters
             *              };
             *          case "method is available for supergroup and channel chats only":
             *              return new WrongChatTypeException(apiResponse.Description)
             *              {
             *                  Parameters = apiResponse.Parameters
             *              };
             *          default:
             *              if (message.EndsWith(" is empty"))
             *              {
             *                  return new MissingParameterException(apiResponse.Description, message.Remove(message.IndexOf(" is empty")))
             *                  {
             *                      Parameters = apiResponse.Parameters
             *                  };
             *              }
             *              LogMissingError(apiResponse);
             *              return new ApiRequestException(apiResponse.Description, 400)
             *              {
             *                  Parameters = apiResponse.Parameters
             *              };
             *      }
             *  case 403:
             *      message = apiResponse.Description.Remove(0, "Forbidden: ".Length);
             *      switch (message.Trim())
             *      {
             *          case "bot was blocked by the user":
             *              return new BotBlockedException(apiResponse.Description)
             *              {
             *                  Parameters = apiResponse.Parameters
             *              };
             *          default:
             *              LogMissingError(apiResponse);
             *              return new ApiRequestException(apiResponse.Description, 403)
             *              {
             *                  Parameters = apiResponse.Parameters
             *              };
             *      }
             *  default:
             *      LogMissingError(apiResponse);
             *      return new ApiRequestException(apiResponse.Description, apiResponse.ErrorCode)
             *      {
             *          Parameters = apiResponse.Parameters
             *      };
             * }
             */
        }
 /// <summary>
 /// Returns a new instance of the <see cref="ApiRequestException"/> class.
 /// </summary>
 /// <typeparam name="T">Expected type of operation result</typeparam>
 /// <param name="apiResponse">The API response.</param>
 /// <returns><see cref="ApiRequestException"/></returns>
 public static ApiRequestException FromApiResponse <T>(ApiResponse <T> apiResponse)
 {
     return(ApiExceptionParser.Parse(apiResponse));
 }