public async Task <bool> AddNewContractor(String newContractorName)
        {
            String     url           = Configuration.baseURL + "/contractors/addContractor";
            Contractor newContractor = new Contractor()
            {
                contractorName = newContractorName
            };
            var json = JsonConvert.SerializeObject(newContractor);

            var content = new StringContent(json, Encoding.UTF8, "application/json");

            var current = Connectivity.NetworkAccess;

            if (current == NetworkAccess.Internet)
            {
                //set token
                String token = CrossSecureStorage.Current.GetValue("Token");
                _httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);

                var respond = await _httpClient.PostAsync(url, content);

                if (respond.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    // update at local DB
                    await TaskDBHelper.UpdateContractor(newContractor);

                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                await TaskDBHelper.AddNewContractor(newContractor);

                return(true);
            }
        }
        /// <summary>
        /// This is used to get all the contractors
        /// </summary>
        /// <returns>a list of all contractors</returns>
        public async Task <List <Contractor> > GetAllContractorList()
        {
            String url = Configuration.baseURL + "/contractors/getAllContractors";

            try
            {
                var current = Connectivity.NetworkAccess;
                if (current == NetworkAccess.Internet)
                {
                    //set token
                    String token = CrossSecureStorage.Current.GetValue("Token");
                    _httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);

                    String json = await _httpClient.GetStringAsync(url);

                    List <Contractor> result = JsonConvert.DeserializeObject <List <Contractor> >(json);

                    // update local db
                    foreach (Contractor contractor in result)
                    {
                        await TaskDBHelper.UpdateContractor(contractor);
                    }

                    return(result);
                }
                else
                {
                    var contractorList = await TaskDBHelper.GetAllContractors();

                    return(contractorList);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return(null);
            }
        }
        public async Task <List <TaskClass> > GetTaskForServiceVisit(String serviceVisitID)
        {
            String url = Configuration.baseURL + "/tasks/" + serviceVisitID;

            try
            {
                //set token
                String token = CrossSecureStorage.Current.GetValue("Token");
                _httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);

                var current = Connectivity.NetworkAccess;
                if (current == NetworkAccess.Internet)
                {
                    String json = await _httpClient.GetStringAsync(url);

                    Console.WriteLine(json);
                    //return null;
                    var result = JsonConvert.DeserializeObject <List <TaskClass> >(json);

                    return(result);
                }
                else
                {
                    var taskList = await TaskDBHelper.GetAllTasks();

                    List <TaskClass> tasks = new List <TaskClass>(taskList);
                    Console.WriteLine(tasks.Count);
                    return(taskList);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Error in Task Service");
                Console.WriteLine(e.Message);
                return(null);
            }
        }