public IHttpActionResult VerifyEmployeeClockIn([FromBody] VerifyClockInModel model) { var container = ContainerConfig.Configure(); using (var scope = container.BeginLifetimeScope()) { var app = scope.Resolve <ILoginBusinessRules>(); VerifyClockInResultModel verifyResult = app.VerifyEmployeeClockIn(model); return(Json(verifyResult)); } }
public void VerifyEmployeeClockIn_WhenUserNameIsCorrect_ReturnsSuccessMessage() { VerifyClockInModel input = new VerifyClockInModel { UserName = "******" }; DateTime now = DateTime.Now; Mock <IUserDataAccess> user = new Mock <IUserDataAccess>(); Mock <IDailyTimeInDataAccess> timeIn = new Mock <IDailyTimeInDataAccess>(); Mock <IDailyTimeOutDataAccess> timeOut = new Mock <IDailyTimeOutDataAccess>(); timeIn.Setup(x => x.GetEmployeeRecentTimeIn(input.UserName)).Returns(new DailyTimeIn() { TimeInId = 1, ActivityCd = 1, EmployeeId = 10001, IsActive = true, TimeInDttm = now, CreateUserId = input.UserName, CreateDttm = now, UpdateUserId = input.UserName, UpdateDttm = now }); timeOut.Setup(x => x.GetEmployeeDailyTimeOut(input.UserName, now)).Returns(new DailyTimeOut() { TimeInId = 1, ActivityCd = 1, EmployeeId = 10001, IsActive = true, TimeOutDttm = now, CreateUserId = input.UserName, CreateDttm = now, UpdateUserId = input.UserName, UpdateDttm = now }); ILoginBusinessRules app = new LoginBusinessRules(user.Object, timeIn.Object, timeOut.Object); var output = app.VerifyEmployeeClockIn(input); Assert.AreEqual("Query success.", output.QueryStatus); }
public void VerifyEmployeeClockIn_WhenUserNameIsNull_ReturnsUserNameError() { VerifyClockInModel input = new VerifyClockInModel { UserName = null }; Mock <IUserDataAccess> user = new Mock <IUserDataAccess>(); Mock <IDailyTimeInDataAccess> timeIn = new Mock <IDailyTimeInDataAccess>(); Mock <IDailyTimeOutDataAccess> timeOut = new Mock <IDailyTimeOutDataAccess>(); timeIn.Setup(x => x.GetEmployeeRecentTimeIn(input.UserName)).Returns(new DailyTimeIn()); ILoginBusinessRules app = new LoginBusinessRules(user.Object, timeIn.Object, timeOut.Object); var output = app.VerifyEmployeeClockIn(input); Assert.AreEqual("No data being processed.", output.QueryStatus); }
/// <summary> /// /// </summary> /// <param name="userName"></param> /// <returns></returns> public VerifyClockInResultModel VerifyEmployeeClockIn(VerifyClockInModel model) { VerifyClockInResultModel result = new VerifyClockInResultModel() { ClockedIn = false }; if (string.IsNullOrEmpty(model.UserName)) { result.QueryStatus = "No data being processed."; return(result); } var query = _timeInDataAccess.GetEmployeeRecentTimeIn(model.UserName); if (query == null) { result.QueryStatus = "Query success."; return(result); } var queryTimeOut = _timeOutDataAccess.GetEmployeeDailyTimeOut(model.UserName, query.TimeInDttm); if (queryTimeOut == null) { result.QueryStatus = "Query success."; result.ActivityNm = query.Activity.ActivityNm; result.ActivityId = query.ActivityCd; result.ClockedIn = true; return(result); } else { result.QueryStatus = "Query success."; return(result); } }