示例#1
0
        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);
        }
示例#2
0
文件: Case.cs 项目: revenix/Claro
        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);
        }
示例#3
0
        ///  /// <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);
        }