예제 #1
0
        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));
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        /// <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);
            }
        }