public async Task <SaveResult> VerifyModel(MemberStagingViewModel viewModel) { SaveResult saveResult = new SaveResult(); Dictionary <bool, string> dictionary = new Dictionary <bool, string>(); var entity = new MemberStaging(); try { if (_context.MemberStaging.IgnoreQueryFilters().Any(a => a.Id == viewModel.Id)) { entity = await _context.MemberStaging.IgnoreQueryFilters().FirstOrDefaultAsync(a => a.Id == viewModel.Id); entity.IsFinalised = viewModel.IsFinalised; if (!entity.IsFinalised) { entity.Comment = viewModel.Comments; entity.IsRejected = true; } _context.MemberStaging.Update(entity); await _context.SaveChangesAsync(); saveResult.IsSuccess = true; //send approval email entity.ToViewModel(viewModel); //allow user to create an account if (entity.Id > 0) { saveResult.IsSuccess = true; saveResult.Id = entity.Id; if (viewModel.IsFinalised) { //saveResult = await _personBL.GenerateEntity(viewModel); //if (saveResult.IsSuccess) //{ // saveResult = await this.DeleteEntity(entity.Id); //} } else { saveResult = await this.DeleteEntity(entity.Id); } } } } catch (DbUpdateException upDateEx) { var results = upDateEx.GetSqlerrorNo(); string msg = results == (int)SqlErrNo.FK ? ConstEntity.MissingValueMsg : ConstEntity.UniqueKeyMsg; saveResult = dictionary.GetValidateEntityResults(msg).ToSaveResult(); } catch (Exception ex) { saveResult.Message = CrudError.DeleteErrorMsg; } return(saveResult); }