public static async Task <IActionResult> AddTask( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestMessage incomingRequest, [Blob(TasklistXml, FileAccess.ReadWrite)] BlobClient taskListClient) { var responseMessage = ""; try { //get new task data out of incoming request var newTaskXml = APITools.ExtractDataFromRequest(incomingRequest); //add new task to main list var taskListXml = APITools.AddXElementToXDocument(taskListClient, newTaskXml); //upload modified list to storage await APITools.OverwriteBlobData(taskListClient, taskListXml); responseMessage = new XElement("Status", "Success").ToString(); } catch (Exception e) { //format error nicely to show user responseMessage = APITools.FormatErrorReply(e); } var okObjectResult = new OkObjectResult(responseMessage); return(okObjectResult); }
public static async Task <IActionResult> UpdatePerson( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestMessage incomingRequest, [Blob(PersonlistXml, FileAccess.ReadWrite)] BlobClient personListClient) { var responseMessage = ""; try { //get unedited hash & updated person details from incoming request var requestData = APITools.ExtractDataFromRequest(incomingRequest); var originalHash = int.Parse(requestData?.Element("PersonHash").Value); var updatedPersonXml = requestData?.Element("Person"); //get the person record that needs to be updated var personListXml = APITools.BlobClientToXml(personListClient); var personToUpdate = personListXml.Root.Elements() .Where(delegate(XElement personXml) { //use hash as id to find the person's record var thisHash = Person.FromXml(personXml).GetHashCode(); return(thisHash == originalHash); }).First(); //delete the previous person record, //and insert updated record in the same place personToUpdate.ReplaceWith(updatedPersonXml); //upload modified list to storage await APITools.OverwriteBlobData(personListClient, personListXml); responseMessage = new XElement("Status", "Success").ToString(); } catch (Exception e) { //format error nicely to show user responseMessage = APITools.FormatErrorReply(e); } var okObjectResult = new OkObjectResult(responseMessage); return(okObjectResult); }