public async Task <CalendarHolidayViewModel> GetCalendarHolidayAsync(string language)
        {
            var data = new CalendarHolidayViewModel();

            data.message = new messageModel();
            try
            {
                var userId = JwtHelper.GetUserIdFromToken(HttpContext);
                if (String.IsNullOrEmpty(userId))
                {
                    throw new Exception("Unauthorized Access");
                }
                using (var context = new StandardcanContext())
                {
                    var jsonData = JsonConvert.SerializeObject(new
                    {
                        emp_id = userId,
                        lang   = language,
                    });
                    SystemLog systemLog = new SystemLog()
                    {
                        module   = "api/CalendarHoliday/GetCalendarHoliday",
                        data_log = jsonData
                    };
                    await _systemLogService.InsertSystemLogAsync(systemLog);

                    SqlParameter emp_id = new SqlParameter("emp_id", userId ?? "");
                    SqlParameter lang   = new SqlParameter("lang", language ?? "");

                    var spData = context.SpMbGetHoliday.FromSqlRaw("sp_mb_get_holiday").ToList();
                    data.calendarholiday_list = new List <CalendarHoliday>();
                    foreach (var item in spData)
                    {
                        CalendarHoliday calendarHoliday = new CalendarHoliday();
                        calendarHoliday.startTime = item.startTime;
                        calendarHoliday.endTime   = item.endTime;
                        calendarHoliday.title     = item.title;
                        calendarHoliday.remark    = item.remark;
                        data.calendarholiday_list.Add(calendarHoliday);
                    }
                    data.message.status = "1";
                    data.message.msg    = "Success";
                }
            }
            catch (Exception ex)
            {
                data.message.status = "2";
                data.message.msg    = ex.Message;
            }
            return(data);
        }
Example #2
0
        public void TestWithCachedCalendarDataFromExternalDataSource()
        {
            var calendars = new Dictionary <string, CalendarHoliday>();

            calendars["test"] = new CalendarHoliday()
            {
                HolidayList = new List <string>()
                {
                    "2018-04-22",
                    "2018-04-29",
                    "2018-04-30",
                    "2018-05-01",
                    "2018-05-05",
                }
            };

            CalendarImpl.InitializeCalendarData(calendars);
            var cny     = CalendarImpl.Get("test");
            var start   = new Date(2018, 4, 26); // 2 days
            var end     = new Date(2018, 5, 4);  //3 days
            var numDays = cny.NumberBizDaysBetweenDate(start, end, true);

            Assert.AreEqual(5, numDays);
        }