/// <summary> /// RecordLogInAttempt() /// </summary> private void RecordLogInAttempt(string username, bool loginSuccessful, string info = "", GOUserDataObject user = null) { // if login not successful and no info provided, fill it in if (!loginSuccessful && String.IsNullOrEmpty(info)) { bool userIsRegistered = DataFacade.GOUserDataProvider.GetCollection(null, String.Format("(UserName == \"{0}\" || EmailAddress == \"{0}\")", username), skipSecurity: true).Any(); if (userIsRegistered) { info = "Invalid password"; } else { info = "Invalid username"; } } { // Persist via data provider GOLoginHistoryDataObject record = new GOLoginHistoryDataObject(); record.Timestamp = DateTime.UtcNow; record.User = username; record.Result = loginSuccessful; record.Info = info; DataFacade.GOLoginHistoryDataProvider.Save(record, skipSecurity: true); } }
public void GOLoginHistoryPostTest(IDictionary testData) { #region Arrange var currentEntity = new GOLoginHistoryDataObject(); var include = ""; var token = ""; currentEntity.IsNew = Convert.ToBoolean(testData["IsNew"].ToString()); if (!currentEntity.IsNew) { currentEntity.Id = Convert.ToInt32(testData["Id"].ToString().Trim()); include = testData["Include"].ToString().Trim(); } currentEntity.Info = testData["Info"]?.ToString().Trim() != null ? testData["Info"]?.ToString().Trim().ToString() : null; currentEntity.Result = Convert.ToBoolean(testData["Result"]?.ToString().Trim()); currentEntity.Timestamp = Convert.ToDateTime(testData["Timestamp"]?.ToString().Trim()); currentEntity.User = testData["User"]?.ToString().Trim() != null ? testData["User"]?.ToString().Trim().ToString() : null; var expected_result = ConvertToStatusCode(testData["Result"]); #endregion #region Act var json = JsonConvert.SerializeObject(currentEntity); var postUrl = APITestManager.doPostRequestBody(json, include); APIWebRequest request = new APIWebRequest(); var username = testData["Username"].ToString().Trim(); var password = testData["Password"].ToString().Trim(); token = request.getToken(APITestManager.getAuthenticateUrl(), username, password); using (var testResponse = request.ProcessAPIWebRequest(appUrl, APIWebRequest.TypeCall.Save, postUrl, token)) { var status_code = testResponse.StatusCode; var status_description = testResponse.Status; var response_body = testResponse.Body; #endregion #region Assert APITestManager.displayResponse(testResponse); Assert.AreEqual(expected_result, status_code); if (status_code == HttpStatusCode.OK) { // to be implemented } #endregion } }