public string RegistraAcesso(string ChaveCliente, string ChaveLocal, string ChaveColaborador) { string retorno = "|X |"; var cliente = ClienteAcesso(ChaveCliente); if (cliente == null) { return(retorno); } var local = LocalAcesso(cliente, ChaveLocal); if (local == null) { return(retorno); } var colaborador = ColaboradorAcesso(cliente, ChaveColaborador); if (colaborador == null) { return(retorno); } var ultimoAcesso = cliente.Acessos.Where(a => a.Colaborador.Id == colaborador.Id && a.Local.Id == local.Id) .OrderByDescending(a => a.Data).Take(1).SingleOrDefault(); Acesso acesso = new Acesso(); acesso.Cliente = cliente; acesso.Colaborador = colaborador; acesso.Local = local; acesso.Data = DateTime.Now; acesso.AtualizaUltimoMovimento(ultimoAcesso); cliente.Acessos.Add(acesso); this.Update(cliente); return(acesso.RetornaAcesso()); }