public WindowsService(string serviceName=null, Resource server= null)
    {
        Name = serviceName;
        ServiceName = serviceName;
        Server = server;
 
    }
        private void ProcessTask(Task<State> t, Resource resource, StringBuilder errMsgs)
        {
            switch (t.Status)
            {

                case TaskStatus.RanToCompletion:
                    State state = t.Result;
                    Print(t.Result, TaskStatus.RanToCompletion.ToString());
                    if (t.Result.Status != HttpStatusCode.OK.ToString() && !_states.Contains(t.Result))
                        _states.Add(t.Result);
                    else
                        RemoveStateFromCollection(t);
                    break;
                case TaskStatus.Canceled:
                    Print(resource, TaskStatus.Canceled.ToString().ToUpper());
                    break;
                case TaskStatus.Faulted:
                    Print(resource);
                    t.Exception.Flatten().InnerExceptions.ToList().ForEach(exception =>
                    {
                        errMsgs.AppendLine(exception.Message + " - " + exception.InnerException);
                        st.Add(new State() { Url = resource.Name, Status = errMsgs.ToString() });
                    });

                    break;
                default:
                    break;
            }
        }
       public ResourcePoller(Resource res, int pollingIterval)
       {
            ResourceFactory resFactory = new ResourceFactory();
            PollingInterval = Math.Abs(pollingIterval);
            Resource = res;

       }
        public static void Print(Resource resource, string taskStatus)
        {

            Console.Write("****\n{0} Polling:{1}-{2} ", taskStatus, resource.Name, resource.GetAbsoluteUri());
        }
 private static void Print(Resource resource, string taskStatus=null)
 {
     if (taskStatus == null)
         StateLogger.Print(resource, TaskStatus.Faulted.ToString().ToUpper());
     else
         StateLogger.Print(resource, taskStatus);
 }