コード例 #1
0
        private async Task <List <StudentDocument> > Get()
        {
            var idsWithNoOfRetry = await _redisService.ExtractIdsFromSetWithScore(nameof(StudentDocument))
                                   .ConfigureAwait(false);

            if (idsWithNoOfRetry == null || idsWithNoOfRetry.Count == 0)
            {
                return(null);
            }

            var students = new List <StudentDocument>();

            foreach (var(id, noOfRetries) in idsWithNoOfRetry)
            {
                var currentRetryAttempt = (int)noOfRetries;

                StudentModel studentModel = _studentService.Get(id);

                if (studentModel != null)
                {
                    Logger.Debug($"Student id {id} found. Will be synced in ES");

                    students.Add(BuildStudent(studentModel, currentRetryAttempt));
                }
                else
                {
                    Logger.Debug($"Student id {id} not found. Will be deleted from ES");

                    students.Add(new StudentDocument
                    {
                        Id        = id,
                        Deleted   = true,
                        NoOfRetry = currentRetryAttempt
                    });
                }
            }

            return(students);
        }