/// <summary> /// Lista dodas las solicitudes asociadas a una agencia /// </summary> /// <param name="request">Objeto que contiene todos los datos de autenticacion del usuario e información de la Solicitud</param> /// <returns>Respuesta de la consulta de las solicitudes asociadas a una agencia</returns> public ListSolicitudesResponse ListSolicitudesByAgent(ListSolicitudesRequest request) { string methodName = string.Format("{0}", System.Reflection.MethodBase.GetCurrentMethod().Name); this.LogRequest(request); ListSolicitudesResponse response = new ListSolicitudesResponse(); string sessionId = this.GetSessionId(request, response, out this.errorMessage); if (this.errorMessage != ErrorMessagesMnemonics.None) { return(response); } if (!request.IsValidRequest()) { this.SetResponseErrorCode(response, ErrorMessagesMnemonics.InvalidRequiredFields); return(response); } ListSolicitudesOperation OperationRequest = new ListSolicitudesOperation(); string[] filtercamposxmlInput = OperationRequest.FiltercamposxmlInput; XmlDocument DataInputXML = FilterXmlDataInput(request, filtercamposxmlInput); //llamado REST al API SOS IT response = (ListSolicitudesResponse)OperationRequest.CallOperation(this.urlApi, this.technicianKey, this.TimeOutSOSIT, Request.EnumOperation.GET_REQUESTS, -1, -1, request.Branchid, request.CountryAcronym, DataInputXML); //List<Solicitude> listFilter = response.Solicitudes.Where(x => x.subject.Contains("[" + request.CountryAcronym + "-" + request.Branchid + "]")).ToList(); //response.Solicitudes = listFilter; return(response); }
/// <summary> /// Crea el response del API Movilway dependiendo de la operacion /// </summary> protected override AGenericApiResponse CreateResponseObject(string PageContent, int BranchId = -1, string CountryAcronym = null) { AGenericApiResponse objectData = null; XmlDocument xmlDoc = new XmlDocument(); string statuscode = ""; string message = ""; xmlDoc.LoadXml(PageContent); statuscode = xmlDoc.DocumentElement.SelectSingleNode("response/operation/result/statuscode").InnerText; message = xmlDoc.DocumentElement.SelectSingleNode("response/operation/result/message").InnerText; XmlNode NodeDetails = xmlDoc.DocumentElement.SelectSingleNode("response/operation/Details"); objectData = new ListSolicitudesResponse(); if (NodeDetails != null && statuscode.Equals("200")) { ((ListSolicitudesResponse)objectData).ResponseCode = 0; ((ListSolicitudesResponse)objectData).ResponseMessage = "Transacción aprobada"; ((ListSolicitudesResponse)objectData).Solicitudes = new System.Collections.Generic.List <Solicitude>(); XmlNodeList listRecordNodes = NodeDetails.SelectNodes("//record[parameter[contains(value, '[" + CountryAcronym + "-" + BranchId + "]')]]"); string[] camposxmlResponseGet = GetcamposxmlOutput; foreach (XmlNode auxRecord in listRecordNodes) { Solicitude newSolicitude = new Solicitude(); foreach (string nameItem in camposxmlResponseGet) { XmlNode tempNode = auxRecord.SelectSingleNode("parameter[name[text() = '" + nameItem + "']]"); if (tempNode != null) { string valueItem = tempNode.SelectSingleNode("value").InnerText; if (nameItem.Equals("workorderid")) { newSolicitude.workorderid = Convert.ToInt32(valueItem); } else if (nameItem.Equals("requester")) { newSolicitude.requester = valueItem; } else if (nameItem.Equals("createdby")) { newSolicitude.createdby = valueItem; } else if (nameItem.Equals("createdtime")) { newSolicitude.createdtime = UtilsSOSIT.FromUtcToLocalTime(valueItem);; } else if (nameItem.Equals("subject")) { newSolicitude.subject = valueItem; } else if (nameItem.Equals("technician")) { newSolicitude.technician = valueItem; } else if (nameItem.Equals("priority")) { newSolicitude.priority = valueItem; } else if (nameItem.Equals("status")) { newSolicitude.status = valueItem; } } } ((ListSolicitudesResponse)objectData).Solicitudes.Add(newSolicitude); } } else { ((ListSolicitudesResponse)objectData).ResponseCode = 07; ((ListSolicitudesResponse)objectData).ResponseMessage = "No fue posible consultar el listado de conversaciones de una solicitud"; } return(objectData); }