Пример #1
0
        private async Task UpdateTaskNoviceLog(TaskItem item, TaskInfo taskInfo)
        {
            if (taskInfo.IsNoviceTask == 1 && taskInfo.IsDisposable == 1)
            {
                if (await _ITaskNoviceLogRepository.IsExistAsync(a => a.TaskId == taskInfo.TaskId && a.MemberId == item.MemberId && a.IsEnable == 1))
                {
                    await _ITaskNoviceLogRepository.BatchUpdateAsync(a => a.TaskId == taskInfo.TaskId && a.MemberId == item.MemberId,
                                                                     a => new TaskNoviceLog()
                    {
                        IsEnable = 0
                    });

                    if (!await _ITaskNoviceLogRepository.IsExistAsync(a => a.TaskId == taskInfo.TaskId && a.MemberId == item.MemberId && a.IsEnable == 1))
                    {
                        await _IMemberInfosRepository.BatchUpdateAsync(a => a.MemberId == item.MemberId, a => new MemberInfos()
                        {
                            IsNoviceTask = 1
                        });
                    }
                }
            }
        }
Пример #2
0
        public async Task <IActionResult> GetTaskNovicesAsync([FromHeader] String source,
                                                              [FromQuery] MemberIdGet item)
        {
            var response = new Response <Object>();

            try {
                if (await _ITaskNoviceLogRepository.IsExistAsync(a => a.MemberId == item.MemberId && a.IsEnable == 1))
                {
                    var noviceLogIds = await _ITaskNoviceLogRepository.Query(a => a.MemberId == item.MemberId && a.CategoryDay == 1 && a.IsEnable == 1)
                                       .Select(a => a.TaskId)
                                       .ToListAsync();

                    var tasks = await _ITaskInfoRepository.Query(a => noviceLogIds.Contains(a.TaskId) &&
                                                                 a.IsDisplay == 1 &&
                                                                 a.IsEnable == 1)
                                .OrderBy(a => a.Sequence)
                                .Select(a => new TaskInfoDto {
                        TaskId        = a.TaskId,
                        TaskName      = a.TaskName,
                        TaskCode      = a.TaskCode,
                        ShowDesc      = a.ShowDesc,
                        BeansText     = a.BeansText,
                        Tips          = a.Tips,
                        CategoryDay   = a.CategoryDay,
                        IconType      = a.IconType,
                        JumpType      = a.JumpType,
                        JumpTitle     = a.JumpTitle,
                        JumpUrl       = a.JumpUrl,
                        AlreadyNumber = a.UpperNumber.HasValue ? a.MemberIncomes.Count(b => b.TaskCode == a.TaskCode && b.MemberId == item.MemberId) : (a.UpperSeconds.HasValue ? a.MemberIncomes.Sum(b => b.ReadTime) / 60 : 0),
                        UpperNumber   = a.UpperNumber.HasValue ? a.UpperNumber : (a.UpperSeconds.HasValue ? a.UpperSeconds / 60 : 0),
                        UpperBeans    = a.UpperBeans.HasValue ? a.UpperBeans : (a.UpperSeconds.HasValue ? a.UpperSecondsBeans : 0)
                    })
                                .ToListAsync();

                    response.Code = true;
                    response.Data = tasks;
                }
                else
                {
                    return(NoContent());
                }
            }
            catch (Exception ex) {
                response.SetError(ex, this._ILogger);
            }
            return(response.ToHttpResponse());
        }