Пример #1
0
        /// <summary>
        /// Lista las Conversaciones asociadas a una  Solicitud en SOS IT de Celistics
        /// </summary>
        /// <param name="request">Objeto que contiene todos los datos de autenticacion del usuario e información de la Solicitud a consultar</param>
        /// <returns>Respuesta de la lista de conversaciones de una solicitud/returns>
        public ListConversationsResponse ListConversations(ListConversationsRequest request)
        {
            string methodName = string.Format("{0}", System.Reflection.MethodBase.GetCurrentMethod().Name);

            this.LogRequest(request);

            ListConversationsResponse response = new ListConversationsResponse();

            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);
            }

            ListConversationsOperation OperationRequest = new ListConversationsOperation();

            //Llamado REST al API SOS IT
            response = (ListConversationsResponse)OperationRequest.CallOperation(this.urlApi, this.technicianKey, this.TimeOutSOSIT, Request.EnumOperation.GET_ALL_CONVERSATIONS, request.Workorderid, -1, -1, null, null);

            return(response);
        }
Пример #2
0
        public static ListConversationsResponse Unmarshall(UnmarshallerContext _ctx)
        {
            ListConversationsResponse listConversationsResponse = new ListConversationsResponse();

            listConversationsResponse.HttpResponse = _ctx.HttpResponse;
            listConversationsResponse.RequestId    = _ctx.StringValue("ListConversations.RequestId");
            listConversationsResponse.TotalCount   = _ctx.LongValue("ListConversations.TotalCount");
            listConversationsResponse.PageNumber   = _ctx.IntegerValue("ListConversations.PageNumber");
            listConversationsResponse.PageSize     = _ctx.IntegerValue("ListConversations.PageSize");

            List <ListConversationsResponse.ListConversations_Conversation> listConversationsResponse_conversations = new List <ListConversationsResponse.ListConversations_Conversation>();

            for (int i = 0; i < _ctx.Length("ListConversations.Conversations.Length"); i++)
            {
                ListConversationsResponse.ListConversations_Conversation conversation = new ListConversationsResponse.ListConversations_Conversation();
                conversation.CallingNumber        = _ctx.StringValue("ListConversations.Conversations[" + i + "].CallingNumber");
                conversation.BeginTime            = _ctx.LongValue("ListConversations.Conversations[" + i + "].BeginTime");
                conversation.EndTime              = _ctx.LongValue("ListConversations.Conversations[" + i + "].EndTime");
                conversation.TransferredToAgent   = _ctx.BooleanValue("ListConversations.Conversations[" + i + "].TransferredToAgent");
                conversation.SkillGroupId         = _ctx.StringValue("ListConversations.Conversations[" + i + "].SkillGroupId");
                conversation.UserUtteranceCount   = _ctx.IntegerValue("ListConversations.Conversations[" + i + "].UserUtteranceCount");
                conversation.EffectiveAnswerCount = _ctx.IntegerValue("ListConversations.Conversations[" + i + "].EffectiveAnswerCount");
                conversation.ConversationId       = _ctx.StringValue("ListConversations.Conversations[" + i + "].ConversationId");

                listConversationsResponse_conversations.Add(conversation);
            }
            listConversationsResponse.Conversations = listConversationsResponse_conversations;

            return(listConversationsResponse);
        }
Пример #3
0
        /// <summary>
        /// Crea una nueva Solicitud en SOS IT de Celistics
        /// </summary>
        /// <param name="request">Objeto que contiene todos los datos de autenticacion del usuario e información de la Solicitud a consultar</param>
        /// <returns>Respuesta de la consulta de una determinada solicitud</returns>
        public GetSolicitudeResponse GetSolicitude(GetSolicitudeRequest request)
        {
            string methodName = string.Format("{0}", System.Reflection.MethodBase.GetCurrentMethod().Name);

            this.LogRequest(request);

            GetSolicitudeResponse response = new GetSolicitudeResponse();

            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);
            }

            GetSolicitudeOperation OperationRequest = new GetSolicitudeOperation();

            //Llamado REST al API SOS IT
            response = (GetSolicitudeResponse)OperationRequest.CallOperation(this.urlApi, this.technicianKey, this.TimeOutSOSIT, Request.EnumOperation.GET_REQUEST, request.Workorderid, -1, -1, null, null);

            if (request.WhitConversations)
            {
                ListConversationsRequest requestConversation = new ListConversationsRequest();
                requestConversation.AuthenticationData = request.AuthenticationData;
                requestConversation.DeviceType         = request.DeviceType;
                requestConversation.Platform           = request.Platform;
                requestConversation.Workorderid        = request.Workorderid;
                ListConversationsResponse responseConversation = ListConversations(requestConversation);

                if (responseConversation != null && responseConversation.ResponseCode == 0)
                {
                    response.Conversations = responseConversation.Conversations;
                }
            }


            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 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);
        }