Example #1
0
        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 }));
            }
        }
Example #2
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);
        }