public string SendCode([FromBody] JObject value) { try { if (!value.ContainsKey(ParseDataKeyApi.KEY_TWO_FA_SEND_CODE_ACTION)) { return(HelpersApi.CreateDataError(MessageApiError.PARAM_INVALID)); } var userModel = (User)RouteData.Values[ParseDataKeyApi.KEY_PASS_DATA_USER_MODEL]; var code = ""; if (value.ContainsKey(ParseDataKeyApi.KEY_PASS_DATA_GET_CODE)) { code = value[ParseDataKeyApi.KEY_PASS_DATA_GET_CODE].ToString(); } if (userModel.IsTwoFactor == 1) { if (!value.ContainsKey(ParseDataKeyApi.KEY_PASS_DATA_GET_CODE)) { return(HelpersApi.CreateDataError(MessageApiError.PARAM_INVALID)); } if (!HelpersApi.CheckCodeGoogle(userModel.TwoFactorSecret, code)) { return(HelpersApi.CreateDataError(MessageApiError.PARAM_INVALID)); } } var action = value[ParseDataKeyApi.KEY_TWO_FA_SEND_CODE_ACTION].ToString(); string secret; var time = 30; switch (action) { case ActionLog.TWOFA_ENABLE: secret = ActionLog.TWOFA_ENABLE; break; case ActionLog.CUSTOM_TWOFA: secret = ActionLog.CUSTOM_TWOFA; break; case ActionLog.AVATAR: secret = ActionLog.AVATAR; break; case ActionLog.UPDATE_PREFERENCES: secret = ActionLog.UPDATE_PREFERENCES; break; case ActionLog.UPDATE_OPTION_VETIFY: secret = ActionLog.UPDATE_OPTION_VETIFY; break; case ActionLog.UPDATE_PROFILE: secret = ActionLog.UPDATE_PROFILE; break; case ActionLog.TWOFA_DISABLE: secret = ActionLog.TWOFA_DISABLE; break; case ActionLog.LOCK_SCREEN: secret = ActionLog.LOCK_SCREEN; break; case ActionLog.SEND_TRANSACTION: secret = ActionLog.SEND_TRANSACTION; break; case ActionLog.API_ACCESS_ADD: secret = ActionLog.API_ACCESS_ADD; time = 120; break; case ActionLog.API_ACCESS_EDIT: secret = ActionLog.API_ACCESS_EDIT; time = 120; break; case ActionLog.API_ACCESS_STATUS: secret = ActionLog.API_ACCESS_STATUS; break; case ActionLog.API_ACCESS_DELETE: secret = ActionLog.API_ACCESS_DELETE; break; default: return(HelpersApi.CreateDataError(MessageApiError.PARAM_INVALID)); } var checkSecret = HelpersApi.CheckToken(userModel, secret); if (checkSecret == null) { return(HelpersApi.CreateDataError(MessageApiError.SMS_ERROR)); } if (checkSecret.NewSecret == null) { return(HelpersApi.CreateDataError(MessageApiError.SMS_ERROR)); } if (checkSecret.Secret == null) { return(HelpersApi.CreateDataError(MessageApiError.SMS_ERROR)); } userModel.SecretAuthToken = checkSecret.NewSecret; var resultUpdate = _userBusiness.UpdateProfile(userModel); return(resultUpdate.Status == Status.STATUS_ERROR ? resultUpdate.ToJson() : _userBusiness.SendSms(userModel, HelpersApi.SendCodeSms(checkSecret.Secret, time)).ToJson()); } catch (Exception e) { _logger.Error(KeyLogger.TWOFA_REQUIRED_SEND_CODE + e); return(HelpersApi.CreateDataError(e.Message)); } }