Array
(
)

atualizar variável no Timer do wcf

Eric Miranda
   - 23 jul 2013

Boa tarde galera, sou iniciante em desenvolvimento .net e gostaria de pedir a ajuda para vcs em uma questão.
Depois de pesquisar e bater muita cabeça, consegui montar meu wcf. Nele tenho um processo que consome dados de uma base e joga em outra tabela de outra base.. Isso eu faço através de um timer no wcf. Está funcionando perfeitamente, só queria que enquanto este processo estivesse rodando eu retornasse null se alguem chamasse meu método de consumo desta tabela, uma vez que mesma está sendo populada.. essa atualizacao da variável não funciona, já pesquisei muito e não achei nada a respeito..
segue o codigo abaixo.
#Código
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using System.Timers;
using WcfServiceKraft.BusinnesController;
using WcfServiceKraft.Controller;
using WcfServiceKraft.Functions;
namespace WcfServiceKraft
{
public class KraftMobileService : IKraftMobileService
{
private Timer aTimer;
public static bool atualizando;
public KraftMobileService()
{
aTimer = new Timer(10000);
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Interval = 3600000;
aTimer.AutoReset = true;
aTimer.Start();
}
private void OnTimedEvent(object source, ElapsedEventArgs e)
{
atualizando = true;
ItemkraftBC.insetItemListKraft();
atualizando = false;
}
public List<Item> ClientList()
{
//isso que não funciona..
if (atualizando == true)
{
return null;
}
List<Item> listaItens;
try
{
listaItens = ItemMobileBC.ReturnItemListMobile();
}
catch (Exception)
{
return null;
}
if (listaItens.Count > 0)
return listaItens;
else
return null;
}
public ClienteLogin Login(string emailAddress, string password)
{
ClienteLogin Cliente;
try
{
Cliente = ClienteLoginBC.ReturnClienteLoginClass(emailAddress);
}
catch (Exception)
{
return null;
}
if (Cliente.SituacaoLogin != "")
{
if (Funcoes.validaSenha(Cliente.Senha.ToString(), password) == true)
{
return Cliente;
}
else
{
Cliente.ClienteID = int.MinValue;
Cliente.Nome = string.Empty;
Cliente.Cpf = string.Empty;
Cliente.RG = string.Empty;
Cliente.Login = string.Empty;
Cliente.Senha = string.Empty;
Cliente.Email = string.Empty;
Cliente.Sexo = string.Empty;
Cliente.NewsLetter = false;
Cliente.SituacaoLogin = "senha";
return Cliente;
}
}
else
{
Cliente.ClienteID = int.MinValue;
Cliente.Nome = string.Empty;
Cliente.Cpf = string.Empty;
Cliente.RG = string.Empty;
Cliente.Login = string.Empty;
Cliente.Senha = string.Empty;
Cliente.Email = string.Empty;
Cliente.Sexo = string.Empty;
Cliente.NewsLetter = false;
Cliente.SituacaoLogin = "email";
return Cliente;
}
}

public string UserRegister(Cliente p_cliente)
{
ClienteBC cliente = new ClienteBC();
try
{
return cliente.InsertClient(p_cliente);
}
catch (Exception)
{
return "Ocorreram erros durante o processo!";
}
}
}
}