public async Task <IActionResult> AddStolenAlert([FromForm] StolenAlertRequest request, [FromForm] IFormFile policeAlertFile, [FromForm] IFormFile affidavitFile) { try { var user = await _customerUserRepository.GetCustomerUserByDni(request.UserDni); if (user == null) { return(StatusCode(StatusCodes.Status400BadRequest)); } StolenAlert stolenAlert = new StolenAlert { UserCip = user.CustomerId, OtrsServiceId = _ticketSettings.StolenAlertServiceID, Asset = await _assetRepository.GetAssetById(request.AssetId), PoliceReport = _mapper.Map <PoliceReport>(_convertFileExtensions.ConvertFileToBase64(policeAlertFile)), Affidavit = _mapper.Map <Affidavit>(_convertFileExtensions.ConvertFileToBase64(affidavitFile)) }; var result = _stolenAlertrepository.AddStolenAlert( _mapper.Map <TicketCredencials>(_otrsCredencialsService.GetOtrsCredencials()), stolenAlert); if (result.TicketID != null) { await _assetRepository.UpdateAssetByStolen(request.AssetId); var sendMail = await _smtpService.SendEmailCreateTicket(user, result.TicketNumber); return(StatusCode(StatusCodes.Status201Created, new { Result = result, EmailSend = false, Status = 1 })); } else { return(StatusCode(StatusCodes.Status400BadRequest, new { Result = result, EmailSend = false, Status = 0 })); } } catch (Exception e) { _logger.LogError(e, "Stolen Alert Controller Error"); return(StatusCode(StatusCodes.Status500InternalServerError, new { StatusName = e.Message, Message = "Ocurrió un problema al guardar la información.", EmailSend = false, Status = 0 })); } }
public TicketCreateResponse AddStolenAlert(TicketCredencials ticketCredencials, StolenAlert stolenAlert) { var service = _OTRSContext.VwService.Find(stolenAlert.OtrsServiceId); TicketBodyCreateRequest ticketRequest = new TicketBodyCreateRequest(); ticketRequest.Ticket = new TicketParametersCreateRequest() { Title = _OTRSOptions.StolenAlertTicketTitle + " " + stolenAlert.Asset.Name, CustomerUser = stolenAlert.UserCip, Queue = _OTRSOptions.StolenAlertQueueName, Priority = _OTRSOptions.TicketPriorityLow, State = _OTRSOptions.TicketStateNew, TypeID = int.Parse(service.TypeService), ServiceID = service.Id }; ticketRequest.Article = new ArticleRequest() { Subject = service.TypeServiceName, Body = $"Robo del siguiente activo: Código: {stolenAlert.Asset.Id}, Modelo: {stolenAlert.Asset.Name}, Serie: {stolenAlert.Asset.SerieNro}", ContentType = "text/plain; charset=utf8", SenderType = "customer", TimeUnit = "0" }; List <AttachmentRequest> attachments = new List <AttachmentRequest> { new AttachmentRequest { Content = stolenAlert.PoliceReport.Base64, ContentType = stolenAlert.PoliceReport.ContentType, Filename = stolenAlert.PoliceReport.FileName }, new AttachmentRequest { Content = stolenAlert.Affidavit.Base64, ContentType = stolenAlert.Affidavit.ContentType, Filename = stolenAlert.Affidavit.FileName } }; var result = _OTRSClientRest.GenerateTicketCreateRequest(ticketCredencials, ticketRequest, attachments); return(result); }