public async Task <ResourceResult <UploadedFileResource> > UpsertAsync(UploadedFileResource resource) { var result = new ResourceResult <UploadedFileResource>(); // Beautify before validation and make validation more succesfull BeautifyResource(resource); // save beautify effect effect result.Resource = resource; // Apply simple validation on attribute level ValidateAttributes(resource, result.Errors); // Apply complex business rules validation ValidateBusinessRules(resource, result.Errors); // Save is only usefull when error free if (result.Errors.Count == 0) { // Convert resource to entity var entity = mapper.Map <UploadedFile>(resource); // save entity await EntityContext.UpsertAsync(entity); // convert save result back to resource and get database created values like auto incremental field and timestamps. result.Resource = mapper.Map <UploadedFileResource>(entity); } return(result); }
public async Task <ResourceResult <UploadedFileResource> > DeleteAsync(Int32 id) { var result = new ResourceResult <UploadedFileResource>(); // Check if resource still exists result.Resource = await FindAsync(id); if (result.Resource != null) { // Check if delete is allowed ValidateDelete(result.Resource, result.Errors); // Delete only if allowed if (result.Errors.Count == 0) { var entity = mapper.Map <UploadedFile>(result.Resource); await EntityContext.DeleteAsync(entity); } } return(result); }