Data takes a long time to load

79 Views Asked by At

I have a Maui net application for the mobile part and Vuejs for the web part, all of this is linked to an API in C#, and the database (SSMS) and the API are on Azure. The problem is that when I retrieve the data to display it it takes time (around 2-3 minutes). I don't know how to make it faster.

Vue.js

 async fetchActivities() {
    try {
    const response = await fetch('/api/v1/Activities/all');
    if (!response.ok) {
      throw new Error(`Network response was not ok, status: ${response.status}`);
    }

C#

 httpclient.BaseAddress = new Uri(AppSettings.UrlApi);
 httpclient.Timeout = TimeSpan.FromMinutes(2);
 string oauthToken = await SecureStorage.Default.GetAsync(AppSettings.AuthToken);
 httpclient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", oauthToken);
 int loginUserId = Convert.ToInt32(await SecureStorage.Default.GetAsync(AppSettings.UserId));
 var requestUri = "api/v1/Activities/all";

 var response = await httpclient.GetAsync(requestUri);
 var content = await response.Content.ReadAsStringAsync();

Api

//[Authorize]
[ApiController]
[Route("api/v1/[controller]")]
public class ActivitiesController : ControllerBase
{
    private readonly IActivitiesRepository _activitiesRepository;
    private readonly IMessagesRepository _messagesRepository;
    private readonly IUsersRepository _usersRepository;
    private readonly IMapper _mapper;
    private readonly IImagesRepository _imagesRepository;

    public ActivitiesController(IActivitiesRepository activitiesRepository, IMapper mapper, IUsersRepository usersRepository, IMessagesRepository messagesRepository, IImagesRepository imagesRepository)
    {
        _activitiesRepository = activitiesRepository;
        _usersRepository = usersRepository;
        _mapper = mapper;
        _messagesRepository = messagesRepository;
        _imagesRepository = imagesRepository;
    }

    [HttpGet("{id}")]
    public async Task<ActionResult<ActivitiesEntity>> GetActivitiesbyIdAsync(int id)
    {
        ActivitiesEntity activitiesEntity = await _activitiesRepository.FindByIdAsync(id);
        return Ok(activitiesEntity);
    }

    [HttpGet]
    [Route("all")]
    public async Task<ActionResult<IEnumerable<ActivitiesEntity>>> GetActivities()
    {
        IEnumerable<ActivitiesEntity>? activities = await _activitiesRepository.FindAllIncludingAsync(x => x.Images);
        var response = _mapper.Map<IEnumerable<ActivitiesModel>>(activities);
        return Ok(response);
    }
 public virtual async Task<IEnumerable<TEntity>> FindAllIncludingAsync(params Expression<Func<TEntity, object>>[] includeProperties)
 {
     IQueryable<TEntity> query = _entities.AsNoTracking();
     foreach (var includeProperty in includeProperties)
     {
         query = query.Include(includeProperty);
     }
     return await query.ToListAsync();
 }

0

There are 0 best solutions below