// <summary>
 /// SaveNewClaim to save the claim input in the backing store as xml
 /// Returns: true/false to indicate whether the claim added or not 
 /// </summary>
 private bool SaveNewClaim(MitchellClaimType newClaim)
 {
     // Set xml namespace
     XNamespace cla = "http://www.mitchell.com/examples/claim";
     bool added = true;
     try
     {
         // Load the backing store
         XDocument claimStore = XDocument.Load(HttpContext.Current.Server.MapPath(strXMLClaimStore));
         // Create a new MitchellClaim xml element
         XElement newClaimXml = new XElement(cla + "MitchellClaim",
                                        new XElement(cla + "ClaimNumber", newClaim.ClaimNumber),
                                        new XElement(cla + "ClaimantFirstName", newClaim.ClaimantFirstName),
                                        new XElement(cla + "ClaimantLastName", newClaim.ClaimantLastName),
                                        new XElement(cla + "Status", newClaim.Status),
                                        new XElement(cla + "LossDate", newClaim.LossDate),
                                        new XElement(cla + "LossInfo",
                                            new XElement(cla + "CauseOfLoss", newClaim.LossInfo.CauseOfLoss),
                                            new XElement(cla + "ReportedDate", newClaim.LossInfo.ReportedDate),
                                            new XElement(cla + "LossDescription", newClaim.LossInfo.LossDescription)),
                                        new XElement(cla + "AssignedAdjusterID", newClaim.AssignedAdjusterID),
                                        new XElement(cla + "Vehicles",
                                            new XElement(cla + "VehicleDetails",
                                                new XElement(cla + "ModelYear", newClaim.Vehicles[0].ModelYear),
                                                new XElement(cla + "MakeDescription", newClaim.Vehicles[0].MakeDescription),
                                                new XElement(cla + "ModelDescription", newClaim.Vehicles[0].ModelDescription),
                                                new XElement(cla + "EngineDescription", newClaim.Vehicles[0].EngineDescription),
                                                new XElement(cla + "ExteriorColor", newClaim.Vehicles[0].ExteriorColor),
                                                new XElement(cla + "Vin", newClaim.Vehicles[0].Vin),
                                                new XElement(cla + "LicPlate", newClaim.Vehicles[0].LicPlate),
                                                new XElement(cla + "LicPlateState", newClaim.Vehicles[0].LicPlateState),
                                                new XElement(cla + "LicPlateExpDate", newClaim.Vehicles[0].LicPlateExpDate),
                                                new XElement(cla + "DamageDescription", newClaim.Vehicles[0].DamageDescription),
                                                new XElement(cla + "Mileage", newClaim.Vehicles[0].Mileage)))
                                    );
         // Add the new MitchellClaim element to the backing store
         claimStore.Element(cla + "Claims").Add(newClaimXml);
         // Save the backing store
         claimStore.Save(HttpContext.Current.Server.MapPath(strXMLClaimStore));
     }
     catch
     {
         added = false;
     }
     return added;
 }
 // <summary>
 /// ReadClaimWithoutRoot to read/parse the new claim provided by the user
 /// Returns: MitchellClaimType 
 /// </summary>
 private MitchellClaimType ReadClaimWithoutRoot(XDocument claimDocument)
 {
     // find claim in xml file
     MitchellClaimType claimResult = new MitchellClaimType();
     try
     {
         // Set namespace
         XNamespace cla = "http://www.mitchell.com/examples/claim";
         claimResult = claimDocument//.Element("Claims")
                 .Descendants(cla + "MitchellClaim")
                     .Select(claim => new MitchellClaimType
                     {
                         ClaimNumber = claim.Element(cla + "ClaimNumber").Value,
                         ClaimantFirstName = claim.Element(cla + "ClaimantFirstName").Value,
                         ClaimantLastName = claim.Element(cla + "ClaimantLastName").Value,
                         Status = (StatusCode)Enum.Parse(typeof(StatusCode), claim.Element(cla + "Status").Value),
                         LossDate = Convert.ToDateTime(claim.Element(cla + "LossDate").Value),
                         LossInfo = (LossInfoType)claim.Descendants(cla + "LossInfo").Select(lossInfo => new LossInfoType
                         {
                             CauseOfLoss = (CauseOfLossCode)Enum.Parse(typeof(CauseOfLossCode), lossInfo.Element(cla + "CauseOfLoss").Value),
                             ReportedDate = Convert.ToDateTime(lossInfo.Element(cla + "ReportedDate").Value),
                             LossDescription = lossInfo.Element(cla + "LossDescription").Value
                         }).First(),
                         AssignedAdjusterID = Convert.ToInt64(claim.Element(cla + "AssignedAdjusterID").Value)
                         ,
                         Vehicles = claim.Element(cla + "Vehicles").Descendants(cla + "VehicleDetails")
                           .Select(vehicle => new VehicleInfoType
                           {
                               ModelYear = Convert.ToInt16(vehicle.Element(cla + "ModelYear").Value),
                               MakeDescription = vehicle.Element(cla + "MakeDescription").Value,
                               ModelDescription = vehicle.Element(cla + "ModelDescription").Value,
                               EngineDescription = vehicle.Element(cla + "EngineDescription").Value,
                               ExteriorColor = vehicle.Element(cla + "ExteriorColor").Value,
                               Vin = vehicle.Element(cla + "Vin").Value,
                               LicPlate = vehicle.Element(cla + "LicPlate").Value,
                               LicPlateState = vehicle.Element(cla + "LicPlateState").Value,
                               LicPlateExpDate = Convert.ToDateTime(vehicle.Element(cla + "LicPlateExpDate").Value),
                               DamageDescription = vehicle.Element(cla + "DamageDescription").Value,
                               Mileage = Convert.ToInt16(vehicle.Element(cla + "Mileage").Value)
                           }).ToList<VehicleInfoType>()
                     }).First();
         return claimResult;
     }
     catch
     {
         claimResult = null;
         return null;
     }
 }