public async Task <IActionResult> UpdateIncidence([FromForm] IncidenceUpdateRequest request, [FromForm] List <IFormFile> attachments) { try { var ticketData = await _ticketRepository.GetTicketDetailByNroTicket(request.NroTicket); if (ticketData == null) { return(StatusCode(StatusCodes.Status400BadRequest)); } TicketIncidenceCreate ticket = new TicketIncidenceCreate { TicketId = ticketData.Id, Description = request.Description, Attachments = _mapper.Map <List <TicketAttachments> >(_convertFileExtensions.ListConvertFileToBase64(attachments)) }; var result = _ticketRepository.UpdateTicketOtrs( _mapper.Map <TicketCredencials>(_otrsCredencialsService.GetOtrsCredencials()), ticket); if (result.TicketID != null) { 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) { return(StatusCode(StatusCodes.Status500InternalServerError, new { StatusName = e.Message, Message = "Ocurrió un problema al guardar la información.", EmailSend = false, Status = 0 })); } }
public async Task <IActionResult> AddIncidence([FromForm] IncidenceCreateRequest request, [FromForm] List <IFormFile> attachments) { try { var user = await _customerUserRepository.GetCustomerUserByDni(request.UserDni); if (user == null) { return(StatusCode(StatusCodes.Status400BadRequest)); } TicketIncidenceCreate ticket = new TicketIncidenceCreate { UserCip = user.CustomerId, OtrsServiceId = request.OtrsServiceID, Description = request.Description, Asset = await _assetRepository.GetAssetById(request.AssetId), Attachments = _mapper.Map <List <TicketAttachments> >(_convertFileExtensions.ListConvertFileToBase64(attachments)) }; var result = _ticketRepository.AddTicketIncidenceOtrs( _mapper.Map <TicketCredencials>(_otrsCredencialsService.GetOtrsCredencials()), ticket); if (result.TicketID != null) { var sendMail = await _smtpService.SendEmailCreateTicket(user, result.TicketNumber); return(StatusCode(StatusCodes.Status201Created, new { Result = result, EmailSend = sendMail, Status = 1 })); } else { return(StatusCode(StatusCodes.Status400BadRequest, new { Result = result, EmailSend = false, Status = 0 })); } } catch (Exception e) { return(StatusCode(StatusCodes.Status500InternalServerError, new { StatusName = e.Message, Message = "Ocurrió un problema al guardar la información.", EmailSend = false, Status = 0 })); } }
public async Task <TicketUpdateResponse> UpdateRequerimentNoRenew([FromForm] string ticketId, [FromForm] string customerId, [FromForm] string assetId, [FromForm] List <IFormFile> attachments) { try { var user = await _customerUserRepository.GetCustomerUserByCip(customerId); var asset = await _assetRepository.GetAssetById(assetId); if (ticketId == null || user == null || asset == null) { return(new TicketUpdateResponse()); } TicketIncidenceCreate ticket = new TicketIncidenceCreate { TicketId = long.Parse(ticketId), Description = $"Apellidos: {user.LastName}\n" + $"Nombres: {user.FirstName}\n" + $"Ubicación: {user.Street}\n" + $"Tipo de equipo: {asset.Type}\n" + $"Inventario: {asset.Name}\n" + $"Serie del equipo: {asset.SerieNro}\n" + $"Ubicación: {user.Street}\n" + $"Celular: {user.Phone}\n", Attachments = _mapper.Map <List <TicketAttachments> >(_convertFileExtensions.ListConvertFileToBase64(attachments)) }; var result = _ticketRepository.UpdateTicketOtrs( _mapper.Map <TicketCredencials>(_otrsCredencialsService.GetOtrsCredencials()), ticket); return(result); } catch { return(new TicketUpdateResponse()); } }
public TicketUpdateResponse UpdateTicketOtrs(TicketCredencials ticketCredencials, TicketIncidenceCreate ticket) { TicketBodyUpdateRequest ticketRequest = new TicketBodyUpdateRequest { Article = new ArticleRequest() { Subject = _OTRSOptions.TicketArticleSubjectUpdate, Body = ticket.Description, ContentType = "text/plain; charset=utf8", SenderType = "customer", TimeUnit = "0" } }; List <AttachmentRequest> attachments = new List <AttachmentRequest>(); foreach (TicketAttachments file in ticket.Attachments) { attachments.Add(new AttachmentRequest { Content = file.Base64, ContentType = file.ContentType, Filename = file.FileName }); } var result = _OTRSClientRest.GenerateTicketUpdateRequest(ticket.TicketId, ticketCredencials, ticketRequest, attachments); return(result); }
public TicketCreateResponse AddTicketNoRenewOtrs(TicketCredencials ticketCredencials, TicketIncidenceCreate ticket) { var service = _OTRSContext.VwService.Find(ticket.OtrsServiceId); TicketBodyCreateRequest ticketRequest = new TicketBodyCreateRequest { Ticket = new TicketParametersCreateRequest() { Title = service.Name, CustomerUser = ticket.UserCip, Queue = _OTRSOptions.AssetReturnQueueName, Priority = _OTRSOptions.TicketPriorityLow, State = _OTRSOptions.TicketStateNew, TypeID = int.Parse(service.TypeService), ServiceID = service.Id }, Article = new ArticleRequest() { Subject = _OTRSOptions.TicketArticleSubjectNoRenew + " " + ticket.Asset.Name, Body = ticket.Description, ContentType = "text/plain; charset=utf8", SenderType = "customer", TimeUnit = "0" } }; List <AttachmentRequest> attachments = new List <AttachmentRequest>(); foreach (TicketAttachments file in ticket.Attachments) { attachments.Add(new AttachmentRequest { Content = file.Base64, ContentType = file.ContentType, Filename = file.FileName }); } var result = _OTRSClientRest.GenerateTicketCreateRequest(ticketCredencials, ticketRequest, attachments); return(result); }