Ejemplo n.º 1
0
        private async Task <IActionResult> GetWithFilter(int year, int value, Entity.Enums.TaskScheduleType type)
        {
            try
            {
                var getByScheduleTypeDto = new GetByScheduleTypeDto
                {
                    Year  = year,
                    Value = value,
                    Type  = type
                };

                var result = await _userTaskService.GetByScheduleType(getByScheduleTypeDto);

                if (result.Success)
                {
                    return(StatusCode(StatusCodes.Status200OK, result.Data));
                }

                return(StatusCode(StatusCodes.Status400BadRequest, result.Message));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message));
            }
        }
Ejemplo n.º 2
0
        public async Task <IDataResult <IList <UserTaskDto> > > GetByScheduleType(GetByScheduleTypeDto scheduleTypeDto)
        {
            IList <UserTask> list = null;

            if (scheduleTypeDto.Year == 0 && scheduleTypeDto.Value == 0)
            {
                list = _userTaskDal.GetList(x => x.TaskType.Id == (int)scheduleTypeDto.Type, t => t.TaskType);

                return(new SuccessDataResult <IList <UserTaskDto> >(_mapper.Map <IList <UserTaskDto> >(list)));
            }

            switch (scheduleTypeDto.Type)
            {
            case TaskScheduleType.Daily:
                list = _userTaskDal.GetList(x =>
                                            x.TaskType.Id == (int)TaskScheduleType.Daily &&
                                            ((x.EndDate.DayOfYear == scheduleTypeDto.Value && x.EndDate.Year == scheduleTypeDto.Year) ||
                                             (x.StartDate.DayOfYear == scheduleTypeDto.Value && x.StartDate.Year == scheduleTypeDto.Year)), t => t.TaskType);

                break;

            case TaskScheduleType.Weekly:
                _userTaskDal.GetList(x =>
                                     x.TaskType.Id == (int)TaskScheduleType.Weekly &&
                                     ((x.EndDate.GetWeekOfTheYear() == scheduleTypeDto.Value && x.EndDate.Year == scheduleTypeDto.Year) ||
                                      (x.StartDate.GetWeekOfTheYear() == scheduleTypeDto.Value && x.StartDate.Year == scheduleTypeDto.Year)), t => t.TaskType);

                break;

            case TaskScheduleType.Monthly:
                list = _userTaskDal.GetList(x =>
                                            x.TaskType.Id == (int)TaskScheduleType.Monthly &&
                                            ((x.EndDate.Month == scheduleTypeDto.Value && x.EndDate.Year == scheduleTypeDto.Year) ||
                                             (x.StartDate.Month == scheduleTypeDto.Value && x.StartDate.Year == scheduleTypeDto.Year)), t => t.TaskType);
                break;
            }

            if (list == null)
            {
                return(new ErrorDataResult <IList <UserTaskDto> >());
            }

            var listDto = _mapper.Map <IList <UserTaskDto> >(list);

            return(new SuccessDataResult <IList <UserTaskDto> >(listDto));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> GetWithTypeFilter([FromBody] GetByScheduleTypeDto getByScheduleTypeDto)
        {
            try
            {
                var result = await _userTaskService.GetByScheduleType(getByScheduleTypeDto);

                if (result.Success)
                {
                    return(StatusCode(StatusCodes.Status200OK, result.Data));
                }

                return(StatusCode(StatusCodes.Status400BadRequest, result.Message));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message));
            }
        }