public DACase BuscarCaseExistente(UpdateOrCloseTaskCaseRequest request) { DACase caso = new DACase(); try { // Cast the proxy client to the IOrganizationService interface. _service = (IOrganizationService)conn.OrganizationWebProxyClient != null ? (IOrganizationService)conn.OrganizationWebProxyClient : (IOrganizationService)conn.OrganizationServiceProxy; //var gestiones = FetchGestionesAbiertas(idCampania); } catch { throw; } return(caso); }
public int BuscarCaseExistente(UpdateOrCloseTaskCaseRequest request) { int resultado = 0; //CodSol codSoluc = CodSol.Ninguno; //EntityReference typeCase = null; string casoNumber = string.Empty; //EntityReference customerId = null; int statusCodeTask = 0; Guid casoId = new Guid(request.caseId); string numbercase = request.caseNumber; Guid taskid = new Guid(request.taskId); int estado = Convert.ToInt32(request.State); try { //Buscar si existe el Caso en el CRM var fetch = CasoExistente(casoId); service = DAConexionCRM.Instancia.GetService(strUrl, strUsuario, strClave, strDominio); EntityCollection resultC = service.RetrieveMultiple(new FetchExpression(fetch)); if (resultC.Entities.Count > 0) { if (resultC[0].Attributes["ticketnumber"] != null) { casoNumber = resultC[0].Attributes["ticketnumber"].ToString(); statusCodeTask = ((OptionSetValue)resultC[0].Attributes["statecode"]).Value; if (statusCodeTask == 0) { //if (resultC[0].Attributes["customerid"] != null) //{ // customerId = (EntityReference)resultC[0].Attributes["customerid"]; //} var fetchTask = task(taskid); EntityCollection result = service.RetrieveMultiple(new FetchExpression(fetchTask)); if (result.Entities.Count > 0) { SetStateRequest setStateRequest = new SetStateRequest(); // In my case i'm Cancelling Task Activity setStateRequest.EntityMoniker = new EntityReference(result.EntityName, taskid); // Set the State and Status OptionSet Values to Cancelled. setStateRequest.State = new OptionSetValue(2); setStateRequest.Status = new OptionSetValue(estado); //6 Cancelled // Execute the Response SetStateResponse setStateResponse = (SetStateResponse)service.Execute(setStateRequest); resultado = Convert.ToInt32(CodSol.ActualizadoCorrectamente); } } else { resultado = Convert.ToInt32(CodSol.TareaYaestaCerrada); } } } else { resultado = Convert.ToInt32(CodSol.NoExisteCaso); } } catch (Exception ex) { Global.AuditoriaUT.GenerarLogError("Error en el servicio", "Buscar Case Existente", ex.Message, Global.AuditoriaUT.TipoExtension.Txt); } return(resultado); }
/// /// <summary> /// Creador : William Quiroz /// Actualización: 11/07/2018 /// Función : /// Evento : /// Req. : AMXPEASIS-3167 /// Entidad : case /// </summary> public UpdateOrCloseTaskCaseResponse UpdateStatusTaskRemedy(UpdateOrCloseTaskCaseRequest request) { UpdateOrCloseTaskCaseResponse response = null; int resultado = 0; string estadosolicitud = string.Empty; try { //if (request.caseId != null && request.taskId != null && request.caseNumber != null && request.State != null) if (request.caseId != null) { resultado = Case.Instancia.BuscarCaseExistente(request); if (resultado == 2) { estadosolicitud = "1"; response = new UpdateOrCloseTaskCaseResponse() { estSol = estadosolicitud, codSol = "", msgErr = "Actualizado correctamente." }; } else if (resultado == 1) { response = new UpdateOrCloseTaskCaseResponse() { estSol = "", codSol = "3", //La tarea ya se encuentra cerrada msgErr = "La tarea ya se encuentra cerrada." }; } else { estadosolicitud = "2"; response = new UpdateOrCloseTaskCaseResponse() { estSol = estadosolicitud, codSol = "1", msgErr = "Error en el servicio de CRM." }; } } else if (request.caseId == null) { response = new UpdateOrCloseTaskCaseResponse() { estSol = "", codSol = "5", msgErr = "El id del caso es obligatorio." }; } else if (request.taskId != null) { response = new UpdateOrCloseTaskCaseResponse() { estSol = "", codSol = "4", msgErr = "El id de la tarea es obligatorio." }; } } catch (Exception ex) { Global.AuditoriaUT.GenerarLogError("Task", "Error en el Servicio", ex.Message, Global.AuditoriaUT.TipoExtension.Txt); response.msgErr = ex.InnerException.ToString(); } return(response); }