internal static AnnotationModel Random(DocumentModel doc) { int maxTokensToTake = Math.Min(20, doc.Tokens.Count); var text = File.ReadAllText(System.Web.Hosting.HostingEnvironment.MapPath(@"~/App_Data/Placeholder2.txt")); var tokenCount = doc.Tokens.Count; var startIdx = rand.Next(tokenCount - maxTokensToTake); int toTake = rand.Next(maxTokensToTake); var quoted = string.Concat(doc.Tokens.Skip(startIdx).Take(toTake).Select(i => i.AsString)); var textLength = text.Length; int textStart = rand.Next(textLength); int textToTake = rand.Next(1000); var body = string.Format("`{0}`", quoted) + string.Concat(text.Skip(textStart).Take(Math.Min(textToTake, textLength - textStart))); var toReturn = new AnnotationModel("test", body, doc, isArchived:false); toReturn.Id = Guid.NewGuid(); return toReturn; }
internal static AnnotationModel FromDictionary(Dictionary<string, string> dict, DocumentModel doc) { bool isArchived = false; if (dict.ContainsKey("IsArchived")) { isArchived = bool.Parse(dict["IsArchived"]); } var toReturn = new AnnotationModel(dict["Author"], dict["Body"], doc, isArchived); toReturn.Id = Guid.Parse(dict["AnnotationId"]); return toReturn; }