private TicketCreateResponse JsonCreateTicketOtrs(string TARGETURL, TicketBodyCreateRequest ticketRequest) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(TARGETURL); request.KeepAlive = false; request.ProtocolVersion = HttpVersion.Version10; request.Method = "POST"; request.ContentType = "application/json; charset=UTF-8"; request.Accept = "application/json"; string json = JsonConvert.SerializeObject(ticketRequest); byte[] postBytes = Encoding.UTF8.GetBytes(json); request.ContentLength = postBytes.Length; Stream requestStream = request.GetRequestStream(); requestStream.Write(postBytes, 0, postBytes.Length); requestStream.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (StreamReader rdr = new StreamReader(response.GetResponseStream())) { var respuesta = rdr.ReadToEnd(); var responseApi = JsonConvert.DeserializeObject <TicketCreateResponse>(respuesta); return(responseApi); } }
public TicketCreateResponse GenerateTicketCreateRequest(TicketCredencials ticketCredencials, TicketBodyCreateRequest ticket, List <AttachmentRequest> attachment) { string TARGETURL = ticketCredencials.WebBaseUrl; DateTime now = DateTime.Now; TicketBodyCreateRequest ticketRequest = new TicketBodyCreateRequest(); ticketRequest.Year = now.ToString("yyyy"); ticketRequest.Month = now.ToString("MM"); ticketRequest.Day = now.ToString("dd"); ticketRequest.Hour = now.ToString("HH"); ticketRequest.Minute = now.ToString("mm"); ticketRequest.UserLogin = ticketCredencials.UserLogin; ticketRequest.CustomerUserLogin = ticketCredencials.CustomerUserLogin; ticketRequest.Password = ticketCredencials.Password; ticketRequest.Ticket = ticket.Ticket; ticketRequest.Article = ticket.Article; if (attachment.Count() > 0) { ticketRequest.Attachment = attachment; } var response = JsonCreateTicketOtrs(TARGETURL, ticketRequest); return(response); }
public TicketCreateResponse AddTicketIncidenceOtrs(TicketCredencials ticketCredencials, TicketIncidenceCreate ticket) { var service = _OTRSContext.VwService.Find(ticket.OtrsServiceId); TicketBodyCreateRequest ticketRequest = new TicketBodyCreateRequest { Ticket = new TicketParametersCreateRequest() { Title = service.Name + ": " + ticket.Asset.Name, CustomerUser = ticket.UserCip, Queue = _OTRSOptions.TicketIncidenceQueueName, Priority = _OTRSOptions.TicketPriorityLow, State = _OTRSOptions.TicketStateNew, TypeID = int.Parse(service.TypeService), ServiceID = service.Id }, Article = new ArticleRequest() { Subject = service.TypeServiceName, 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 }); } TicketCreateResponse response = null; try { response = _OTRSClientRest.GenerateTicketCreateRequest(ticketCredencials, ticketRequest, attachments); } catch (System.Exception) { throw; } return(response); }
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); }