private void DownloadBook(DownloadItemDataModel item)
        {
            try
            {
                using (var isostore = IsolatedStorageFile.GetUserStoreForApplication())
                {
                    for (;;)
                    {
                        var fileLoader = _fileLoadingFactory.GetFileLoader(item.DataSourceID, item.IsTrial);
                        if (fileLoader == null)
                        {
                            throw new Exception(DATA_SOURCE_NOT_FOUND_MESSAGE);
                        }
                        try
                        {
                            var file = fileLoader.LoadFile(item.Path, item.IsZip);

                            SaveToFile(PrepareFilePath(item, isostore), file);
                            SetItemStatus(item, DownloadStatus.Parsing);
                            break;
                        }
                        catch (RestartException)
                        {
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                HandleDownloadException(item, exception);
            }
        }