public ActionResult ExportAll () { var model = new XML { XMLFamilyGroup = new List<XMLSystemFamily>() }; foreach(var fam in db.LsystemFamily.Where(x=>x.LsystemFamilyID!=62).ToList()) { var systemfamily = new XMLSystemFamily(); systemfamily.FamilyName = fam.FamilyName; systemfamily.SystemCount = fam.Lsystems.Count(); systemfamily.Systems = new List<XMLSystems>(); systemfamily.DescriptionDE = fam.DescriptionDE; systemfamily.DescriptionEN = fam.DescriptionEN; systemfamily.ModifiedOn = fam.ModifiedOn; foreach(var sys in fam.Lsystems) { var system = new XMLSystems(); system.SystemName = sys.LsystemName; system.MaterialNumber = sys.MaterialNumber; system.ModifiedOn = sys.ModifiedOn; system.DescriptionEN = sys.DescriptionEN; system.DescriptionDE = sys.DescriptionDE; system.Options = new List<XMLOptions>(); foreach(var op in sys.Options) { var opt = new XMLOptions(); opt.Option = op.OptionName; opt.TechnicalCharacteristic = op.TechnicalCharacteristic.TCName; opt.ModifiedOn = op.ModifiedOn; opt.DescriptionDE = op.DescriptionDE; opt.DescriptionEN = op.DescriptionEN; opt.OptionValues = new List<XMLOptionValues>(); foreach(var ov in op.OptionValues) { var opv = new XMLOptionValues(); opv.OptionValue = ov.OptionVal; opv.DescriptionDE= ov.DescriptionDE; opv.DescriptionEN = ov.DescriptionEN; opv.ModifiedOn = ov.ModifiedOn; opv.SetValues = new List<XMLSetValues>(); foreach(var sv in ov.SetValue) { var set = new XMLSetValues(); set.Property = sv.TcSet.SetName; set.Status = sv.TcSet.DataStatus.ToString(); set.Unit = sv.TcSet.PhysicalUnit; set.ModifiedOn = sv.ModifiedOn; set.Value = sv.Value; opv.SetValues.Add(set); } opt.OptionValues.Add(opv); } system.Options.Add(opt); } systemfamily.Systems.Add(system); } model.XMLFamilyGroup.Add(systemfamily); } var serializer = new XmlSerializer(typeof(XML)); var path = String.Format("{0}xmlfiles", AppDomain.CurrentDomain.BaseDirectory); FileStream fs = new FileStream("\\\\FE0VMC0643\\TeDaLS\\xmlfiles\\sample.xml", FileMode.OpenOrCreate); fs.Close(); StreamWriter writer = new StreamWriter(fs.Name); serializer.Serialize(writer.BaseStream, model); writer.Close(); //System.Web.HttpResponse response = System.Web.HttpContext.Current.Response; //response.StatusCode = 200; //response.AddHeader("content-disposition", "attachment; filename=" + fs.Name); //response.AddHeader("Content-Transfer-Encoding", "binary"); //response.AddHeader("Content-Length", _Buffer.Length.ToString()); // response.ContentType = "application-download"; //response.TransmitFile(fs.Name); string filename = "ExportAll _ " + DateTime.Now + ".xml"; return File(fs.Name, "text/xml", filename); }
//public ActionResult XmlExport() //{ // var model = db.LsystemFamily.ToList(); // return View(model); //} //Export a particular system family public ActionResult XmlExport(int id) { // var model = new LsystemFamily(); // model = db.LsystemFamily.FirstOrDefault(x => x.LsystemCount == 0); //// model.Lsystems = db.Lsystem.Where(x => x.LsystemFamilyID == model.LsystemFamilyID); // var serializer = new XmlSerializer(typeof(export_test)); // //XmlSerializer serializer = new XmlSerializer(p.GetType()); // StreamWriter writer = new StreamWriter(@"C:\Users\vav9sw\Documents\Visual Studio 2013\Projects\TEDALS-Ver01.4\xml\newxml.xml"); // serializer.Serialize(writer.BaseStream, model); if (db.UserRight.FirstOrDefault(x => x.UserCode == User.Identity.Name).IsExporter || db.UserRight.FirstOrDefault(x => x.UserCode == User.Identity.Name).IsAdmin) { try { //if (id == null) //{ // ViewBag.Error = "A null parameter was passed to the function"; // return View("Error"); //} var model = new XMLSystemFamily(); var lsystemfamily = db.LsystemFamily.FirstOrDefault(x => x.LsystemFamilyID == id); model.FamilyName = lsystemfamily.FamilyName; model.SystemCount = lsystemfamily.Lsystems.Count(); model.DescriptionDE = lsystemfamily.DescriptionDE; model.DescriptionEN = lsystemfamily.DescriptionEN; model.ModifiedOn = lsystemfamily.ModifiedOn; model.Systems = new List<XMLSystems>(); foreach (var item in lsystemfamily.Lsystems) { XMLSystems sys = new XMLSystems { SystemName = item.LsystemName, MaterialNumber = item.MaterialNumber, DescriptionDE = item.DescriptionDE, DescriptionEN = item.DescriptionEN, ModifiedOn = item.ModifiedOn, Options = new List<XMLOptions>() }; foreach (var op in item.Options) { XMLOptions option = new XMLOptions { Option = op.OptionName, TechnicalCharacteristic = op.TechnicalCharacteristic.TCName, ModifiedOn = op.ModifiedOn, DescriptionDE = op.DescriptionDE, DescriptionEN = op.DescriptionEN, OptionValues = new List<XMLOptionValues>() }; foreach (var ov in op.OptionValues) { XMLOptionValues optionvalues = new XMLOptionValues { OptionValue = ov.OptionVal, ModifiedOn = ov.ModifiedOn, DescriptionDE = ov.DescriptionDE, DescriptionEN = ov.DescriptionEN, SetValues = new List<XMLSetValues>() }; foreach (var setvalue in ov.SetValue) { XMLSetValues setvalues = new XMLSetValues { ModifiedOn = setvalue.ModifiedOn, Property = setvalue.TcSet.SetName, Value = setvalue.Value, Unit = setvalue.TcSet.PhysicalUnit, Status = setvalue.TcSet.DataStatus.ToString() }; optionvalues.SetValues.Add(setvalues); } option.OptionValues.Add(optionvalues); } sys.Options.Add(option); } model.Systems.Add(sys); } var serializer = new XmlSerializer(typeof(XMLSystemFamily)); var path = String.Format("{0}xmlfiles", AppDomain.CurrentDomain.BaseDirectory); FileStream fs = new FileStream("\\\\FE0VMC0643\\TeDaLS\\xmlfiles\\sample.xml", FileMode.OpenOrCreate); fs.Close(); StreamWriter writer = new StreamWriter(fs.Name); serializer.Serialize(writer.BaseStream, model); writer.Close(); //System.Web.HttpResponse response = System.Web.HttpContext.Current.Response; //response.StatusCode = 200; //response.AddHeader("content-disposition", "attachment; filename=" + fs.Name); //response.AddHeader("Content-Transfer-Encoding", "binary"); //response.AddHeader("Content-Length", _Buffer.Length.ToString()); // response.ContentType = "application-download"; //response.TransmitFile(fs.Name); string filename = model.FamilyName + "_" + DateTime.Now + ".xml"; return File(fs.Name, "text/xml", filename); } catch(Exception e) { ViewBag.Error = e.Message; return View("Error"); } } else return View("AuthorizationError"); }