public async Task <List <PrintedLog> > GetLogs()
        {
            var logs = await _identityMap.GetAllLogs();

            List <PrintedLog>         results = new List <PrintedLog>();
            List <Task <PrintedLog> > tasker  = new List <Task <PrintedLog> >(logs.Count);

            tasker.AddRange(logs.Select(log => GetPLog(log)));

            foreach (var task in tasker)
            {
                results.Add(await task);
            }

            return(results);

            async Task <PrintedLog> GetPLog(Log log)
            {
                ModelCopy modelCopy = await _identityMap.FindModelCopy(log.ModelCopyID).ConfigureAwait(false);

                string modelName = "";

                switch (modelCopy.modelType)
                {
                case TypeEnum.Book:
                    modelName = (await _identityMap.FindBook(modelCopy.modelID))?.Title;
                    break;

                case TypeEnum.Magazine:
                    modelName = (await _identityMap.FindMagazine(modelCopy.modelID))?.Title;
                    break;

                case TypeEnum.Movie:
                    modelName = (await _identityMap.FindMovie(modelCopy.modelID))?.Title;
                    break;

                case TypeEnum.Music:
                    modelName = (await _identityMap.FindMusic(modelCopy.modelID))?.Title;
                    break;
                }

                Client client = await _clientManager.FindByIdAsync(log.ClientID.ToString());

                return(new PrintedLog(client.FirstName + " " + client.LastName, log.Transaction,
                                      modelCopy.modelType, modelName, log.ModelCopyID, log.TransactionTime));
            }
        }