Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
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);
        }