public Dictionary <string, Guid> Iniciar(Oracle ora, Comun com, Crm crm) { try { OracleGlobal = ora; ComunGlobal = com; CrmGlobal = crm; CrmGlobal.InicializarPFE(OracleGlobal); //1 Cargar Modalidades LeerModalidadesFromCRM(); LeerModalidadesFromOracle(); bool ok; Modalidad modalidad; if (ModalidadesOracle.Any()) { #region Tratamiento Modalidades ComunGlobal.LogText("---- Iniciando CARGA MODALIDADES ------"); ComunGlobal.LogText("**** Registros a cotejar: " + ModalidadesOracle.Count); foreach (var mod in ModalidadesOracle) { ok = ModalidadesCRM.TryGetValue(mod.Key, out modalidad); if (!ok) { var ent = new Entity(AenModalidad.EntityName); ent[AenModalidad.PrimaryName] = modalidad.aen_name; ent[AenModalidad.AenCodigomodalidad] = modalidad.aen_codigomodalidad; CrmGlobal.AnadirElementoEmr(new CreateRequest { Target = ent }); } else { bool sonIguales = ModalidadesIguales(mod.Value, modalidad); if (sonIguales) { CrmGlobal.Iguales++; } else { var ent = new Entity(AenModalidad.EntityName, modalidad.aen_modalidadid); ent[AenModalidad.PrimaryName] = modalidad.aen_name; ent[AenModalidad.AenCodigomodalidad] = modalidad.aen_codigomodalidad; CrmGlobal.AnadirElementoEmr(new UpdateRequest { Target = ent }); } } } CrmGlobal.ProcesarUltimosEmr(); CrmGlobal.MostrarEstadisticas("MODALIDADES"); ComunGlobal.LogText("---- FINALIZADA CARGA MODALIDADES ------"); #endregion Tratamiento Modalidades } else { ComunGlobal.LogText("No hay MODALIDADES en origen, terminamos"); } //2. Devolver Maestro de Modalidades #region Carga Maestro Modalidades MaestroModalidadesCRM = new Dictionary <string, Guid>(); var q = new QueryExpression(AenModalidad.EntityName); q.Criteria.AddCondition(AenModalidad.AenCodigomodalidad, ConditionOperator.NotNull); q.ColumnSet = new ColumnSet(AenModalidad.AenCodigomodalidad, AenModalidad.PrimaryName); EntityCollection modColeccion = CrmGlobal.GetIOS().RetrieveMultiple(q); if (modColeccion.Entities.Count > 0) { foreach (Entity modCRM in modColeccion.Entities) { MaestroModalidadesCRM.Add(modCRM.GetAttributeValue <string>(AenModalidad.AenCodigomodalidad), modCRM.Id); } } #endregion Carga Maestro Modalidades //3. Limpiar Diccionarios para liberar memoria ModalidadesOracle.Clear(); ModalidadesCRM.Clear(); return(MaestroModalidadesCRM); } catch (Exception e) { ComunGlobal.LogText("ERROR en Lanzador de MODALIDADES ::: " + e.ToString()); if (OracleGlobal != null && OracleGlobal.OraConnParaLog.State == ConnectionState.Open) { OracleGlobal.OraConnParaLog.Dispose(); } return(null); } }
public Dictionary <string, Guid> Iniciar(Oracle ora, Comun com, Crm crm) { try { OracleGlobal = ora; ComunGlobal = com; CrmGlobal = crm; CrmGlobal.InicializarPFE(OracleGlobal); //1 Cargar AreasConocimiento LeerAreasConocimientoFromCRM(); LeerAreasConocimientoFromOracle(); bool ok; AreaDeConocimiento area; AreasADesactivar = new List <string>(); if (AreasConocimientoOracle.Any()) { #region Tratamiento AreasConocimiento ComunGlobal.LogText("---- Iniciando CARGA AREAS DE CONOCIMIENTO ------"); ComunGlobal.LogText("**** Registros a cotejar: " + AreasConocimientoOracle.Count); foreach (var a in AreasConocimientoOracle) { ok = AreasConocimientoCRM.TryGetValue(a.Key, out area); if (!ok) { var ent = new Entity(AenAreadeconocimiento.EntityName); ent[AenAreadeconocimiento.PrimaryName] = area.aen_name; if (area.statecode == 1) { AreasADesactivar.Add(area.aen_name); } CrmGlobal.AnadirElementoEmr(new CreateRequest { Target = ent }); } else { bool sonIguales = AreasConocimientoIguales(a.Value, area); if (sonIguales) { CrmGlobal.Iguales++; } else { var ent = new Entity(AenAreadeconocimiento.EntityName, area.aen_areaconocimientoid); ent[AenAreadeconocimiento.PrimaryName] = area.aen_name; ent[AenAreadeconocimiento.StateCode] = new OptionSetValue(area.statecode); ent[AenAreadeconocimiento.StatusCode] = new OptionSetValue(area.statuscode); CrmGlobal.AnadirElementoEmr(new UpdateRequest { Target = ent }); } } } CrmGlobal.ProcesarUltimosEmr(); CrmGlobal.MostrarEstadisticas("Areas de Conocimiento"); ComunGlobal.LogText("---- FINALIZADA CARGA AREAS DE CONOCIMIENTO ------"); #endregion Tratamiento AreasConocimiento } else { ComunGlobal.LogText("No hay Areas de Conocimiento en origen, terminamos"); } //2. Devolver Maestro de AreasConocimiento #region Carga Maestro Areas de Conocimiento MaestroAreasConocimientoCRM = new Dictionary <string, Guid>(); var q = new QueryExpression(AenAreadeconocimiento.EntityName); q.Criteria.AddCondition(AenAreadeconocimiento.PrimaryName, ConditionOperator.NotNull); q.ColumnSet = new ColumnSet(AenAreadeconocimiento.PrimaryName); EntityCollection modColeccion = CrmGlobal.GetIOS().RetrieveMultiple(q); if (modColeccion.Entities.Count > 0) { foreach (Entity modCRM in modColeccion.Entities) { MaestroAreasConocimientoCRM.Add(modCRM.GetAttributeValue <string>(AenAreadeconocimiento.PrimaryName), modCRM.Id); } } #endregion Carga Maestro AreasConocimiento //3. Desactivar las Áreas de conocimiento inactivas desde origen #region Desactivar areas if (AreasADesactivar.Any()) { Guid auxG = Guid.Empty; foreach (string str in AreasADesactivar) { var okk = MaestroAreasConocimientoCRM.TryGetValue(str, out auxG); if (okk) { Entity en = new Entity(AenAreadeconocimiento.EntityName, auxG); en[AenAreadeconocimiento.StateCode] = new OptionSetValue(1); en[AenAreadeconocimiento.StatusCode] = new OptionSetValue(2); CrmGlobal.AnadirElementoEmr(new UpdateRequest { Target = en }); } } } #endregion Desactivar areas //4. Limpiar Diccionarios para liberar memoria AreasConocimientoOracle.Clear(); AreasConocimientoCRM.Clear(); AreasADesactivar.Clear(); return(MaestroAreasConocimientoCRM); } catch (Exception e) { ComunGlobal.LogText("ERROR en Lanzador de AreasConocimiento ::: " + e.ToString()); if (OracleGlobal != null && OracleGlobal.OraConnParaLog.State == ConnectionState.Open) { OracleGlobal.OraConnParaLog.Dispose(); } return(null); } }