//Nuevos Métodos
        public string LoadCatCondPro(string listPocos, string dataUser)
        {
            #region propiedades
            ICondPro _CondProRepository = new CondProRepository();
            IUploadLog _UploadLogRepository = new UploadLogRepository();
            IListUnids _ListUnids = new ListUnidsRepository();
            IServerLastData _ServerLastDataRepository = new ServerLastDataRepository();
            IEvidenceSync _EvidenceSyncRepository = new EvidenceSyncRepository();
            string res = null;
            List<ListUnidsModel> evListIds = null;
            UploadLogModel evDataUser = null;
            ObservableCollection<Model.CondProModel> ListCondPro;
            Model.UploadLogModel user;
            #endregion

            #region metodos
            try
            {
                if (!String.IsNullOrEmpty(listPocos))
                {
                    //Deserializa
                    ListCondPro = _CondProRepository.GetDeserializeCondPro(listPocos);

                    //actualiza o inserta a la tabla CAT_CONDPRO y trae la evidencia
                    evListIds = _CondProRepository.LoadSyncServer(ListCondPro);
                }

                //actualiza a la tabla SERVER_LASTDATA LA FECHA ACTUAL
                _ServerLastDataRepository.UpdateServerLastDataServer();

                //deserializa los datos del usuario
                user = _UploadLogRepository.GetDeserializeUpLoadLog(dataUser);
                if (user != null)
                {
                    //inserta a la  tabla UPLOAD_LOG SERVIDOR
                    evDataUser = _UploadLogRepository.InsertUploadLogServer(
                        new UploadLogModel()
                        {
                            IdUsuario = user.IdUsuario,
                            PcName = user.PcName,
                            IpDir = user.IpDir,
                            Msg = "Tabla CAT_CONDPRO sincronizada"
                        });
                }

                if (evListIds != null && evDataUser != null)
                {
                    Model.EvidenceSyncModel envidence = new EvidenceSyncModel() { ListIds = evListIds, DataUser = evDataUser };
                    string evidencia = _EvidenceSyncRepository.GetSerializeEvidenceSync(envidence);
                    res = evidencia;
                }
            }
            catch (Exception)
            {
                return res;
            }

            return res;
            #endregion
        }
        public string GetSettings(string dataUser)
        {
            #region propiedades

            string res = null;
            IUploadLog _up = new UploadLogRepository();

            Model.CnfSettingModel cnfSettingModel = null;
            Model.UploadLogModel user = null;

            //Variables para wait cycle
            Model.CnfSettingModel cnfWaitCylcle = null;
            Model.CnfSettingModel cnfCurrentCycle = null;

            int waitCycle = 0, currentCycle = 0;

            #endregion
            string errorResetCycle = "";

            try
            {
                //Inicializar variables
                //deserializa los datos del usuario
                user = _up.GetDeserializeUpLoadLog(dataUser);

                //obtener configuracion de la base de datos

                errorResetCycle = ConfigurationManager.AppSettings["ErrorResetCycle"].ToString();

                Int32.TryParse(cnfCurrentCycle.Valor, out currentCycle);
                Int32.TryParse(cnfWaitCylcle.Valor, out waitCycle);

                //condicion para ejecutar el envio de informacion a google
                if (currentCycle > waitCycle)
                {
                    try
                    {
                        //Se asegura con este valor que no entre otro proceso

                        //cnfSettingModel = _CnfSettingRepository.GetCnfSettingByID(7);

                        res = "Send to Spreedshet - Inicio de envió datos al Goolge Drive";
                        _up.InsertUploadLogServer(new Model.UploadLogModel()
                        {
                            IdUploadLog = new UNID().getNewUNID(),
                            IdUsuario = 1,
                            IpDir = user.IpDir,
                            PcName = user.PcName,
                            Msg = res
                        });

                        DateTime dt = DateTime.Now;
                        TimeSpan diff;

                        //envio de datos
                        //Send2GDViewModel _Send2GDViewModel = new Send2GDViewModel();
                        //_Send2GDViewModel.SendByInterval();

                        //Calcular el tiempo que se tardó el proceso de envío
                        diff = dt - DateTime.Now;

                        res = "Send to Spreedshet - Fin de envió datos al Goolge Drive en " + diff.ToString(@"\.hh\:mm\:ss\:ff");
                        _up.InsertUploadLogServer(new Model.UploadLogModel()
                        {
                            IdUploadLog = new UNID().getNewUNID() + 2,
                            IdUsuario = 1,
                            IpDir = user.IpDir,
                            PcName = user.PcName,
                            Msg = res
                        });

                        //Resetear current cycle
                        //_CnfSettingRepository.UpdateCnfSetting(new Model.CnfSettingModel() { IdSetting = 10, Valor = "0" });
                    }
                    catch (Exception ex)
                    {
                        //_CnfSettingRepository.UpdateCnfSetting(new Model.CnfSettingModel() { IdSetting = 10, Valor = errorResetCycle });
                        res = "GetSettings_ERROR :  " + ex.Message + ((ex.InnerException != null ? " - Inner ex : " + ex.InnerException.Message : " - no innerex"));

                        _up.InsertUploadLogServer(new Model.UploadLogModel()
                        {
                            IdUploadLog = new UNID().getNewUNID(),
                            IdUsuario = 1,
                            IpDir = user.IpDir,
                            PcName = user.PcName,
                            Msg = res
                        });
                    }/*end try-catch*/
                }
                else
                {
                    res = "Send to Spreedshet - Petición rechazada. Conteo actual " + currentCycle.ToString();
                    _up.InsertUploadLogServer(new Model.UploadLogModel()
                    {
                        IdUploadLog = new UNID().getNewUNID(),
                        IdUsuario = 1,
                        IpDir = user.IpDir,
                        PcName = user.PcName,
                        Msg = res
                    });

                    //Incrementar current cycle
                    currentCycle++;
                    //_CnfSettingRepository.UpdateCnfSetting(new Model.CnfSettingModel() { IdSetting = 10, Valor = currentCycle.ToString() });

                }/*end if-else*/
            }
            catch (Exception ex)
            {
               // _CnfSettingRepository.UpdateCnfSetting(new Model.CnfSettingModel() { IdSetting = 10, Valor = errorResetCycle });

                res = "GetSettings_ERROR :  " + ex.Message + ((ex.InnerException != null ? " - Inner ex : " + ex.InnerException.Message : " - no innerex"));

                _up.InsertUploadLogServer(new Model.UploadLogModel()
                {
                    IdUploadLog = new UNID().getNewUNID(),
                    IdUsuario = 1,
                    IpDir = "unknown",
                    PcName = "unknown",
                    Msg = res
                });
            }/*end try-catch*/

            return res;
        }
        public string LoadCiRegistro(string listPocos, string dataUser)
        {
            #region propiedades
            IRegistro _RegistroRepository = new RegistroRepository();
            IUploadLog _UploadLogRepository = new UploadLogRepository();
            IListUnids _ListUnids = new ListUnidsRepository();
            IServerLastData _ServerLastDataRepository = new ServerLastDataRepository();
            IEvidenceSync _EvidenceSyncRepository = new EvidenceSyncRepository();
            string res = null;
            List<ListUnidsModel> evListIds = null;
            UploadLogModel evDataUser = null;
            ObservableCollection<Model.RegistroModel> ListRegistro;
            Model.UploadLogModel user =null;
            #endregion

            #region metodos
            try
            {
                if (!String.IsNullOrEmpty(listPocos))
                {
                    try
                    {
                        //Deserializa
                        ListRegistro = _RegistroRepository.GetDeserializeRegistro(listPocos);
                    }
                    catch (Exception ex)
                    {
                        _UploadLogRepository.InsertUploadLogServer(new Model.UploadLogModel()
                            {
                                IdUploadLog = new UNID().getNewUNID()
                                ,
                                IpDir = "Error"
                                ,
                                PcName = "Test Error"
                                ,
                                Msg = "Error al deserealizar:  " + ex.Message
                                ,
                                IdUsuario=1
                            });
                        return res;
                    }

                    try
                    {
                        //actualiza o inserta a la tabla CI_REGISTRO y trae la evidencia
                        evListIds = _RegistroRepository.LoadSyncServer(ListRegistro);
                    }
                    catch (Exception ex)
                    {
                        _UploadLogRepository.InsertUploadLogServer(new Model.UploadLogModel()
                        {
                            IdUploadLog = new UNID().getNewUNID()
                            ,
                            IpDir = "Error"
                            ,
                            PcName = "Test Error"
                            ,
                            Msg = "Error al insertar o actualizar:  " + ex.Message
                            ,
                            IdUsuario = 1
                        });
                        return res;
                    }

                }

                //actualiza a la tabla SERVER_LASTDATA LA FECHA ACTUAL
                _ServerLastDataRepository.UpdateServerLastDataServer();

                //deserializa los datos del usuario
                user = _UploadLogRepository.GetDeserializeUpLoadLog(dataUser);
                if (user != null)
                {
                    //inserta a la  tabla UPLOAD_LOG SERVIDOR
                    evDataUser = _UploadLogRepository.InsertUploadLogServer(
                        new UploadLogModel()
                        {
                            IdUsuario = user.IdUsuario
                            ,
                            PcName = user.PcName
                            ,
                            IpDir = user.IpDir
                            ,
                            Msg = "Tabla CI_REGISTRO sincronizada"
                        });
                }

                if (evListIds != null && evDataUser != null)
                {
                    Model.EvidenceSyncModel envidence = new EvidenceSyncModel() { ListIds = evListIds, DataUser = evDataUser };
                    string evidencia = _EvidenceSyncRepository.GetSerializeEvidenceSync(envidence);
                    res = evidencia;
                }
            }
            catch (Exception ex)
            {
                _UploadLogRepository.InsertUploadLogServer(new Model.UploadLogModel()
                {
                    IdUploadLog = new UNID().getNewUNID()
                    ,
                    IpDir = user.IpDir
                    ,
                    PcName = user.PcName
                    ,
                    Msg = "LoadCiRegistro_ERROR :  " + ex.Message
                    ,
                    IdUsuario=1
                });
                return res;
            }

            return res;
            #endregion
        }
        public string DownloadCiRegistro(long? lastModifiedDate, long? serverLastModifiedDate)
        {
            #region propiedades
            IUploadLog _up = new UploadLogRepository();
            string respuesta = null;
            IRegistro _RegistroRepository = new RegistroRepository();
            #endregion

            #region metodos
            try
            {
                if (lastModifiedDate != null)
                {
                    respuesta = _RegistroRepository.GetJsonRegistro(lastModifiedDate, serverLastModifiedDate);

                    if (String.IsNullOrEmpty(respuesta))
                        respuesta = null;

                }
            }
            catch (Exception ex)
            {

                _up.InsertUploadLogServer(new Model.UploadLogModel()
                {
                    IdUploadLog =new UNID().getNewUNID(),
                    IdUsuario = 1,
                    IpDir = "ERROR AL DESCARGA DE DATOS",
                    Msg = "DownloadCiRegistro_ERROR :" + ex.Message,
                    PcName = "ERROR AL DESCARGA DE DATOS"
                });
                return respuesta;
            }

            return respuesta;
            #endregion
        }