/// <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); }
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); }
/// <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, @"<[^>]+>|"| ", "").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); }