public static void Serialize(object obj, Stream stream, WritingFormat writingFormat = WritingFormat.InOneLine) { Type t = obj.GetType(); using (StgWriter writer = new StgTextWriter(stream, writingFormat)) { writer.WriteStgStart(); if (!t.IsValueType && t != typeof(string) && !t.IsArray) { writer.WriteObjectStart(t.Name); foreach (var item in t.GetProperties()) { if (item.PropertyType.IsArray) { writer.WriteArray(item.Name, (Array)item.GetValue(obj)); } else if (item.PropertyType == typeof(string)) { writer.WriteString(item.Name, (string)item.GetValue(obj)); } else { writer.WriteValueType(item.Name, (ValueType)item.GetValue(obj)); } } foreach (var item in t.GetFields()) { if (item.FieldType.IsArray) { writer.WriteArray(item.Name, (Array)item.GetValue(obj)); } else if (item.FieldType == typeof(string)) { writer.WriteString(item.Name, (string)item.GetValue(obj)); } else { writer.WriteValueType(item.Name, (ValueType)item.GetValue(obj)); } } writer.WriteObjectEnd(); } else if (t.IsValueType) { writer.WriteValueType(nameof(obj), (ValueType)obj); } else if (t.IsArray) { writer.WriteArray(nameof(obj), (Array)obj); } else { writer.WriteString(nameof(obj), (string)obj); } writer.WriteStgEnd(); } }
public static void SerializeObject(object obj, Stream stream, WritingFormat writingFormat) { if (stream != null) { StgSerializer.Serialize(obj, stream, writingFormat); } else { throw new NullReferenceException(); } }
//ctor public StgTextWriter(StreamWriter writer, WritingFormat writingFormat) { InnerWriter = writer; WritingFormat = writingFormat; }
//ctor public StgTextWriter(Stream stream, WritingFormat writingFormat) { InnerWriter = new StreamWriter(stream); WritingFormat = writingFormat; }
public ActionResult UploadEdit(string[] FormatTags, string[] Pseudonyms, HttpPostedFileBase file, FormCollection form, [Bind(Include = "ProfileID, Title, LikesOn," + "CommentsOn, CritiqueOn, DescriptionText")] Writing doc) { String FileExt = Path.GetExtension(file.FileName).ToUpper(); if (CheckExtEdit(FileExt)) { AccessPermission ap = new AccessPermission() { PublicAccess = form["PublicAccess"] != null ? true : false, FriendAccess = form["FriendAccess"] != null ? true : false, PublisherAccess = form["PublisherAccess"] != null ? true : false, MinorAccess = form["MinorAccess"] != null ? true : false }; db.AccessPermissions.Add(ap); db.SaveChanges(); if (!ModelState.IsValid) { Stream str = file.InputStream; BinaryReader Br = new BinaryReader(str); Byte[] FileData = Br.ReadBytes((Int32)str.Length); string html = string.Empty; string[] namestring = file.FileName.Split('.'); if (FileExt == ".PDF" || FileExt == "PDF") { SautinSoft.PdfFocus f = new SautinSoft.PdfFocus(); f.OpenPdf(FileData); if (f.PageCount > 0) { f.HtmlOptions.IncludeImageInHtml = true; f.HtmlOptions.Title = "Simple text"; html = f.ToHtml(); } } else if (FileExt == ".DOCX" || FileExt == "DOCX" || FileExt == ".DOC" || FileExt == "DOC") { html = ConvertToHtml(Path.GetFullPath(file.FileName)); } else { ViewBag.FileStatus = "Model Invalid"; return(View()); } Writing wr = new Writing() { ProfileID = Int32.Parse(form["ProfileID"]), AccessPermissionID = ap.AccessPermissionID, Title = form["Title"], AddDate = DateTime.Now, EditDate = null, LikesOn = form["LikesOn"] != null ? true : false, CommentsOn = form["CommentsOn"] != null ? true : false, CritiqueOn = form["CritiqueOn"] != null ? true : false, UsePseudonymsInAdditionToUsername = form["UsePseudonymsInAdditionToUsername"] != null ? true : false, DocType = ".HTML", DescriptionText = form["DescriptionText"], Document = Encoding.Unicode.GetBytes(html), WritingFileName = namestring[0] + ".html" }; db.Writings.Add(wr); db.SaveChanges(); int id = wr.WritingID; ap = db.AccessPermissions.Find(ap.AccessPermissionID); ap.WritingID = id; db.Entry(ap).State = EntityState.Modified; db.SaveChanges(); if (FormatTags != null) { foreach (var selection in FormatTags) { WritingFormat wf = new WritingFormat() { WritingID = id, FormatID = Int32.Parse(selection) }; db.WritingFormats.Add(wf); db.SaveChanges(); } } if (Pseudonyms != null) { foreach (var selection in Pseudonyms) { WritingPseudonym wp = new WritingPseudonym() { WritingID = id, PseudonymID = Int32.Parse(selection) }; db.WritingPseudonyms.Add(wp); db.SaveChanges(); } } return(RedirectToAction("Index", "Home", new { @id = id })); } else { ViewBag.FileStatus = "File Type Not valid: Valid file type for edit is currently .PDF"; return(View()); } } else { ViewBag.FileStatus = "Invalid file format."; return(View()); } }
public ActionResult Store(string[] FormatTags, string[] Pseudonyms, HttpPostedFileBase file, FormCollection form, [Bind(Include = "ProfileID, Title, LikesOn," + "CommentsOn, CritiqueOn, DescriptionText")] Writing doc) { String FileExt = Path.GetExtension(file.FileName).ToUpper(); if (CheckExt(FileExt)) { AccessPermission ap = new AccessPermission() { PublicAccess = form["PublicAccess"] != null ? true : false, FriendAccess = form["FriendAccess"] != null ? true : false, PublisherAccess = form["PublisherAccess"] != null ? true : false, MinorAccess = form["MinorAccess"] != null ? true : false }; db.AccessPermissions.Add(ap); db.SaveChanges(); if (!ModelState.IsValid) { Stream str = file.InputStream; BinaryReader Br = new BinaryReader(str); Byte[] FileData = Br.ReadBytes((Int32)str.Length); Writing wr = new Writing() { ProfileID = Int32.Parse(form["ProfileID"]), AccessPermissionID = ap.AccessPermissionID, Title = form["Title"], AddDate = DateTime.Now, EditDate = null, LikesOn = form["LikesOn"] != null ? true : false, CommentsOn = form["CommentsOn"] != null ? true : false, CritiqueOn = form["CritiqueOn"] != null ? true : false, UsePseudonymsInAdditionToUsername = form["UsePseudonymsInAdditionToUsername"] != null ? true : false, DocType = FileExt, DescriptionText = form["DescriptionText"], Document = FileData, WritingFileName = file.FileName }; db.Writings.Add(wr); db.SaveChanges(); int id = wr.WritingID; ap = db.AccessPermissions.Find(ap.AccessPermissionID); ap.WritingID = id; db.Entry(ap).State = EntityState.Modified; db.SaveChanges(); if (FormatTags != null) { foreach (var selection in FormatTags) { WritingFormat wf = new WritingFormat() { WritingID = id, FormatID = Int32.Parse(selection) }; db.WritingFormats.Add(wf); db.SaveChanges(); } } if (Pseudonyms != null) { foreach (var selection in Pseudonyms) { WritingPseudonym wp = new WritingPseudonym() { WritingID = id, PseudonymID = Int32.Parse(selection) }; db.WritingPseudonyms.Add(wp); db.SaveChanges(); } } return(RedirectToAction("Index", "Home", new { @id = id })); } else { ViewBag.FileStatus = "Model Invalid"; return(View()); } } else { ViewBag.FileStatus = "Invalid file format."; return(View()); } }