private void HandleMessage(GeneratedReportModel model)
 {
     _reportService.UpdateByLocation(model.Location, new Report()
     {
         ContactCount     = model.ContactCount,
         PhoneNumberCount = model.PhoneNumberCount,
         Location         = model.Location
     });
 }
Example #2
0
        public IHttpActionResult GenerateEmployeeMonthyReport([FromBody] ReportQueryModel employeeReport)
        {
            var container = ContainerConfig.Configure();

            using (var scope = container.BeginLifetimeScope())
            {
                var app = scope.Resolve <ITimeInEmployeeReport>();

                ReportQueryModel getReport = new ReportQueryModel()
                {
                    ReportDate = employeeReport.ReportDate,
                    UserName   = employeeReport.UserName
                };

                GeneratedReportModel result = app.GenerateMonthlyReport(getReport);

                return(Json(result));
            }
        }
Example #3
0
 private void HandleMessage(GeneratedReportModel model)
 {
 }
Example #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="report"></param>
        /// <returns></returns>
        public GeneratedReportModel GenerateMonthlyReport(ReportQueryModel report)
        {
            DateTime             reportDate;
            GeneratedReportModel result = new GeneratedReportModel();

            if (report == null)
            {
                result.QueryStatus = "No data being processed.";
                return(result);
            }

            if (report.UserName == "")
            {
                result.QueryStatus = "Employee username is blank.";
                return(result);
            }

            bool dateStringCheck = DateTime.TryParse(report.ReportDate, out reportDate);

            if (!dateStringCheck)
            {
                result.QueryStatus = "Invalid report date selected.";
                return(result);
            }

            if (reportDate < DateTime.Parse("1900-01-01") || reportDate > DateTime.Now)
            {
                result.QueryStatus = "Invalid report date selected.";
                return(result);
            }

            var userQuery = _userDataAccess.GetUser(report.UserName);

            if (userQuery == null)
            {
                result.QueryStatus = "Employee not found.";
                return(result);
            }

            var timeIn  = _timeInDataAccess.GetEmployeeMonthTimeIn(userQuery.UserKey, reportDate);
            var timeOut = _timeOutDataAccess.GetEmployeeMonthTimeOut(userQuery.UserKey, reportDate);

            if (timeIn.Count == 0 && timeOut.Count == 0)
            {
                result.QueryStatus = "No data available.";
                return(result);
            }

            if (timeIn.Count == 0)
            {
                result.TimeList = timeOut.Select(x => new TimeInTimeOut
                {
                    ActivityName    = x.Activity.ActivityNm,
                    TImeOutDateTime = x.TimeOutDttm.ToString(),
                    TimeInDateTime  = null
                }).ToList();

                result.QueryStatus = "Report generated.";

                return(result);
            }
            else if (timeOut.Count == 0)
            {
                result.TimeList = timeIn.Select(x => new TimeInTimeOut
                {
                    ActivityName    = x.Activity.ActivityNm,
                    TImeOutDateTime = null,
                    TimeInDateTime  = x.TimeInDttm.ToString()
                }).ToList();

                result.QueryStatus = "Report generated.";

                return(result);
            }
            else
            {
                //result.TimeList = timeIn.Join(timeOut.DefaultIfEmpty(),
                //    ti => ti.TimeInDttm.Date,
                //    to => to.TimeOutDttm.Date,
                //    (ti, to) => new TimeInTimeOut
                //    {
                //        ActivityName = ti.Activity.ActivityNm,
                //        TimeInDateTime = ti.TimeInDttm,
                //        TImeOutDateTime = to.TimeOutDttm
                //    }).ToList();

                result.TimeList = (from ti in timeIn
                                   join to in timeOut.DefaultIfEmpty()
                                   on ti.TimeInDttm.Date equals to.TimeOutDttm.Date into tito
                                   from to in tito.DefaultIfEmpty()
                                   select new TimeInTimeOut
                {
                    ActivityName = ti.Activity.ActivityNm,
                    TimeInDateTime = ti.TimeInDttm.ToString(),
                    TImeOutDateTime = to?.TimeOutDttm.ToString()
                }
                                   ).ToList();

                result.QueryStatus = "Report generated.";

                return(result);
            }
        }