public async Task <IActionResult> Details([FromQuery] Guid id) { var notice = await _noticeRepository.GetAsync(id); if (notice == null) { return(NotFound(new ApiResult <dynamic>(new { Id = ErrorCodes.InvalidNoticeId }))); } var user = await _userManager.FindByIdAsync(notice.AppUserId); var userInfo = new UserInfo { Username = user?.UserName, Email = user?.Email, Name = user?.Name }; var result = new NoticeDetails { Notice = notice, User = userInfo }; return(Ok(new ApiResult <NoticeDetails> { Result = result })); }
public NoticeViewModel(INavigation navigation, INoticeRepository noticeRepository, Guid notice) : base(navigation) { Notice = noticeRepository.GetAsync(notice) .ConfigureAwait(false) .GetAwaiter() .GetResult(); }
public async Task <IActionResult> Delete([FromQuery] Guid id) { var notice = await _noticeRepository.GetAsync(id); await _noticeRepository.DeleteAsync(notice); return(Ok(new ApiResult <string> { Result = notice.NoticeId.ToString() })); }
public async Task <IActionResult> GetAsync(string title, int index, int size) { if (index == 0) { index = 1; } var result = await _noticeRepository.GetAsync(title, index, size, HttpContext.RequestAborted); var mappedRegisters = _mapper.Map <List <NoticeDto> >(result.Registers); Response.Headers.Add("X-Total-Count", result.TotalRegisters.ToString()); return(Ok(mappedRegisters)); }
public HomeViewModel(INavigation navigation, INoticeRepository noticeRepository, ISessionService sessionService, IUserRepository userRepository, IPopupService popupService) : base(navigation, popupService) { _noticeRepository = noticeRepository; _sessionService = sessionService; _userRepository = userRepository; News = _noticeRepository.GetAsync() .ConfigureAwait(false) .GetAwaiter() .GetResult(); UpdateAndRefreshViewCommandAsync() .SafeFireAndForget(false); }
public async Task <IEnumerable <NoticeModel> > GetAsync() { var entities = await _noticeRepository.GetAsync(); return(Finish(entities)); }
private async Task UpdateAndRefreshViewCommandAsync() { try { IsRefreshing = true; var user = _sessionService.GetUser(); var newsUpdated = await ConexaoHttpClient.GetByDateAsync(user.NoticeLastUpdate, _cancellationToken); user.SetNoticeUpdated(); await _userRepository.UpdateAsync(user); var idDeletedNews = newsUpdated.Where((n) => n.State.Equals(UserNoticeState.Removed)) .Select((n) => n.Id) .ToArray(); await _noticeRepository.RemoveAsync(idDeletedNews) .ConfigureAwait(false); var idUpdatedNews = newsUpdated.Where((n) => n.State.Equals(UserNoticeState.Modified)) .Select((n) => n.Id) .ToArray(); var noticesToUpdated = await _noticeRepository.GetAsync(idUpdatedNews) .ConfigureAwait(false); //TODO: Por enquanto não vou implementar as atualizações de noticias, não vamos ter atualização de feeds. var newNotices = newsUpdated .Where((n) => !noticesToUpdated.Any((notice) => notice.Id == n.Id)) .ToList(); var noticesToInclude = newNotices.Union(newsUpdated.Where((n) => n.State == UserNoticeState.Included)) .Select((n) => new Notice { Id = n.Id, Posted = n.Posted, Image = n.Image, Message = n.Message, IdPostedBy = n.IdPostedBy, PostedBy = new Person(n.PostedBy.Id, n.PostedBy.Email, n.PostedBy.ProfileImage, n.PostedBy.Name) }) .ToList(); await _noticeRepository.InsertAsync(noticesToInclude) .ConfigureAwait(false); News = await _noticeRepository.GetAsync() .ConfigureAwait(false); OnPropertyChanged(nameof(this.News)); } catch (UnauthorizedException) { await _navigation.PushAsync(new AutenticationView()); } catch (Exception ex) { Log.Warning(nameof(HomeViewModel), ex.Message); await _popupService.ShowErrorMessageAsync(ConexaoHttpClient.PrettyMessage); } IsRefreshing = false; }