Exemple #1
0
        /// <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 NodeworkorderidAdd = xmlDoc.DocumentElement.SelectSingleNode("response/operation/Details/workorderid");

            objectData = new AddSolicitudeResponse();
            if (NodeworkorderidAdd != null && statuscode.Equals("200"))
            {
                ((AddSolicitudeResponse)objectData).ResponseCode    = 0;
                ((AddSolicitudeResponse)objectData).ResponseMessage = "Transacción aprobada";
                ((AddSolicitudeResponse)objectData).Workorderid     = NodeworkorderidAdd.InnerText;
            }
            else
            {
                ((AddSolicitudeResponse)objectData).ResponseCode    = 07;
                ((AddSolicitudeResponse)objectData).ResponseMessage = "No fue posible crear la solicitud";
                ((AddSolicitudeResponse)objectData).Workorderid     = "-1";
            }
            return(objectData);
        }
Exemple #2
0
 /// <summary>
 /// Establece el error especificado en el objeto de respuesta de una petición
 /// </summary>
 /// <param name="response">Objeto de respuesta de la petición</param>
 /// <param name="code">Error a esteblecer</param>
 private void SetResponseErrorCode(AGenericApiResponse response, ErrorMessagesMnemonics code)
 {
     if (response != null)
     {
         response.ResponseCode    = (int)code;
         response.ResponseMessage = code.ToDescription();
     }
 }
        /// <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 ListNotificationsResponse();
            if (NodeDetails != null && statuscode.Equals("200"))
            {
                ((ListNotificationsResponse)objectData).ResponseCode    = 0;
                ((ListNotificationsResponse)objectData).ResponseMessage = "Transacción aprobada";
                ((ListNotificationsResponse)objectData).Notifications   = new System.Collections.Generic.List <Notification>();

                XmlNodeList listRecordNodes      = NodeDetails.SelectNodes("record");
                string[]    camposxmlResponseGet = GetcamposxmlOutput;
                foreach (XmlNode auxRecord in listRecordNodes)
                {
                    Notification newNotification = new Notification();
                    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("createddate"))
                            {
                                newNotification.Createddate = UtilsSOSIT.FromUtcToLocalTime(valueItem);;
                            }
                            else if (nameItem.Equals("notifyid"))
                            {
                                newNotification.Notifyid = Convert.ToInt32(valueItem);
                            }
                            else if (nameItem.Equals("from"))
                            {
                                newNotification.From = valueItem;
                            }
                        }
                    }
                    ((ListNotificationsResponse)objectData).Notifications.Add(newNotification);
                }
            }
            else
            {
                ((ListNotificationsResponse)objectData).ResponseCode    = 07;
                ((ListNotificationsResponse)objectData).ResponseMessage = "No fue posible consultar el listado de  notas asociadas a una solicitud";
            }
            return(objectData);
        }
        /// <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 GetConversationResponse();
            if (NodeDetails != null && statuscode.Equals("200"))
            {
                ((GetConversationResponse)objectData).ResponseCode    = 0;
                ((GetConversationResponse)objectData).ResponseMessage = "Transacción aprobada";

                string[] camposxmlResponseGet = GetcamposxmlOutput;

                foreach (string nameItem in camposxmlResponseGet)
                {
                    XmlNode tempNode = NodeDetails.SelectSingleNode("parameter[name[text() = '" + nameItem.ToUpper() + "']]");
                    if (tempNode != null)
                    {
                        string valueItem = tempNode.SelectSingleNode("value").InnerText;

                        if (nameItem.Equals("conversation id"))
                        {
                            ((GetConversationResponse)objectData).Conversationid = Convert.ToInt32(valueItem);
                        }
                        else if (nameItem.Equals("title"))
                        {
                            ((GetConversationResponse)objectData).Title = valueItem;
                        }
                        else if (nameItem.Equals("description"))
                        {
                            ((GetConversationResponse)objectData).Description = Encoding.UTF8.GetString(Encoding.Default.GetBytes(valueItem));
                        }
                        else if (nameItem.Equals("toaddress"))
                        {
                            ((GetConversationResponse)objectData).Toaddress = valueItem;
                        }
                    }
                }
            }
            else
            {
                ((GetConversationResponse)objectData).ResponseCode    = 07;
                ((GetConversationResponse)objectData).ResponseMessage = "No fue posible consultar la conversacion de una solicitud";
            }

            return(objectData);
        }
        /// <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);
        }
        /// <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 ListConversationsResponse();
            if (NodeDetails != null && statuscode.Equals("200"))
            {
                ((ListConversationsResponse)objectData).ResponseCode    = 0;
                ((ListConversationsResponse)objectData).ResponseMessage = "Transacción aprobada";
                ((ListConversationsResponse)objectData).Conversations   = new System.Collections.Generic.List <Conversation>();

                XmlNodeList listRecordNodes = NodeDetails.SelectNodes("//record[parameter[name[text() = 'from'] and value[text() != 'System']]]");

                string[] camposxmlResponseGet = GetcamposxmlOutput;
                foreach (XmlNode auxRecord in listRecordNodes)
                {
                    Conversation newConversation = new Conversation();
                    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("createddate"))
                            {
                                newConversation.Createddate = UtilsSOSIT.FromUtcToLocalTime(valueItem);;
                            }
                            else if (nameItem.Equals("notifyid"))
                            {
                                newConversation.Notifyid = Convert.ToInt32(valueItem);
                            }
                            else if (nameItem.Equals("from"))
                            {
                                newConversation.From = valueItem;
                            }
                            else if (nameItem.Equals("description"))
                            {
                                string tempDesctiption = Encoding.UTF8.GetString(Encoding.Default.GetBytes(valueItem));
                                tempDesctiption             = Regex.Replace(tempDesctiption, "<br />", "\n").Trim();
                                tempDesctiption             = Regex.Replace(tempDesctiption, "<br>", "\n").Trim();
                                newConversation.Description = Regex.Replace(tempDesctiption, @"<[^>]+>|&quot;|&nbsp;", "").Trim();
                            }
                        }
                    }
                    ((ListConversationsResponse)objectData).Conversations.Add(newConversation);
                }
            }
            else
            {
                ((ListConversationsResponse)objectData).ResponseCode    = 07;
                ((ListConversationsResponse)objectData).ResponseMessage = "No fue posible consultar el listado de  conversaciones de una solicitud";
            }
            return(objectData);
        }
        /// <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 GetSolicitudeResponse();
            if (NodeDetails != null && statuscode.Equals("200"))
            {
                ((GetSolicitudeResponse)objectData).ResponseCode    = 0;
                ((GetSolicitudeResponse)objectData).ResponseMessage = "Transacción aprobada";

                string[] camposxmlResponseGet = GetcamposxmlOutput;

                foreach (string nameItem in camposxmlResponseGet)
                {
                    XmlNode tempNode = NodeDetails.SelectSingleNode("parameter[name[text() = '" + nameItem + "']]");
                    if (tempNode != null)
                    {
                        string valueItem = tempNode.SelectSingleNode("value").InnerText;

                        if (nameItem.Equals("workorderid"))
                        {
                            ((GetSolicitudeResponse)objectData).Workorderid = valueItem;
                        }
                        else if (nameItem.Equals("createdtime"))
                        {
                            ((GetSolicitudeResponse)objectData).Createdtime = UtilsSOSIT.FromUtcToLocalTime(valueItem);;
                        }
                        else if (nameItem.Equals("subject"))
                        {
                            ((GetSolicitudeResponse)objectData).Subject = valueItem;
                        }
                        else if (nameItem.Equals("description"))
                        {
                            string tempDesctiption = Encoding.UTF8.GetString(Encoding.Default.GetBytes(valueItem));
                            tempDesctiption = Regex.Replace(tempDesctiption, "<br />", "\n").Trim();
                            ((GetSolicitudeResponse)objectData).Description = Regex.Replace(tempDesctiption, @"<[^>]+>|&quot;|&nbsp;", "").Trim();
                        }
                        else if (nameItem.Equals("status"))
                        {
                            ((GetSolicitudeResponse)objectData).Status = valueItem;
                        }
                        else if (nameItem.Equals("category"))
                        {
                            ((GetSolicitudeResponse)objectData).Category = valueItem;
                        }
                        else if (nameItem.Equals("subcategory"))
                        {
                            ((GetSolicitudeResponse)objectData).Subcategory = valueItem;
                        }
                        else if (nameItem.Equals("item"))
                        {
                            ((GetSolicitudeResponse)objectData).Item = valueItem;
                        }
                        else if (nameItem.Equals("priority"))
                        {
                            ((GetSolicitudeResponse)objectData).Priority = valueItem;
                        }
                        else if (nameItem.Equals("group"))
                        {
                            ((GetSolicitudeResponse)objectData).Group = valueItem;
                        }
                    }
                }
            }
            else
            {
                ((GetSolicitudeResponse)objectData).ResponseCode    = 07;
                ((GetSolicitudeResponse)objectData).ResponseMessage = "No fue posible consultar la solicitud";
            }

            return(objectData);
        }
        /// <summary>
        /// Consume o Llama la operacion indicada por parametro y que es consumida del API SOS IT
        /// </summary>
        /// <param name="ParamUrlApi">Url del api que se debe consumir</param>
        /// <param name="ParamTechnicianKey">Llave del tecnico asociado</param>
        /// <param name="ParamFormat">Formato de la informacion enviada</param>
        /// <param name="ParamTimeOutApi">Tiempo maximo de espera de una respuesta</param>
        /// <param name="ParamOperation">Operación</param>
        /// <param name="ParamWorkorderid">Id de la Solicitud de la cual se desea efectuar alguna operacion</param>
        /// <param name="ParamDataInputXML">XML con la informacion requerida para efectuar la operacion</param>
        public AGenericApiResponse CallOperation(string ParamUrlApi, string ParamTechnicianKey, string ParamTimeOutApi, Request.EnumOperation ParamOperation, int ParamWorkorderid, int ParamDetailId, int BranchId = -1, string CountryAcronym = null, XmlDocument ParamDataInputXML = null)
        {
            AGenericApiResponse returnData = new AGenericApiResponse();
            string _methodFulName          = String.Format("{0}.{1}", System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName, System.Reflection.MethodBase.GetCurrentMethod().Name);

            Request Request       = new Request();
            string  UrlApi        = ParamUrlApi;
            string  TechnicianKey = ParamTechnicianKey;
            string  TimeOutApi    = ParamTimeOutApi;

            Request.EnumOperation Operation = ParamOperation;
            int         Workorderid         = ParamWorkorderid;
            XmlDocument DataInputXML        = ParamDataInputXML;

            string _pageContent = "";

            try
            {
                _logger.CheckPointHigh(() => TagValue.New()
                                       .MethodName(_methodFulName)
                                       .Message("INICIA ::> Llamado al API  SOS IT")
                                       .Tag("ParamUrlApi").Value(UrlApi)
                                       .Tag("ParamTechnicianKey").Value(TechnicianKey)
                                       .Tag("ParamOperation").Value(Operation.ToString())
                                       );

                try
                {
                    ConsumeService(DataInputXML, Workorderid, ParamDetailId, Request, TechnicianKey, UrlApi, TimeOutApi, out _pageContent); //se tiene la respuesta HTTP

                    if (!String.IsNullOrEmpty(_pageContent))
                    {
                        returnData = CreateResponseObject(_pageContent, BranchId, CountryAcronym); //se procesa la información
                    }
                    else
                    {
                        _logger.InfoLow(() => TagValue.New()
                                        .MethodName(_methodFulName)
                                        .Message("No se pudo cargar la respuesta una vez se llama el API variable _pageContent es NULL")
                                        .Tag("ParamUrlApi").Value(UrlApi)
                                        .Tag("ParamTechnicianKey").Value(TechnicianKey)
                                        .Tag("ParamOperation").Value(Operation.ToString())
                                        );

                        returnData.ResponseCode    = (int)ErrorMessagesMnemonics.SOSITWsError;
                        returnData.ResponseMessage = ErrorMessagesMnemonics.SOSITWsError.ToDescription();
                    }
                }
                catch (Exception ex)
                {
                    _logger.ExceptionLow(() => TagValue.New()
                                         .Exception(ex)
                                         .MethodName(_methodFulName)
                                         .Tag("ParamUrlApi").Value(UrlApi)
                                         .Tag("ParamTechnicianKey").Value(TechnicianKey)
                                         .Tag("ParamOperation").Value(Operation.ToString())
                                         );

                    returnData.ResponseCode    = (int)ErrorMessagesMnemonics.SOSITWsError;
                    returnData.ResponseMessage = ErrorMessagesMnemonics.SOSITWsError.ToDescription();
                }
            }
            catch (Exception ex)
            {
                _logger.ExceptionLow(() => TagValue.New()
                                     .Exception(ex)
                                     .MethodName(_methodFulName)
                                     .Tag("ParamUrlApi").Value(UrlApi)
                                     .Tag("ParamTechnicianKey").Value(TechnicianKey)
                                     .Tag("ParamOperation").Value(Operation.ToString())
                                     );
                returnData.ResponseCode    = (int)ErrorMessagesMnemonics.SOSITWsError;
                returnData.ResponseMessage = ErrorMessagesMnemonics.SOSITWsError.ToDescription();
            }

            _logger.CheckPointHigh(() => TagValue.New()
                                   .MethodName(_methodFulName)
                                   .Message("FINALIZA ::> Llamado al API  SOS IT")
                                   .Tag("ParamUrlApi").Value(UrlApi)
                                   .Tag("ParamTechnicianKey").Value(TechnicianKey)
                                   .Tag("ParamOperation").Value(Operation.ToString())
                                   );

            return(returnData);
        }