public async Task <IList <MerchandiseDto> > GetMerchandises() { IList <Merchandise> merchandisesResponse = await communicationService.AskForMerchandises(); List <MerchandiseDto> merchandisesDto = new List <MerchandiseDto>(); await Task.Factory.StartNew(() => { lock (m_SyncObject) { _dataRepository.RefreshMerchandises(merchandisesResponse); merchandisesDto = _dataRepository.GetMerchandises().ToList().ToDto(); } }); return(merchandisesDto); }