public async Task <bool> WriteAsync(IProject project, string location)
        {
            Argument.IsNotNull(() => project);
            Argument.IsNotNullOrWhitespace(() => location);

            Log.Debug("Writing all data to '{0}'", location);

            if (!await WriteToLocationAsync((TProject)project, location).ConfigureAwait(false))
            {
                Log.Error("Failed to write all data to '{0}'", location);
                return(false);
            }

            project.Location = location;
            project.ClearIsDirty();

            Log.Info("Wrote all data to '{0}'", location);

            return(true);
        }