Skip to content

Instantly share code, notes, and snippets.

@driscollwebdev
Last active December 11, 2015 03:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save driscollwebdev/4539186 to your computer and use it in GitHub Desktop.
Save driscollwebdev/4539186 to your computer and use it in GitHub Desktop.
A better example of parsing and saving an object from JSON using the Single Responsibility Principle
public void SaveFromJson(string jsonData, DbContext saveContext)
{
Person person = GetFromJson(jsonData);
Save(person, saveContext);
}
public Person GetFromJson(string jsonData)
{
try
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
Person person = serializer.Deserialize<Person>(jsonData);
return person;
}
catch (ArgumentException argEx)
{
//TODO: Handle this exception.
}
catch (ArgumentNullException argNullEx)
{
//TODO: Handle this exception.
}
catch (InvalidOperationException badOpEx)
{
//TODO: Handle this exception.
}
}
public void Save(Person person, DbContext saveContext)
{
//This is just an example, but in prod code you'd need
//to make sure the entity doesn't already exist.
saveContext.Entry<Person>(person).State = System.Data.EntityState.Added;
saveContext.SaveChanges();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment