public override IQuestHandler.QuestState GetState() { ListSessionsRequest listSessionsRequest = new ListSessionsRequest(); listSessionsRequest.StartTime = Quest.CreationDate.ToString(); listSessionsRequest.EndTime = Quest.ExpirationDate.ToString(); ListSessionstResponse listSessionstResponse = GoogleFitService.ListSessions(_user, listSessionsRequest).GetAwaiter().GetResult(); if (Quest.IsClaimed) { return(IQuestHandler.QuestState.Claimed); } else if (listSessionstResponse.Sessions.Count >= Quest.ProgressCount) { return(IQuestHandler.QuestState.Finished); } else if (Quest.ExpirationDate > DateTime.Now) { return(IQuestHandler.QuestState.InProgress); } else { return(IQuestHandler.QuestState.Failed); } }
protected override void ExecuteRequest(HttpContext context) { (bool isOk, User user) = CheckClaimsForUser(Request, context, _userRepository); if (!isOk || user == null) { return; } ListSessionsRequest listSessionsRequest = new ListSessionsRequest(); ListSessionstResponse listSessionstResponse = GoogleFitService.ListSessions(user, listSessionsRequest).GetAwaiter().GetResult(); List <Session> sessions = listSessionstResponse.Sessions; List <GetSleepEntriesDTOResponse.SessionDTOResponse> sessionsReponseDTO = sessions.Select( session => new GetSleepEntriesDTOResponse.SessionDTOResponse( session.Id, session.Name, session.Description, session.StartTimeMillis, session.EndTimeMillis, session.ModifiedTimeMillis, new GetSleepEntriesDTOResponse.SessionDTOResponse.AppliactionDTOResponse( session.Application.PackageName, session.Application.Version, session.Application.DetailUrl, session.Application.Name ), ((ActivityType)session.ActivityType).ToString(), session.ActiveTimeMillis )).ToList(); GetSleepEntriesDTOResponse responseDTO = new GetSleepEntriesDTOResponse(sessionsReponseDTO); string questsJson = JsonSerializer.Serialize(responseDTO.Sessions); context.Response.StatusCode = StatusCodes.Status200OK; context.Response.WriteAsync(questsJson).GetAwaiter().GetResult(); }