public void OnEditarCommand()
 {
     try
     {
         _PendenciaTemp     = PendenciaSelecionada.CriaCopia(PendenciaSelecionada);
         _selectedIndexTemp = SelectedIndex;
         HabilitaEdicao     = true;
     }
     catch (Exception)
     {
     }
 }
        public void OnSalvarAdicaoCommand()
        {
            try
            {
                HabilitaEdicao = false;
                System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(ClassePendencias));

                ObservableCollection <ClassePendencias.Pendencia> _PendenciasPro = new ObservableCollection <ClassePendencias.Pendencia>();
                ClassePendencias _ClassePendenciasPro = new ClassePendencias();
                _PendenciasPro.Add(PendenciaSelecionada);
                _ClassePendenciasPro.Pendencias = _PendenciasPro;

                string xmlString;

                using (StringWriterWithEncoding sw = new StringWriterWithEncoding(System.Text.Encoding.UTF8))
                {
                    using (XmlTextWriter xw = new XmlTextWriter(sw))
                    {
                        xw.Formatting = Formatting.Indented;
                        serializer.Serialize(xw, _ClassePendenciasPro);
                        xmlString = sw.ToString();
                    }
                }

                InserePendenciaBD(xmlString);

                //Thread CarregaUI_thr = new Thread(() => CarregaColecaoPendencias(Cadastro, Tag, ID));
                //CarregaUI_thr.Start();

                _PendenciasTemp.Add(PendenciaSelecionada);
                Pendencias    = null;
                Pendencias    = new ObservableCollection <ClassePendencias.Pendencia>(_PendenciasTemp);
                SelectedIndex = _selectedIndexTemp;
                _PendenciasTemp.Clear();


                _PendenciasPro = null;

                _PendenciasPro.Clear();
                _PendenciaTemp = null;
            }
            catch (Exception ex)
            {
                //Global.Log("Erro void CarregaColecaoEmpresas ex: " + ex.Message);
            }
        }
 public void OnAdicionarCommand(int Cadastro, int _TipoPendenciaID, int EntidadeID)
 {
     try
     {
         if (Pendencias == null)
         {
             Pendencias = new ObservableCollection <ClassePendencias.Pendencia>();
         }
         foreach (var x in Pendencias)
         {
             _PendenciasTemp.Add(x);
         }
         _selectedIndexTemp = SelectedIndex;
         Pendencias.Clear();
         _PendenciaTemp = new ClassePendencias.Pendencia();
         if (_TipoPendenciaID != 0)
         {
             _PendenciaTemp.TipoPendenciaID = _TipoPendenciaID;
         }
         if (Cadastro == 1)
         {
             _PendenciaTemp.EmpresaID = EntidadeID;
         }
         else if (Cadastro == 2)
         {
             _PendenciaTemp.ColaboradorID = EntidadeID;
         }
         else if (Cadastro == 3)
         {
             _PendenciaTemp.VeiculoID = EntidadeID;
         }
         Pendencias.Add(_PendenciaTemp);
         SelectedIndex  = 0;
         HabilitaEdicao = true;
     }
     catch (Exception ex)
     {
     }
 }
        private void InserePendenciaBD(string xmlString)
        {
            try
            {
                System.Xml.XmlDocument _xmlDoc = new System.Xml.XmlDocument();
                _xmlDoc.LoadXml(xmlString);

                ClassePendencias.Pendencia _Pendencia = new ClassePendencias.Pendencia();

                int i = 0;

                _Pendencia.PendenciaID     = _xmlDoc.GetElementsByTagName("PendenciaID")[i] == null ? 0 : Convert.ToInt32(_xmlDoc.GetElementsByTagName("PendenciaID")[i].InnerText);
                _Pendencia.TipoPendenciaID = _xmlDoc.GetElementsByTagName("TipoPendenciaID")[i] == null ? 0 : Convert.ToInt32(_xmlDoc.GetElementsByTagName("TipoPendenciaID")[i].InnerText);
                _Pendencia.Descricao       = _xmlDoc.GetElementsByTagName("Descricao")[i] == null ? "" : _xmlDoc.GetElementsByTagName("Descricao")[i].InnerText;
                _Pendencia.DataLimite      = _xmlDoc.GetElementsByTagName("DataLimite")[i].InnerText == "" ? null : (DateTime?)Convert.ToDateTime(_xmlDoc.GetElementsByTagName("DataLimite")[i].InnerText);
                bool _impeditivo;
                Boolean.TryParse(_xmlDoc.GetElementsByTagName("Impeditivo")[i].InnerText, out _impeditivo);
                _Pendencia.ColaboradorID = _xmlDoc.GetElementsByTagName("ColaboradorID")[i] == null ? 0 : Convert.ToInt32(_xmlDoc.GetElementsByTagName("ColaboradorID")[i].InnerText);
                _Pendencia.EmpresaID     = _xmlDoc.GetElementsByTagName("EmpresaID")[i] == null ? 0 : Convert.ToInt32(_xmlDoc.GetElementsByTagName("EmpresaID")[i].InnerText);
                _Pendencia.VeiculoID     = _xmlDoc.GetElementsByTagName("VeiculoID")[i] == null ? 0 : Convert.ToInt32(_xmlDoc.GetElementsByTagName("VeiculoID")[i].InnerText);

                SqlConnection _Con = new SqlConnection(Global._connectionString); _Con.Open();

                SqlCommand _sqlCmd;
                if (_Pendencia.PendenciaID != 0)
                {
                    _sqlCmd = new SqlCommand("Update Pendencias set TipoPendenciaID=@v1, Descricao=@v2, " +
                                             "DataLimite=@v3, Impeditivo=@v4, ColaboradorID=@v5, EmpresaID=@v6, VeiculoID=@7 where PendenciaID=@v8", _Con);

                    _sqlCmd.Parameters.Add("@V1", SqlDbType.Int).Value     = _Pendencia.TipoPendenciaID;
                    _sqlCmd.Parameters.Add("@V2", SqlDbType.VarChar).Value = _Pendencia.Descricao;
                    if (_Pendencia.DataLimite == null)
                    {
                        _sqlCmd.Parameters.Add("@V3", SqlDbType.DateTime).Value = DBNull.Value;
                    }
                    else
                    {
                        _sqlCmd.Parameters.Add("@V3", SqlDbType.DateTime).Value = _Pendencia.DataLimite;
                    }
                    _sqlCmd.Parameters.Add("@V4", SqlDbType.Bit).Value = _impeditivo;
                    _sqlCmd.Parameters.Add("@V5", SqlDbType.Int).Value = _Pendencia.ColaboradorID;
                    _sqlCmd.Parameters.Add("@V6", SqlDbType.Int).Value = _Pendencia.EmpresaID;
                    _sqlCmd.Parameters.Add("@V7", SqlDbType.Int).Value = _Pendencia.VeiculoID;
                    _sqlCmd.Parameters.Add("@V8", SqlDbType.Int).Value = _Pendencia.PendenciaID;
                }
                else
                {
                    _sqlCmd = new SqlCommand("Insert into Pendencias(TipoPendenciaID, Descricao, " +
                                             "DataLimite, Impeditivo, ColaboradorID, EmpresaID,VeiculoID) VALUES (@v1,@v2,@v3,@v4,@v5,@v6,@v7)", _Con);

                    _sqlCmd.Parameters.Add("@V1", SqlDbType.Int).Value     = _Pendencia.TipoPendenciaID;
                    _sqlCmd.Parameters.Add("@V2", SqlDbType.VarChar).Value = _Pendencia.Descricao;
                    if (_Pendencia.DataLimite == null)
                    {
                        _sqlCmd.Parameters.Add("@V3", SqlDbType.DateTime).Value = DBNull.Value;
                    }
                    else
                    {
                        _sqlCmd.Parameters.Add("@V3", SqlDbType.DateTime).Value = _Pendencia.DataLimite;
                    }
                    _sqlCmd.Parameters.Add("@V4", SqlDbType.Bit).Value = _impeditivo;
                    _sqlCmd.Parameters.Add("@V5", SqlDbType.Int).Value = _Pendencia.ColaboradorID;
                    _sqlCmd.Parameters.Add("@V6", SqlDbType.Int).Value = _Pendencia.EmpresaID;
                    _sqlCmd.Parameters.Add("@V7", SqlDbType.Int).Value = _Pendencia.VeiculoID;
                }

                _sqlCmd.ExecuteNonQuery();

                if (_Pendencia.EmpresaID != 0)
                {
                    _sqlCmd = new SqlCommand("Update Empresas Set " +
                                             "Pendente" + _Pendencia.TipoPendenciaID + "= 'True' " +
                                             " Where EmpresaID = " + _Pendencia.EmpresaID, _Con);
                }
                else if (_Pendencia.ColaboradorID != 0)
                {
                    _sqlCmd = new SqlCommand("Update Colaboradores Set " +
                                             "Pendente" + _Pendencia.TipoPendenciaID + "= 'True' " +
                                             " Where ColaboradorID = " + _Pendencia.ColaboradorID, _Con);
                }
                else if (_Pendencia.VeiculoID != 0)
                {
                    _sqlCmd = new SqlCommand("Update Veiculos Set " +
                                             "Pendente" + _Pendencia.TipoPendenciaID + "= 'True' " +
                                             " Where VeiculoID = " + _Pendencia.VeiculoID, _Con);
                }
                _sqlCmd.ExecuteNonQuery();


                _Con.Close();
            }
            catch (Exception ex)
            {
                Global.Log("Erro na void InserePendenciaBD ex: " + ex);
            }
        }