Esempio n. 1
0
        /// <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);
        }