atualizar variável no Timer do wcf

23/07/2013

0

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.

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!";
            }

        }
    }
}
Eric Miranda

Eric Miranda

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar