public static bool VincularVeiculo(ClasseVeiculosCredenciais.VeiculoCredencial veiculoCredencial) { try { //IEngine _sdk = Main.engine; Cardholder _cardholder; string _firstname = ""; string _lastname = ""; ////// CardHolder try { _sdk.TransactionManager.CreateTransaction(); _cardholder = BuscarCardHolder(veiculoCredencial.Placa, veiculoCredencial.CNPJ); string[] _nomeCompleto = veiculoCredencial.VeiculoNome.Split(' '); int _len = _nomeCompleto.Count(); if (_len > 1) { _lastname = _nomeCompleto[_len - 1]; _firstname = _nomeCompleto[0]; } else { _firstname = veiculoCredencial.VeiculoNome; } //DateTime _DataValidade; //if (vinculo.Validade != null) //{ // _DataValidade = (DateTime)vinculo.Validade; // _DataValidade = _DataValidade.AddSeconds(86399); // _DataValidade = _DataValidade <= DateTime.Now ? DateTime.Now.AddSeconds(3) : _DataValidade; //} //else //{ // _DataValidade = DateTime.Now.AddSeconds(86399); //} CardholderGroup _cardholderGroup = _sdk.GetEntity(EntityType.CardholderGroup, 1) as CardholderGroup; if (_cardholder == null) { _cardholder = _sdk.CreateEntity(veiculoCredencial.VeiculoNome, EntityType.Cardholder) as Cardholder; } BitmapImage _img = Conversores.STRtoIMG(veiculoCredencial.VeiculoFoto) as BitmapImage; Bitmap _Foto = Conversores.BitmapImageToBitmap(_img); if (_Foto != null) { _cardholder.Picture = _Foto; } Bitmap _Motorista = null; _cardholder.SetCustomFieldAsync("No. do Veiculo", veiculoCredencial.VeiculoID); _cardholder.SetCustomFieldAsync("CPF", veiculoCredencial.Placa); _cardholder.SetCustomFieldAsync("Motorista", _img); _cardholder.SetCustomFieldAsync("Empresa", veiculoCredencial.EmpresaNome); _cardholder.SetCustomFieldAsync("Nome Fantasia", veiculoCredencial.EmpresaApelido); _cardholder.SetCustomFieldAsync("CNPJ", veiculoCredencial.CNPJ); _cardholder.SetCustomFieldAsync("Cargo", veiculoCredencial.Cargo); _cardholder.InsertIntoPartition(Partition.DefaultPartitionGuid); if (_cardholder.Groups.Count == 0 && _cardholderGroup != null) { _cardholder.Groups.Add(_cardholderGroup.Guid); } _cardholder.FirstName = _firstname; _cardholder.LastName = _lastname; //_cardholder.ActivationMode = new SpecificActivationPeriod(DateTime.Now, _DataValidade); _sdk.TransactionManager.CommitTransaction(); veiculoCredencial.CardHolderGuid = _cardholder.Guid; } catch (Exception ex) { return(false); } //// Credencial /// if (veiculoCredencial.FormatIDGUID != "00000000-0000-0000-0000-000000000000" && veiculoCredencial.NumeroCredencial != "") { try { DateTime _DataValidade; if (veiculoCredencial.Validade != null) { _DataValidade = (DateTime)veiculoCredencial.Validade; _DataValidade = _DataValidade.AddSeconds(86399); _DataValidade = _DataValidade <= DateTime.Now ? DateTime.Now.AddSeconds(3) : _DataValidade; } else { _DataValidade = DateTime.Now.AddSeconds(86399); } Credential _credencial; // = _sdk.GetEntity((Guid)veiculoCredencial.CredencialGuid) as Credential; _credencial = BuscarCredencial(veiculoCredencial.NumeroCredencial, veiculoCredencial.FormatIDGUID, veiculoCredencial.FC); if (_credencial != null) { if (_credencial.CardholderGuid != _cardholder.Guid) { //MessageBox.Show("Esta credencial pertence a outro usuário e não pode ser vinculada!", "Erro ao Vincular", MessageBoxButtons.OK,MessageBoxIcon.Exclamation); Global.PopupBox("Esta credencial já está associada a um usuário e não pode ser vinculada!", 4); return(false); } else // atualizar credencial { if (veiculoCredencial.LayoutCrachaGUID != "") { BadgeTemplate _BadgeTemplate = _sdk.GetEntity(new Guid(veiculoCredencial.LayoutCrachaGUID)) as BadgeTemplate; _credencial.BadgeTemplate = _BadgeTemplate.Guid; _credencial.ActivationMode = new SpecificActivationPeriod(DateTime.Now, _DataValidade); } } } else //criar nova credencial { _sdk.TransactionManager.CreateTransaction(); _credencial = _sdk.CreateEntity("Credencial de " + _firstname, EntityType.Credential) as Credential; _credencial.Name = veiculoCredencial.NumeroCredencial + " - " + _firstname + " " + _lastname; _credencial.ActivationMode = new SpecificActivationPeriod(DateTime.Now, _DataValidade); if (veiculoCredencial.LayoutCrachaGUID != "") { BadgeTemplate _BadgeTemplate = _sdk.GetEntity(new Guid(veiculoCredencial.LayoutCrachaGUID)) as BadgeTemplate; _credencial.BadgeTemplate = _BadgeTemplate.Guid; } //0 N/D 00000000-0000-0000-0000-000000000000 //1 Standard - 26 bits 00000000-0000-0000-0000-000000000200 //2 H10302 - 37 bits 00000000-0000-0000-0000-000000000400 //3 H10304 - 37 bits 00000000-0000-0000-0000-000000000500 //4 H10306 - 34 bits 00000000-0000-0000-0000-000000000300 //5 HID Corporate 1000 - 35 bits 00000000-0000-0000-0000-000000000600 //6 HID Corporate 1000 - 48 bits 00000000-0000-0000-0000-000000000800 //7 CSN 00000000-0000-0000-0000-000000000700 switch (veiculoCredencial.FormatIDGUID) { case "00000000-0000-0000-0000-000000000200": _credencial.Format = new WiegandStandardCredentialFormat(Convert.ToInt32(veiculoCredencial.FC), Convert.ToInt32(veiculoCredencial.NumeroCredencial)); break; case "00000000-0000-0000-0000-000000000400": _credencial.Format = new WiegandH10302CredentialFormat(Convert.ToInt32(veiculoCredencial.NumeroCredencial)); break; case "00000000-0000-0000-0000-000000000500": _credencial.Format = new WiegandH10304CredentialFormat(Convert.ToInt32(veiculoCredencial.FC), Convert.ToInt32(veiculoCredencial.NumeroCredencial)); break; case "00000000-0000-0000-0000-000000000300": _credencial.Format = new WiegandH10306CredentialFormat(Convert.ToInt32(veiculoCredencial.FC), Convert.ToInt32(veiculoCredencial.NumeroCredencial)); break; case "00000000-0000-0000-0000-000000000600": _credencial.Format = new WiegandCorporate1000CredentialFormat(Convert.ToInt32(veiculoCredencial.FC), Convert.ToInt32(veiculoCredencial.NumeroCredencial)); break; case "00000000-0000-0000-0000-000000000800": _credencial.Format = new Wiegand48BitCorporate1000CredentialFormat(Convert.ToInt32(veiculoCredencial.FC), Convert.ToInt32(veiculoCredencial.NumeroCredencial)); break; case "00000000-0000-0000-0000-000000000700": CustomCredentialFormat mifareCSN; SystemConfiguration sysConfig = _sdk.GetEntity(SdkGuids.SystemConfiguration) as SystemConfiguration; if (sysConfig != null) { foreach (CredentialFormat cardFormat in sysConfig.CredentialFormats) { if (cardFormat.Name == "CSN") { mifareCSN = cardFormat as CustomCredentialFormat; mifareCSN.SetValues(long.Parse(veiculoCredencial.NumeroCredencial)); _credencial.Format = mifareCSN; break; } // } } break; } //if (_credencial.Format != null) //{ _credencial.InsertIntoPartition(Partition.DefaultPartitionGuid); _cardholder.Credentials.Add(_credencial); //} _sdk.TransactionManager.CommitTransaction(); } veiculoCredencial.CredencialGuid = _credencial.Guid; } catch (Exception ex) { return(false); } } return(true); } catch (Exception ex) { return(false); } }
public static bool Vincular(ClasseColaboradoresCredenciais.ColaboradorCredencial colaboradorCredencial) { try { //IEngine _sdk = Main.engine; Cardholder _cardholder = null; string _firstname = ""; string _lastname = ""; ////// CardHolder try { _cardholder = BuscarCardHolder(colaboradorCredencial.CPF, colaboradorCredencial.CNPJ); _sdk.TransactionManager.CreateTransaction(); string[] _nomeCompleto = colaboradorCredencial.ColaboradorNome.Split(' '); int _len = _nomeCompleto.Count(); if (_len > 1) { _lastname = _nomeCompleto[_len - 1]; _firstname = _nomeCompleto[0]; } else { _firstname = colaboradorCredencial.ColaboradorNome; } CardholderGroup _cardholderGroup = _sdk.GetEntity(EntityType.CardholderGroup, 1) as CardholderGroup; if (_cardholder == null) { _cardholder = _sdk.CreateEntity(colaboradorCredencial.ColaboradorNome, EntityType.Cardholder) as Cardholder; } BitmapImage _img1 = Conversores.STRtoIMG(colaboradorCredencial.ColaboradorFoto) as BitmapImage; BitmapImage _img2 = Conversores.STRtoIMG(colaboradorCredencial.EmpresaLogo) as BitmapImage; Bitmap _Foto = Conversores.BitmapImageToBitmap(_img1); if (_Foto != null) { _cardholder.Picture = _Foto; } ////// CUSTOM FIELDS ////// //var _systemConfiguration = _sdk.GetEntity(SdkGuids.SystemConfiguration) as SystemConfiguration; //var _customFieldService = _systemConfiguration.CustomFieldService; //Bitmap _Logo = Conversores.BitmapImageToBitmap(_img2); //System.Drawing.Image _img3 = System.Drawing.Image.FromFile("D:\\Meus Documentos\\Visual Studio 2015\\Projects\\Genetec\\Projeto Credenciamento\\iModSCCredenciamento 1.0.0.3\\iModSCCredenciamento\\Resources\\Contrato.jpg"); //var _customField = _customFieldService.CustomFields.Where(x => x.EntityType == EntityType.Cardholder && x.Name.Equals("Logo")).FirstOrDefault(); //if (_customField != null) //{ // _customFieldService.SetValue(_customField, _cardholder.Guid, _img3); //} Bitmap _Logo = Conversores.BitmapImageToBitmap(_img2); if (_Logo != null) { _cardholder.SetCustomFieldAsync("Logo", _Logo); } Bitmap _Motorista = null; if (colaboradorCredencial.Motorista) { _img1 = new BitmapImage(new Uri("pack://application:,,,/iModSCCredenciamento;component/Resources/Veiculo.png", UriKind.Absolute)); _Motorista = Conversores.BitmapImageToBitmap(_img1); _cardholder.SetCustomFieldAsync("Motorista", _Motorista); } _cardholder.SetCustomFieldAsync("Colaborador (ID)", colaboradorCredencial.ColaboradorID); _cardholder.SetCustomFieldAsync("Apelido", colaboradorCredencial.ColaboradorApelido.Trim()); _cardholder.SetCustomFieldAsync("CPF", colaboradorCredencial.CPF.Trim()); _cardholder.SetCustomFieldAsync("Empresa", colaboradorCredencial.EmpresaNome.Trim()); _cardholder.SetCustomFieldAsync("Nome Fantasia", colaboradorCredencial.EmpresaApelido.Trim()); _cardholder.SetCustomFieldAsync("CNPJ", colaboradorCredencial.CNPJ.Trim()); _cardholder.SetCustomFieldAsync("Cargo", colaboradorCredencial.Cargo.Trim()); _cardholder.InsertIntoPartition(Partition.DefaultPartitionGuid); if (_cardholder.Groups.Count == 0 && _cardholderGroup != null) { _cardholder.Groups.Add(_cardholderGroup.Guid); } _cardholder.FirstName = _firstname.Trim(); _cardholder.LastName = _lastname.Trim(); _sdk.TransactionManager.CommitTransaction(); colaboradorCredencial.CardHolderGuid = _cardholder.Guid; } catch (Exception ex) { if (_sdk.TransactionManager.IsTransactionActive) { _sdk.TransactionManager.RollbackTransaction(); } return(false); } //// Credencial /// if (colaboradorCredencial.FormatIDGUID != "00000000-0000-0000-0000-000000000000" && colaboradorCredencial.NumeroCredencial != "") { try { DateTime _DataValidade; if (colaboradorCredencial.Validade != null) { _DataValidade = (DateTime)colaboradorCredencial.Validade; _DataValidade = _DataValidade.AddSeconds(86399); _DataValidade = _DataValidade <= DateTime.Now ? DateTime.Now.AddSeconds(3) : _DataValidade; } else { _DataValidade = DateTime.Now.AddSeconds(86399); } Credential _credencial; // = _sdk.GetEntity((Guid)colaboradorCredencial.CredencialGuid) as Credential; _credencial = BuscarCredencial(colaboradorCredencial.NumeroCredencial, colaboradorCredencial.FormatIDGUID, colaboradorCredencial.FC); if (_credencial != null) { if (_credencial.CardholderGuid != _cardholder.Guid) { //MessageBox.Show("Esta credencial pertence a outro usuário e não pode ser vinculada!", "Erro ao Vincular", MessageBoxButtons.OK,MessageBoxIcon.Exclamation); Global.PopupBox("Esta credencial já está associada a um usuário e não pode ser vinculada!", 4); return(false); } else // atualizar credencial { if (colaboradorCredencial.LayoutCrachaGUID != "") { //BadgeTemplate _BadgeTemplate = _sdk.GetEntity(new Guid(colaboradorCredencial.LayoutCrachaGUID)) as BadgeTemplate; //_credencial.BadgeTemplate = _BadgeTemplate.Guid; _credencial.ActivationMode = new SpecificActivationPeriod(DateTime.Now, _DataValidade); _credencial.SetCustomFieldAsync("Privilégio #1", colaboradorCredencial.PrivilegioDescricao1); _credencial.SetCustomFieldAsync("Privilégio #2", colaboradorCredencial.PrivilegioDescricao2); } } } else //criar nova credencial { _sdk.TransactionManager.CreateTransaction(); _credencial = _sdk.CreateEntity("Credencial de " + _firstname, EntityType.Credential) as Credential; _credencial.Name = colaboradorCredencial.NumeroCredencial.Trim() + " - " + _firstname + " " + _lastname; _credencial.ActivationMode = new SpecificActivationPeriod(DateTime.Now, _DataValidade); if (!colaboradorCredencial.Ativa) { _credencial.State = CredentialState.Inactive; } //_credencial.SetCustomFieldAsync("Privilégio", colaboradorCredencial.PrivilegioDescricao1); if (colaboradorCredencial.LayoutCrachaGUID != "") { //BadgeTemplate _BadgeTemplate = _sdk.GetEntity(new Guid(colaboradorCredencial.LayoutCrachaGUID)) as BadgeTemplate; //_credencial.BadgeTemplate = _BadgeTemplate.Guid; } //0 N/D 00000000-0000-0000-0000-000000000000 //1 Standard - 26 bits 00000000-0000-0000-0000-000000000200 //2 H10302 - 37 bits 00000000-0000-0000-0000-000000000400 //3 H10304 - 37 bits 00000000-0000-0000-0000-000000000500 //4 H10306 - 34 bits 00000000-0000-0000-0000-000000000300 //5 HID Corporate 1000 - 35 bits 00000000-0000-0000-0000-000000000600 //6 HID Corporate 1000 - 48 bits 00000000-0000-0000-0000-000000000800 //7 CSN 00000000-0000-0000-0000-000000000700 switch (colaboradorCredencial.FormatIDGUID) { case "00000000-0000-0000-0000-000000000200": _credencial.Format = new WiegandStandardCredentialFormat(Convert.ToInt32(colaboradorCredencial.FC), Convert.ToInt32(colaboradorCredencial.NumeroCredencial.Trim())); break; case "00000000-0000-0000-0000-000000000400": _credencial.Format = new WiegandH10302CredentialFormat(Convert.ToInt32(colaboradorCredencial.NumeroCredencial.Trim())); break; case "00000000-0000-0000-0000-000000000500": _credencial.Format = new WiegandH10304CredentialFormat(Convert.ToInt32(colaboradorCredencial.FC), Convert.ToInt32(colaboradorCredencial.NumeroCredencial.Trim())); break; case "00000000-0000-0000-0000-000000000300": _credencial.Format = new WiegandH10306CredentialFormat(Convert.ToInt32(colaboradorCredencial.FC), Convert.ToInt32(colaboradorCredencial.NumeroCredencial.Trim())); break; case "00000000-0000-0000-0000-000000000600": _credencial.Format = new WiegandCorporate1000CredentialFormat(Convert.ToInt32(colaboradorCredencial.FC), Convert.ToInt32(colaboradorCredencial.NumeroCredencial.Trim())); break; case "00000000-0000-0000-0000-000000000800": _credencial.Format = new Wiegand48BitCorporate1000CredentialFormat(Convert.ToInt32(colaboradorCredencial.FC), Convert.ToInt32(colaboradorCredencial.NumeroCredencial.Trim())); break; case "00000000-0000-0000-0000-000000000700": long _cardnumber = long.Parse(colaboradorCredencial.NumeroCredencial.Trim()); _credencial.Format = new WiegandCsn32CredentialFormat(_cardnumber); break; } //if (_credencial.Format != null) //{ _credencial.InsertIntoPartition(Partition.DefaultPartitionGuid); _cardholder.Credentials.Add(_credencial); //} _sdk.TransactionManager.CommitTransaction(); } colaboradorCredencial.CredencialGuid = _credencial.Guid; } catch (Exception ex) { if (_sdk.TransactionManager.IsTransactionActive) { _sdk.TransactionManager.RollbackTransaction(); } return(false); } } return(true); } catch (Exception ex) { return(false); } }