Beispiel #1
0
        /// <summary>
        /// convert a TaskResultStatus enum to its string representation
        /// </summary>
        /// <param name="status">target status</param>
        /// <returns>string representation of a checklist status enum</returns>
        public static String GetDescription(this TaskResultStatus status)
        {
            FieldInfo            field     = status.GetType().GetField(status.ToString());
            DescriptionAttribute attribute = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute;

            return(attribute == null?status.ToString() : attribute.Description);
        }
        /// <summary>
        /// Send the test result to server
        /// </summary>
        /// <param name="serviceVisitId"></param>
        /// <param name="serviceVisitItemNumber"></param>
        /// <param name="status">status of the test</param>
        /// <param name="checklists">list of check items</param>
        /// <returns></returns>
        public async Task <bool> SendResult(int serviceVisitId, int serviceVisitItemNumber, TaskResultStatus status, List <CheckItemViewModel> checklists)
        {
            String     url     = Configuration.baseURL + "/tasks/" + serviceVisitItemNumber + "/SendResult";
            String     user    = CrossSecureStorage.Current.GetValue("UserName");
            TaskResult result  = new TaskResult(status, DateTime.Now, user, serviceVisitItemNumber, checklists);
            var        json    = JsonConvert.SerializeObject(result);
            var        content = new StringContent(json, Encoding.UTF8, "application/json");

            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);

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

                    if (respond.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        return(true);
                    }
                    else
                    {
                        Console.Out.WriteLine("Send report failed from TaskService.cs. Http returned: " + respond.StatusCode);
                        return(false);
                    }
                }
                else
                {
                    foreach (CheckItemViewModel checkItemViewModel in checklists)
                    {
                        CheckItem       checkItem       = new CheckItem(checkItemViewModel);
                        CheckItemDBInfo checkItemDBInfo = await App.CheckItemDatabase.GetChecklistAsync(serviceVisitItemNumber, checkItem.Id);

                        checkItemDBInfo.SendTotalResultFlag = true;
                        checkItemDBInfo.totalTestResult     = status.ToString();
                        checkItemDBInfo.ServiceVisitId      = serviceVisitId;
                        var DBresult = App.CheckItemDatabase.SaveCheckListInfoAsync(checkItemDBInfo);
                    }
                    return(true);
                }
            }
            catch (Exception e)
            {
                Console.Out.WriteLine("Send report failed from TaskService.cs. Error message: " + e.Message);
                return(false);
            }
        }