namespace ShareeBike.Repository.Exception { /// /// Is fired with request used a cookie which is not defined. /// Reasons for cookie to be not defined might be /// - user used more that 8 different devices (copri invalidates cookies in this case) /// - user account has been deleted? /// public class AuthcookieNotDefinedException : InvalidResponseException { /// Constructs a authorization exceptions. /// Text describing request which is shown if validation fails. public AuthcookieNotDefinedException(string p_strTextOfAction, Response.ResponseBase response) : base($"{p_strTextOfAction}\r\nDie Sitzung ist abgelaufen. Bitte neu anmelden.", response) { } /// /// Gets whether authcookie is defined or not. /// /// Response to check /// Text holding context in which authcookie is checked. /// Exception thrown if cookie is not defined. /// public static bool IsAuthcookieNotDefined( Response.ResponseBase reponse, string actionText, out AuthcookieNotDefinedException exception) { if (reponse == null || reponse.response_state == null) { // Empty response or response without response state is no authcookie not defined exception. exception = null; return false; } if (!reponse.response_state.ToUpper().Contains(AUTH_FAILURE_QUERY_AUTHCOOKIENOTDEFIED.ToUpper()) && !reponse.response_state.ToUpper().Contains(AUTH_FAILURE_BOOK_AUTICOOKIENOTDEFIED.ToUpper()) && !reponse.response_state.ToUpper().Contains(AUTH_FAILURE_BIKESOCCUPIED_AUTICOOKIENOTDEFIED.ToUpper()) && !reponse.response_state.ToUpper().Contains(AUTH_FAILURE_LOGOUT_AUTHCOOKIENOTDEFIED.ToUpper())) { exception = null; return false; } exception = new AuthcookieNotDefinedException(actionText, reponse); return true; } /// Holds error description if session expired. From COPRI 4.0.0.0 1001 is the only authcookie not defined error. private const string AUTH_FAILURE_QUERY_AUTHCOOKIENOTDEFIED = "Failure 1001: authcookie not defined"; /// Holds error description if session expired (Applies to COPRI < 4.0.0.0) private const string AUTH_FAILURE_BOOK_AUTICOOKIENOTDEFIED = "Failure 1002: authcookie not defined"; /// Holds error description if session expired (Applies to COPRI < 4.0.0.0) private const string AUTH_FAILURE_BIKESOCCUPIED_AUTICOOKIENOTDEFIED = "Failure 1003: authcookie not defined"; /// Holds error description if session expired. (Applies to COPRI < 4.0.0.0) private const string AUTH_FAILURE_LOGOUT_AUTHCOOKIENOTDEFIED = "Failure 1004: authcookie not defined"; } }