public void SimulateRoute()
 {
     //Shows loading panel
     IsLoading = true;
     try
     {
         if (!ViewSettings.CanShowFilterDate())
         {
             RouteSimulators.Clear();
             var listByXml = UnitOfWork.GetManifestDetailByXML(GetXmlOfSelectedManifests());
             if (0 >= listByXml.Count)
             {
                 return;
             }
             ReadXmlAsync(listByXml[0]);
         }
         else
         {
             RouteSimulators.Clear();
             var listInputByXml = UnitOfWork.GetManifestDetailByListId(ListManifest);
             if (0 >= listInputByXml.Count)
             {
                 return;
             }
             ReadXmlAsync(listInputByXml[0]);
         }
     }
     catch (Exception ex)
     {
         MessageBoxService.ShowMessage(GetStringValue(Next.Enums.Enums.MessageError.OperationError) + ex.Message, ex.Message,
                                       MessageButton.OK, MessageIcon.Error);
         IsLoading = false;
     }
 }
        public XElement GetXmlOfSelectedManifests()
        {
            IsLoading = true;
            RouteSimulators.Clear();

            XElement xml = new XElement("DATA", SelectedManifests.Select(i => new XElement("MANIFEST",
                                                                                           new XElement("ID", i.manifestId),
                                                                                           new XElement("EXTERNAL_MANIFEST_ID", i.externalManifestId),
                                                                                           new XElement("IS_EXTERNAL", i.isExternal)
                                                                                           )));

            return(xml);
        }
        public async Task ReadXmlAsync(ListManifestByVehicleXmlResource element)
        {
            XDocument xml = XDocument.Parse(element.resultXML.ToString());

            foreach (var item in xml.Descendants("Vehicle"))
            {
                var response = item;
                var attr     = response.Attribute("Id");
                List <DetailManifestsByXMLResource> listByXmlDetail = new List <DetailManifestsByXMLResource>();
                List <RouteSimulatorDetail>         contentDetail   = new List <RouteSimulatorDetail>();

                foreach (var item2 in response.Elements("Manifest"))
                {
                    DetailManifestsByXMLResource detailXmlByVehicle = new DetailManifestsByXMLResource()
                    {
                        Address            = item2.Element("Address").Value,
                        ClientCode         = item2.Element("ClientCode").Value,
                        ClientName         = item2.Element("ClientName").Value,
                        ExternalManifestId = Convert.ToInt32(item2.Element("ExternalManifestId").Value),
                        Id                    = Convert.ToInt32(item2.Element("id").Value),
                        Latitude              = decimal.Parse(item2.Element("Latitude").Value),
                        Longitude             = decimal.Parse(item2.Element("Longitude").Value),
                        ManifestId            = Convert.ToInt32(item2.Element("ManifestId").Value),
                        Order                 = item2.Element("Order").Value,
                        OrderCost             = Convert.ToDecimal(item2.Element("OrderCost").Value),
                        OrderPrice            = Convert.ToDecimal(item2.Element("OrderPrice").Value),
                        TotalDistributionCost = Convert.ToDecimal(item2.Element("TotalDistributionCost").Value),
                        TotalVolume           = Convert.ToDecimal(item2.Element("TotalVolume").Value),
                        TotalWeight           = Convert.ToDecimal(item2.Element("TotalWeight").Value),
                        VehicleId             = Convert.ToInt32(item2.Element("VehicleId").Value),
                    };

                    listByXmlDetail.Add(detailXmlByVehicle);
                }

                if (listByXmlDetail.Count > 0)
                {
                    contentDetail = await SimulateManifests(listByXmlDetail);

                    contentDetail.ForEach(x =>
                    {
                        RouteSimulators.Add(x);
                    });
                }
            }
        }
        //{
        //	    if (!ViewSettings.CanShowFilterDate())
        //              {
        //                  RouteSimulators.Clear();
        //                  XElement xml = new XElement("DATA", SelectedManifests.Select(i => new XElement("MANIFEST",
        //                  new XElement("ID", i.manifestId),
        //                  new XElement("EXTERNAL_MANIFEST_ID", i.externalManifestId),
        //                  new XElement("IS_EXTERNAL", i.isExternal)
        //                  )));
        //                  SimulatorDetails = UnitOfWork.GetManifestDetailByXML(xml);
        //                  SimulateManifests();
        //              }
        //              else
        //              {
        //                  SimulatorDetails = UnitOfWork.GetManifestDetailByListId(ListManifest);
        //                  SimulateManifests();
        //              }
        //}

        public void SaveAndCloseEntity()
        {
            try
            {
                if (RouteSimulators.Count <= 0)
                {
                    return;
                }

                Entity.CreatedDate      = DateTime.Now;
                Entity.QuantityDelivery = SelectedManifests.Count();
                Entity.QuantityManifest = RouteSimulators.Select(x => x.ManifestId).Distinct().Count();
                Entity.DistanceToTravel = RouteSimulators.Sum(x => x.DistanceToTravel).Value;
                Entity.QuantityVehicles = RouteSimulators.Select(x => x.VehicleId).Distinct().Count();
                base.SaveAndClose();
            }
            catch (Exception ex)
            {
                MessageBoxService.ShowMessage(GetStringValue(Next.Enums.Enums.MessageError.SaveError) + ex.Message,
                                              ex.Message, MessageButton.OK, MessageIcon.Error);
            }
        }