private Flowchart ViewModelToFlowchart(AddDescriptionViewModel model) { var list = model.SeeAlso.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList(); var flowchart = new Flowchart { Name = model.Name, Discriminators = model.Discriminators, SeeAlso = list, Notes = model.Notes }; return(flowchart); }
public IActionResult AddFlowchart(AddDescriptionViewModel model) { var flowchart = ViewModelToFlowchart(model); string x = JsonConvert.SerializeObject(flowchart); string docPath = @"./Flowcharts"; string fileName = flowchart.Name.Replace(" ", "_"); fileName = fileName + ".json"; using (StreamWriter outputFile = new StreamWriter(Path.Combine(docPath, fileName))) { outputFile.WriteLine(x); } return(RedirectToAction(nameof(Index))); }
private static AddDescriptionViewModel InitiliseDescription(CreateFlowchartViewModel model) { Flowchart flowchart = new Flowchart(); var Edit = model.Edit; if (Edit) { string name = model.Name; string text = ReadFile(name); flowchart = JsonConvert.DeserializeObject <Flowchart>(text); } List <List <String> > list = new List <List <string> >(); list.Add(model.Red.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList()); list.Add(model.Orange.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList()); list.Add(model.Yellow.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList()); list.Add(model.Green.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList()); List <Discriminator> discriminators = new List <Discriminator>(); int counter = 0; foreach (var colour in list) { foreach (var d in colour) { Priority c; switch (counter) { case 0: c = Priority.Red; break; case 1: c = Priority.Orange; break; case 2: c = Priority.Yellow; break; case 3: c = Priority.Green; break; default: c = Priority.Blue; break; } var discriminator = new Discriminator { Name = d, Priority = c, PriorityString = c.ToString() }; if (Edit) { foreach (var disc in flowchart.Discriminators) { if (disc.Name == d && disc.Priority == c) { discriminator.Description = disc.Description; break; } } } discriminators.Add(discriminator); } counter++; } AddDescriptionViewModel newModel = new AddDescriptionViewModel() { Name = model.Name, Discriminators = discriminators }; //if (model.SeeAlso != null) //{ //var x = model.SeeAlso.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList(); newModel.SeeAlso = model.SeeAlso; //} newModel.Notes = model.Notes; return(newModel); }