Quantcast
Channel: Active questions tagged blazor - Stack Overflow
Viewing all articles
Browse latest Browse all 4839

'EventCallback does not contain a definition for 'FromDelegate''

$
0
0

Good day,

I trust you well, please assist on the below, I have a secured mailer project built in blazer, and I am implementing logic to accommodate different file types by adding an additional encryption library, but problem seems to be related to the EventCallback.FromDelegate(OnChanged) syntax which I have been trying to fix with no success, please see below

<Field Horizontal Padding="Padding.Is1"><FieldLabel ColumnSize="ColumnSize.Is2">Document:</FieldLabel><FieldBody ColumnSize="ColumnSize.Is10"><Field><FileEdit @ref="fileEdit" Placeholder="Upload pdf or xlsx files that are not more than 5MB each..." AutoReset="false" Multiple Changed="EventCallback<ChangeEventArgs>.FromDelegate(OnChanged)" Filter=".pdf, .xlsx" MaxFileSize="5000000" />                            @if (EmailMessageDetails?.Attachments?.Any() == true)                            {<ListGroup class="list-group-item">                                    @foreach (var attachment in EmailMessageDetails.Attachments)                                    {<ListGroupItem class="list-group-item"><i class="fa-solid fa-circle-check icon-color"></i> @attachment.FileName attached...</ListGroupItem>                                    }</ListGroup>                            }</Field></FieldBody></Field>

I also tried to correcting the correspondence of the partial class like below, just gives me more errors please help,

private async Task OnChanged(FileChangedEventArgs e)        {            foreach (var file in e.Files)            {                using var stream = file.OpenReadStream();                var memoryStream = new MemoryStream();                await stream.CopyToAsync(memoryStream);                EmailMessageDetails.Attachments.Add(new Attachment                {                    FileName = file.Name,                    FileContent = memoryStream.ToArray()                });            }            StateHasChanged();        }        private async Task OnSave(SecureMailViewModel viewModel, bool save)        {            _isSending = true;            if (_secureMailValidationsRef != null && _secureMailValidationsRef.ValidateAll())            {                await SecureMailHepler.SaveOrSendEmail(viewModel, EmailMessageDetails, save);            }            _isSending = false;        }        private async Task OnSaveAndSend(SecureMailViewModel viewModel)        {            await OnSave(viewModel, false);        }        private void BackToList()        {            NavigationManager.NavigateTo("/securemail-list");        }    }}

Thank you

I updated the partial class, to resolve the event call back from:

       public async Task OnChanged(FileChangedEventArgs e, SpreadsheetDocumentType spreadsheetDocumentType)       {           try           {               foreach (var file in e.Files.Select((value, i) => new { i, value }))               {                   using (MemoryStream ms = new MemoryStream())                   {                       await file.value.OpenReadStream(long.MaxValue).CopyToAsync(ms);                       if (file.value.Type.Contains("pdf", StringComparison.OrdinalIgnoreCase))                       {                           await EncryptPdf(ms, file.value);                           var fileStream = new FileStream($"{_folderToWriteTo}Protected_doc_{file.value.Name}", FileMode.Open, FileAccess.Read, FileShare.Read);                           streams.Add(fileStream);                       }                       else if (file.value.Type.Contains("xlsx", StringComparison.OrdinalIgnoreCase))                       {                           using (SpreadsheetDocument document = SpreadsheetDocument.Open(ms, true))                           {                               await EncryptPdf(ms, file.value);                               var fileStream = new FileStream($"{_folderToWriteTo}Protected_doc_{file.value.Name}", FileMode.Open, FileAccess.Read, FileShare.Read);                               streams.Add(fileStream);                           }                       }                       {                           _toastService?.ShowWarning("Only PDF and XLSX files are supported.");                           await fileEdit.Reset().AsTask();                           return;                           //var memStream = new MemoryStream();                           //ms.Position = 0;                               //await ms.CopyToAsync(memStream);                           //streams.Add(memStream);                       }                       var formFie = new FormFile(streams[file.i], 0, streams[file.i].Length, file.value.Type, file.value.Name)                       {                           Headers = new HeaderDictionary(),                           ContentType = file.value.Type                       };                       EmailMessageDetails.Attachments.Add(formFie);                   }               }           }           catch (Exception exc)           {               _toastService?.ShowError($"An error occured while processing your request");           }

To:

 private async Task OnChanged(FileChangedEventArgs e)        {            foreach (var file in e.Files)            {                using var stream = file.OpenReadStream();                var memoryStream = new MemoryStream();                await stream.CopyToAsync(memoryStream);                EmailMessageDetails.Attachments.Add(new Attachment                {                    FileName = file.Name,                    FileContent = memoryStream.ToArray()                });            }            StateHasChanged();        }        private async Task OnSave(SecureMailViewModel viewModel, bool save)        {            _isSending = true;            if (_secureMailValidationsRef != null && _secureMailValidationsRef.ValidateAll())            {                await SecureMailHepler.SaveOrSendEmail(viewModel, EmailMessageDetails, save);            }            _isSending = false;        }        private async Task OnSaveAndSend(SecureMailViewModel viewModel)        {            await OnSave(viewModel, false);        }        private void BackToList()        {            NavigationManager.NavigateTo("/securemail-list");        }    }}

Viewing all articles
Browse latest Browse all 4839

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>