Exemplo n.º 1
0
        public async Task SendHolidayReports()
        {
            var currentTime = _timeService.GetCurrentTime();

            _logger.LogInformation("SendHolidayReports() was initiated at " + currentTime);

            if (currentTime.Month != currentTime.AddDays(1).Month)
            {
                try
                {
                    var allHolidays = await _holidaysRepository.GetAll();

                    var currentMonthHolidays = allHolidays.Where(h =>
                                                                 h.Status == HolidayStatus.AdminConfirmed &&
                                                                 h.FromInclusive.Year == currentTime.Year &&
                                                                 h.FromInclusive.Month == currentTime.Month
                                                                 ).ToList();

                    var holidaysWithClients = await _holidayInfoService.GetClientsAndHolidays(currentMonthHolidays);

                    var admins = await _employeeRepository.GetAllAdmins();

                    await _emailService.SendThisMonthsHolidayInfo(admins, holidaysWithClients);
                }
                catch (Exception exception)
                {
                    _logger.LogInformation(exception.ToString() + " occurred in SendHolidayReports() at " + currentTime);
                }
            }

            _logger.LogInformation("SendHolidayReports() ended at " + currentTime);
        }
Exemplo n.º 2
0
        public async Task <ICollection <GetHolidayDto> > GetAll()
        {
            var holidays = await _holidaysRepository.GetAll();

            var holidaysDto = _mapper.Map <GetHolidayDto[]>(holidays).OrderByDescending(h => h.RequestCreatedDate).ToList();

            foreach (var holidayDto in holidaysDto)
            {
                holidayDto.ConfirmerFullName = await GetConfirmerFullName(holidayDto);
            }

            return(holidaysDto);
        }
Exemplo n.º 3
0
        public async Task <HealthCheckResult> CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = default)
        {
            var holidays = await _holidaysRepository.GetAll();

            var clients = await _clientRepository.GetAll();

            return(HealthCheckResult.Healthy());
        }
Exemplo n.º 4
0
        public override Task <HolidaysResponse> GetAll(Empty request, ServerCallContext context)
        {
            HolidaysResponse response = new()
            {
                Status = new BaseResponse {
                    Code = Code.Success, ErrorMessage = string.Empty
                }
            };

            try
            {
                IQueryable <Holiday> holidays = _holidaysRepository.GetAll();

                foreach (Holiday holiday in holidays)
                {
                    response.Data.Add(ToRpcModel(holiday));
                }

                LogData logData = new()
                {
                    CallSide         = nameof(HolidaysService),
                    CallerMethodName = nameof(GetAll),
                    CreatedOn        = _dateTimeUtil.GetCurrentDateTime(),
                    Request          = request,
                    Response         = response
                };
                _logger.AddLog(logData);
            }
            catch (Exception ex)
            {
                LogData logData = new()
                {
                    CallSide         = nameof(HolidaysService),
                    CallerMethodName = nameof(GetAll),
                    CreatedOn        = _dateTimeUtil.GetCurrentDateTime(),
                    Request          = request,
                    Response         = ex
                };
                _logger.AddErrorLog(logData);
                response.Status.Code         = Code.UnknownError;
                response.Status.ErrorMessage = "An error occured while loading holidays data";
            }

            return(Task.FromResult(response));
        }