using brevo_csharp.Api; using brevo_csharp.Model; using Marco.Pms.Services.Service; using Microsoft.AspNetCore.Mvc; using System.Globalization; using System.Text; namespace MarcoBMS.Services.Controllers { [ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase { private static readonly string[] Summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; private readonly ILogger _logger; private readonly S3UploadService _s3Service; public WeatherForecastController(ILogger logger, S3UploadService s3Service) { _logger = logger; _s3Service = s3Service; } [HttpGet(Name = "GetWeatherForecast")] public IEnumerable Get() { return Enumerable.Range(1, 5).Select(index => new WeatherForecast { Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)), TemperatureC = Random.Shared.Next(-20, 55), Summary = Summaries[Random.Shared.Next(Summaries.Length)] }) .ToArray(); } //[HttpPost("upload-image")] //public async Task SendToSThree([FromBody] FileUploadModel Image) //{ // if (string.IsNullOrEmpty(Image.Base64Data)) // return BadRequest("Base64 data is missing"); // var objectKey = await _s3Service.UploadFileAsync(Image.Base64Data, 1, "Forum"); // //var objectKey = await _s3Service.UploadFileAsync(Image.FileName, Image.ContentType); // var preSignedUrl = _s3Service.GeneratePreSignedUrl(objectKey); // return Ok(new // { // objectKey, // url = preSignedUrl // }); //} [HttpPost("send")] public async Task SendEmail() { var apiKey = "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"; // Configure API key authorization var config = new brevo_csharp.Client.Configuration(); config.ApiKey.Add("api-key", apiKey); var apiInstance = new TransactionalEmailsApi(config); var recipient = new List { new SendSmtpEmailTo("ashutosh.nehete@marcoaiot.com") }; var sender = new SendSmtpEmailSender { Name = "Kartik Sharma", Email = "kartik.sharma@marcoaiot.com" }; var team = new StringBuilder(); team.Append(""); team.AppendFormat( "" + "
" + "
Admin
" + "
1
" + "
"); team.AppendFormat( "" + "
" + "
Helper
" + "
5
" + "
"); team.AppendFormat( "" + "
" + "
Welder
" + "
8
" + "
"); team.Append(""); var task = new StringBuilder(); task.AppendFormat("" + "Activity
" + "Building > Floor > WorkArea > WorkItem" + "30 / 16" + "14" + "{0}" + "", DateTime.UtcNow.ToString("dd-MMM-yyyy")); task.AppendFormat("Kartik Sharma (Welder)
"); task.AppendFormat("Kartik Sharma (Helper)
"); task.AppendFormat("Pramod Mahajan (Driver)
"); task.AppendFormat("This is the test"); var attendance = new StringBuilder(); attendance.AppendFormat("" + "Kartik Sharma" + "Welder" + "{0}" + "{1}" + "This is Test" + "", DateTime.UtcNow.ToString("dd-MMM-yyyy h:mm tt", CultureInfo.InvariantCulture), DateTime.UtcNow.ToString("dd-MMM-yyyy h:mm tt", CultureInfo.InvariantCulture)); attendance.AppendFormat("" + "Kartik Sharma" + "Helper" + "{0}" + "{1}" + "This is Test" + "", DateTime.UtcNow.ToString("dd-MMM-yyyy h:mm tt", CultureInfo.InvariantCulture), DateTime.UtcNow.ToString("dd-MMM-yyyy h:mm tt", CultureInfo.InvariantCulture)); attendance.AppendFormat("" + "Pramod Mahajan" + "Driveer" + "{0}" + "{1}" + "This is Test" + "", DateTime.UtcNow.ToString("dd-MMM-yyyy h:mm tt", CultureInfo.InvariantCulture), DateTime.UtcNow.ToString("dd-MMM-yyyy h:mm tt", CultureInfo.InvariantCulture)); var date = DateTime.UtcNow.Date.ToString("dd-MMM-yyyy", CultureInfo.InvariantCulture); var prams = new { date = date, project_name = "MarcoAIoT", timestamp = DateTime.UtcNow, todays_attendances = 1, total_Employees = 26, todays_planned = 1230, todays_completed = 1200, regularization_pernding = 3, checkout_pending = 25, total_planned = 1000000, total_completed = 24003, project_status = 70.44, todays_assigned = 2, report_pending = 10, team_on_site = team, performed_task = task, performed_attendance = attendance }; var sendSmtpEmail = new SendSmtpEmail { Sender = sender, To = recipient, TemplateId = 1, // Your Brevo template ID here Params = prams, Headers = new Dictionary { { "X-Mailin-custom", "custom_header_1:custom_value_1" } } //Subject = "Hello from Brevo this is test", //HtmlContent = "

This is a test email

Sent via .NET controller

" }; try { var result = apiInstance.SendTransacEmail(sendSmtpEmail); var client = new HttpClient(); client.DefaultRequestHeaders.Add("api-key", apiKey); var messageId = result.MessageId; var response = await client.GetAsync($"https://api.brevo.com/v3/smtp/emails/{messageId}"); Console.WriteLine(response); if (response.IsSuccessStatusCode) { var content = await response.Content.ReadAsStringAsync(); Console.WriteLine(content); // This includes status info } return Ok(Marco.Pms.Model.Utilities.ApiResponse.SuccessResponse(result.MessageId, "Email sent successfully!", 200)); } catch (Exception ex) { return StatusCode(500, Marco.Pms.Model.Utilities.ApiResponse.ErrorResponse(ex.Message, ex.StackTrace, 500)); } } } }