public static WarrantyResultModel GetAssetHeader(string ServiceTag)
        {
            if (!String.IsNullOrEmpty(ServiceTag))
            {
                String URL        = String.Format("getassetwarranty/{0}?apikey=1b31b0bf-980d-49eb-b77b-2c135ceb6974", ServiceTag);
                string jsonResult = GetAsync(URL).Result;
                if (!String.IsNullOrEmpty(jsonResult))
                {
                    AssetWarrantyResponseModel assetWarrantyResponseModel = ConvertJsonToAssetWarrantyResponse(jsonResult);
                    if (assetWarrantyResponseModel.AssetHeader != null)
                    {
                        WarrantyResultModel        warrantyResultModel = new WarrantyResultModel();
                        WarrantyDetailModel        warrantyDetailModel = new WarrantyDetailModel();
                        List <WarrantyDetailModel> warrantyDetailList  = new List <WarrantyDetailModel>();
                        warrantyResultModel.ServiceTag = assetWarrantyResponseModel.AssetHeader.ServiceTag;
                        warrantyResultModel.Country    = assetWarrantyResponseModel.AssetHeader.CountryLookupCode;
                        warrantyResultModel.ShipDate   = assetWarrantyResponseModel.AssetHeader.ShipDate;
                        if (assetWarrantyResponseModel.AssetEntitlement != null)
                        {
                            foreach (var item in assetWarrantyResponseModel.AssetEntitlement)
                            {
                                warrantyDetailModel                  = new WarrantyDetailModel();
                                warrantyDetailModel.Service          = (item.ServiceLevelCode + " (" + item.ServiceLevelDescription + ")");
                                warrantyDetailModel.ServiceLevelCode = item.ServiceLevelCode;
                                warrantyDetailModel.EntitlementType  = item.EntitlementType;
                                warrantyDetailModel.StartDate        = item.StartDate;
                                warrantyDetailModel.ExpirationDate   = item.EndDate;
                                warrantyDetailList.Add(warrantyDetailModel);
                            }
                            //Xử lý danh sách warrantyDetail
                            var WarrantyDetailResult = GroupWarrantyDetail(warrantyDetailList);
                            warrantyResultModel.WarrantyDetails = WarrantyDetailResult.OrderBy(x => x.ExpirationDate).OrderBy(x => x.Priority).ToList();
                            StringBuilder sb = new StringBuilder();
                            sb.AppendLine("Thông tin bảo hành của máy có Service tag " + warrantyResultModel.ServiceTag + ":" + "<br/><br/>");
                            sb.AppendLine("- Model: " + assetWarrantyResponseModel.AssetHeader.MachineDescription + "<br/>");
                            sb.AppendLine("- Ngày ship: " + assetWarrantyResponseModel.AssetHeader.ShipDate.ToString("dd/MM/yyyy") + "<br/>");
                            sb.AppendLine("- Quốc gia: " + assetWarrantyResponseModel.AssetHeader.CountryLookupCode + "<br/>");
                            sb.AppendLine("- Ngày hết hạn BH (" + warrantyResultModel.WarrantyDetails[0].ServiceLevelCode + "): " + warrantyResultModel.WarrantyDetails[0].ExpirationDate.ToString("dd/MM/yyyy") + "<br/>");

                            //sb.AppendLine("Service Tag: " + warrantyResultModel.ServiceTag + "<br/>");
                            //sb.AppendLine("Thời hạn bảo hành: " + warrantyResultModel.WarrantyDetails[0].ExpirationDate.ToString("dd MMM yyyy") + "<br/>");
                            //sb.AppendLine("Thông tin chi tiết: <br/>");
                            //foreach (var obj in warrantyResultModel.WarrantyDetails)
                            //{
                            //    sb.AppendLine(obj.Service + "<br/>");
                            //    sb.AppendLine("Sta: "+obj.StartDate.ToString("dd MMM yyyy") + " ,Exp: "+obj.ExpirationDate.ToString("dd MMM yyyy")+"<br/>");
                            //}

                            warrantyResultModel.TextWarranty = sb.ToString();
                            return(warrantyResultModel);
                        }
                    }
                }
            }
            return(null);
        }
        private static AssetWarrantyResponseModel ConvertJsonToAssetWarrantyResponse(string Json)
        {
            AssetWarrantyResponseModel   ResultModel               = new AssetWarrantyResponseModel();
            AssetHeaderModel             assetHeader               = new AssetHeaderModel();
            ProductHeaderModel           productHeader             = new ProductHeaderModel();
            AssetEntitlementModel        assetEntitlement          = new AssetEntitlementModel();
            List <AssetEntitlementModel> AssetEntitlementModelList = new List <AssetEntitlementModel>();

            JObject jObject           = JObject.Parse(Json);
            JToken  jAssetEntitlement = jObject.SelectToken("AssetWarrantyResponse[0].AssetEntitlementData");
            JToken  jAssetHeader      = jObject.SelectToken("AssetWarrantyResponse[0].AssetHeaderData");
            JToken  jProductHeader    = jObject.SelectToken("AssetWarrantyResponse[0].ProductHeaderData");

            if (jAssetHeader != null && jAssetHeader.HasValues)
            {
                assetHeader.BUILD              = (string)jAssetHeader["BUID"];
                assetHeader.ServiceTag         = (string)jAssetHeader["ServiceTag"];
                assetHeader.ShipDate           = (DateTime)jAssetHeader["ShipDate"];
                assetHeader.CountryLookupCode  = (string)jAssetHeader["CountryLookupCode"];
                assetHeader.LocalChannel       = (string)jAssetHeader["LocalChannel"];
                assetHeader.CustomerNumber     = (string)jAssetHeader["CustomerNumber"];
                assetHeader.ItemClassCode      = (string)jAssetHeader["ItemClassCode"];
                assetHeader.IsDuplicate        = (bool)jAssetHeader["IsDuplicate"];
                assetHeader.MachineDescription = (string)jAssetHeader["MachineDescription"];
                assetHeader.OrderNumber        = (string)jAssetHeader["OrderNumber"];
                assetHeader.ParentServiceTag   = (string)jAssetHeader["ParentServiceTag"];
                assetHeader.CompanyNumber      = (string)jAssetHeader["CompanyNumber"];
                ResultModel.AssetHeader        = assetHeader;
            }

            if (jAssetHeader != null && jProductHeader.HasValues)
            {
                productHeader.SystemDescription = (string)jProductHeader["SystemDescription"];
                productHeader.ProductId         = (string)jProductHeader["ProductId"];
                productHeader.ProductFamily     = (string)jProductHeader["ProductFamily"];
                productHeader.LOB             = (string)jProductHeader["LOB"];
                productHeader.LOBFriendlyName = (string)jProductHeader["LOBFriendlyName"];
                ResultModel.ProductHeader     = productHeader;
            }

            if (jAssetHeader != null && jAssetEntitlement.HasValues)
            {
                for (int i = 0; i < jAssetEntitlement.Count(); i++)
                {
                    string _quantityJtoken        = "AssetWarrantyResponse[0].AssetEntitlementData[" + i + "]";
                    JToken jAssetEntitlementChild = jObject.SelectToken(_quantityJtoken);
                    assetEntitlement           = new AssetEntitlementModel();
                    assetEntitlement.StartDate = (DateTime)jAssetEntitlementChild["StartDate"];
                    assetEntitlement.EndDate   = (DateTime)jAssetEntitlementChild["EndDate"];
                    assetEntitlement.ServiceLevelDescription = (string)jAssetEntitlementChild["ServiceLevelDescription"];
                    assetEntitlement.ServiceLevelCode        = (string)jAssetEntitlementChild["ServiceLevelCode"];
                    assetEntitlement.ServiceLevelGroup       = (string)jAssetEntitlementChild["ServiceLevelGroup"];
                    assetEntitlement.EntitlementType         = (string)jAssetEntitlementChild["EntitlementType"];
                    assetEntitlement.ServiceProvider         = (string)jAssetEntitlementChild["ServiceProvider"];
                    assetEntitlement.ItemNumber = (string)jAssetEntitlementChild["ItemNumber"];
                    AssetEntitlementModelList.Add(assetEntitlement);
                }
                ResultModel.AssetEntitlement = AssetEntitlementModelList;
            }
            return(ResultModel);
        }