public async Task DeleteFileAsync()
        {
            var file = SelectedFile;

            if (file == null)
            {
                Log($"No file selected");
                return;
            }

            var c = new SwiftClient();

            if (!await AuthenticateIfNeededAsync())
            {
                Log($"Could not authenticated: could not retreive a valid token");
                return;
            }
            c.InitToken(Token);


            var resp = await c.ObjectDeleteAsync(ObjectStoreUrl, Container, file.Name);

            Log($"File '{file.Name}' {(resp.IsSuccess ? "" : "not ")}deleted successfully");

            await ContainerInfoAsync();
        }
        public async Task ContainerInfoAsync()
        {
            var c = new SwiftClient();

            if (!await AuthenticateIfNeededAsync())
            {
                Log($"Could not authenticated: could not retreive a valid token");
                return;
            }
            c.InitToken(Token);
            var resp = await c.ContainerGetAsync(ObjectStoreUrl, Container);

            Log($"Container '{Container}' infos received {(resp.IsSuccess ? "" : "not ")}successfully");
            if (resp.IsSuccess)
            {
                Log($"{resp.ContentObject.Count} file(s)");
                Files.Clear();

                foreach (var file in resp.ContentObject)
                {
                    Log($"file: {file.Name} ({file.Bytes} bytes, last modified {file.Last_modified}, content type: '{file.Content_type}')");
                    Files.Add(file);
                }
            }
        }
        public async Task SendFileAsync()
        {
            var c = new SwiftClient();

            if (!await AuthenticateIfNeededAsync())
            {
                Log($"Could not authenticated: could not retreive a valid token");
                return;
            }
            c.InitToken(Token);

            var file = System.IO.File.OpenRead(NewFileSource);

            string contentType = "application/octet-stream";

            contentType = MimeTypeMap.GetMimeType(System.IO.Path.GetExtension(NewFileSource));

            var resp = await c.ObjectPutAsync(ObjectStoreUrl, Container, NewFileName, file, contentType);

            Log($"File '{NewFileName}' {(resp.IsSuccess ? "" : "not ")}sent successfully");
            //if (resp.IsSuccess)
            //{
            //    Log($"{resp.ContentObject.Count} file(s)");
            //    Files.Clear();

            //    foreach (var file in resp.ContentObject)
            //    {
            //        Log($"file: {file.Name} ({file.Bytes} bytes, last modified {file.LastModified}, content type: '{file.Content_type}')");
            //        Files.Add(file);
            //    }
            //    if (resp.ContentObject.Count > 0)
            //        Container = resp.ContentObject.First().Name;
            //}
            await ContainerInfoAsync();
        }
        public async Task ListContainersAsync()
        {
            var c = new SwiftClient();

            if (!await AuthenticateIfNeededAsync())
            {
                Log($"Could not authenticated: could not retreive a valid token");
                return;
            }
            c.InitToken(Token);
            var resp = await c.AccountListContainersAsync(ObjectStoreUrl);

            Log($"Containers listing {(resp.IsSuccess ? "" : "not ")}successful");
            if (resp.IsSuccess)
            {
                Log($"{resp.ContentObject.Count} containers");
                foreach (var cont in resp.ContentObject)
                {
                    Log($"Container: {cont.Name} ({cont.Bytes} bytes, last modified {cont.Last_modified})");
                }
                if (resp.ContentObject.Count > 0)
                {
                    Container = resp.ContentObject.First().Name;
                }
            }
        }