Exemplo n.º 1
0
        public async Task <GetHolidayDto> GetById(int id)
        {
            var holiday = await _holidaysRepository.GetById(id);

            var holidayDto = _mapper.Map <GetHolidayDto>(holiday);

            if (holidayDto != null)
            {
                holidayDto.ConfirmerFullName = await GetConfirmerFullName(holidayDto);
            }

            return(holidayDto);
        }
Exemplo n.º 2
0
        public async Task <int> GenerateHolidayDocx(int holidayId, FileTypeEnum holidayDocumentType)
        {
            var holiday = await _holidaysRepository.GetById(holidayId);

            var employee = await _employeesRepository.GetById(holiday.EmployeeId);

            return(await _docxGenerator.GenerateDocx(holiday, employee, holidayDocumentType));
        }
Exemplo n.º 3
0
        public async Task <bool> RequestClientApproval(int holidayId)
        {
            var holiday = await _repositoryHolidays.GetById(holidayId);

            var employee = await _repositoryEmployees.GetById(holiday.EmployeeId);

            if (employee.ClientId == null)
            {
                await RequestAdminApproval(holidayId, EmployeeClientStatus.HAS_NO_CLIENT, null);

                return(true);
            }

            var client = await _repositoryClients.GetById(employee.ClientId.GetValueOrDefault());

            await _emailService.ConfirmHolidayWithClient(client, employee, holiday);

            return(true);
        }
Exemplo n.º 4
0
        public async Task <string> GetGeneratedDocxName(int holidayId, FileTypeEnum holidayDocumentType)
        {
            var holiday = await _holidaysRepository.GetById(holidayId);

            var generationPath = _configuration["DocxGeneration:NameFormat"]
                                 .Replace("{holidayId}", holiday.Id.ToString())
                                 .Replace("{documentType}", holidayDocumentType.ToString())
                                 .Replace("{holidayType}", holiday.Type.ToString());

            return(generationPath);
        }
Exemplo n.º 5
0
        public async Task ValidateHolidayConfirmationReadiness(int holidayId, int confirmerId)
        {
            var holiday = await _holidayRepository.GetById(holidayId);

            if (holiday == null)
            {
                throw new InvalidOperationException("Holiday request not found.");
            }

            await ValidateHoliday(holiday);
            await ValidateConfirmer(confirmerId);
        }