Nova funcionalidade e ajustes em processamento de dados

Adicionada funcionalidade para salvar imagem em caminho de rede
compartilhado no `ImageService.cs`. No `MainWindowViewModel.cs`,
incluída mensagem de confirmação e abertura automática da imagem
gerada. Ajustada lógica de mapeamento de colunas no processamento
de planilhas, com mudanças nas correspondências e início da
segunda tabela. Adicionada verificação para evitar erros ao buscar
aniversários. Mensagem de confirmação adicionada ao final do
processamento da planilha.
This commit is contained in:
Giuliano Paschoalino 2025-08-28 14:52:47 -03:00
parent 5231c5cf9d
commit 47ac74d87b
2 changed files with 32 additions and 7 deletions

View File

@ -43,6 +43,7 @@ namespace BackgroundBuilder.Services
var compositeBmp = RenderComposite(overlay, background, OverlayOffset);
SaveBitmap(compositeBmp, primaryPath);
SaveBitmap(compositeBmp, "\\\\SRV-DADOS\\Wallpaper$\\Wallpaper.png");
await Task.FromResult((primaryPath, savedOverlayPath));
}

View File

@ -165,6 +165,20 @@ namespace BackgroundBuilder.ViewModels
&& BackgroundImage is BitmapImage bg)
{
await _imageService.SaveAsync(overlay, bg, dlg.FileName, dlg.FileName.Replace(".png", "_1.png"));
MessageBox.Show(
"Concluído!",
"Confirm Save",
MessageBoxButton.OK,
MessageBoxImage.Information);
//Open recently generated image
if (File.Exists(dlg.FileName))
{
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo
{
FileName = dlg.FileName,
UseShellExecute = true
});
}
}
}
@ -259,25 +273,30 @@ namespace BackgroundBuilder.ViewModels
{
var ws = workbook.Worksheets.First();
var table = ws.Cell("B2").CurrentRegion;
var nomeCol = table.Row(1).Search("Nome").First().Address.ColumnNumber;
foreach (var row in table.Rows().Skip(1)) // Skip header
{
var contato = new Contato
{
Ramal = row.Cell(3).GetString(),
Nome = row.Cell(1).GetString(),
Email = row.Cell(2).GetString(),
Area = row.Cell(4).GetString(),
Ramal = row.Cell(4).GetString(),
Nome = row.Cell(2).GetString(),
Email = row.Cell(3).GetString(),
Area = row.Cell(5).GetString(),
IsComando = false
};
ramais.Add(contato);
}
table = ws.Cell("G2").CurrentRegion;
table = ws.Cell("H2").CurrentRegion;
foreach (var row in table.Rows().Skip(1)) // Skip header
{
ramais.Find(x => x.Nome == row.Cell(1).GetString()).Aniversario = row.Cell(2).GetDateTime();
var name = row.Cell(1).GetString();
var match = ramais.Find(x => x.Nome == name);
if (match is not null)
{
match.Aniversario = row.Cell(2).GetDateTime();
}
}
}
@ -288,6 +307,11 @@ namespace BackgroundBuilder.ViewModels
}
await LoadRawAsync(); // Refresh UI
MessageBox.Show(
"Concluído!",
"Confirm Save",
MessageBoxButton.OK,
MessageBoxImage.Information);
}
}
}