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