Пример #1
0
 public void ForceVacationForEmployee(VacationDTO request)
 {
     request.VacationID           = Guid.NewGuid().ToString();
     request.VacationStatusTypeID = GetStatusIdByType(VacationStatusTypeEnum.Pending.ToString());
     request.Created = DateTime.UtcNow;
     CreateVacation(request);
 }
Пример #2
0
        public static VacationDTO GetVacationDTO(Vacation Vacation)
        {
            VacationDTO VacationDTO = new VacationDTO();

            VacationDTO.describe   = Vacation.describe;
            VacationDTO.VacationId = Vacation.VacationId;
            VacationDTO.EndDate    = Vacation.EndDate;
            VacationDTO.StudentId  = Vacation.StudentId;
            VacationDTO.EndTime    = Vacation.EndTime;
            VacationDTO.StartDate  = Vacation.StartDate;
            VacationDTO.EndDate    = Vacation.EndDate;
            VacationDTO.TeacherId  = Vacation.TeacherId;
            return(VacationDTO);
        }
Пример #3
0
        public async Task <string> TakeVacation(VacationDTO vacationDto, Guid userId)
        {
            var count = await UnitOfWork.GetRepository <Vacation>()
                        .Where(v =>
                               vacationDto.DateStart >= v.DateStart && vacationDto.DateStart <= v.DateEnd ||
                               vacationDto.DateEnd >= v.DateStart && vacationDto.DateEnd <= v.DateEnd).CountAsync();

            if (count < 3)
            {
                var item = Mapper.Map <VacationDTO, Vacation>(vacationDto);
                item.UserId = userId;
                UnitOfWork.GetRepository <Vacation>().Add(item);
                await UnitOfWork.CommitAsync();

                return("Success take vacation");
            }

            return("Fail take vacation");
        }
Пример #4
0
        public void CreateVacation(VacationDTO vacation)
        {
            using (TransactionScope scope = new TransactionScope())
            {
                _vacations.Add(Mapper.Map <VacationDTO, Vacation>(vacation));

                var employee = _employees.GetById(vacation.EmployeeID);

                if (employee.EmployeesTeam.Count > 0)
                {
                    var team     = employee.EmployeesTeam.First();
                    var teamLead = _employees.GetById(team.TeamLeadID);

                    _emailService.SendAsync(teamLead.WorkEmail, $"{teamLead.Name} {teamLead.Surname}", "Vacation request.", "Employee has requested a vacation.",
                                            $"{teamLead.Name} {teamLead.Surname}, your employee, {employee.Name} {teamLead.Surname}, has requested a vacation from {vacation.DateOfBegin.ToString("dd-MM-yyyy")} to {vacation.DateOfEnd.ToString("dd-MM-yyyy")}. Please, check it.");
                }

                scope.Complete();
            }
        }
Пример #5
0
 public void Create(VacationDTO vacation)
 {
     _vacationRepository.Add(Mapper.Map <VacationDTO, Vacation>(vacation));
 }
Пример #6
0
        public async Task <BaseResultOfVacationDTO> CreateOrUpdateVacationAsync(VacationDTO vacationDto, CancellationToken cancellationToken)
        {
            var token = await _identyApi.GetAuthorizationTokenAsync();

            return(await _apiContext.SendRequestAsync <BaseResultOfVacationDTO, VacationDTO>(new SharedContextParameters(_url, Method.POST, token), vacationDto, cancellationToken));
        }