From b46c29259cbeeaf05e35f77287dbc15c630da02e Mon Sep 17 00:00:00 2001 From: risadmin_prod Date: Fri, 10 Apr 2026 03:36:14 +0000 Subject: [PATCH] build_app --- .../Ad6/Ad6View/Ad6_api_service.dart | 146 ++ .../Ad6/Ad6View/Ad6_create_entity_screen.dart | 86 + .../Ad6/Ad6View/Ad6_details_screen.dart | 94 ++ .../Ad6/Ad6View/Ad6_entity_list_screen.dart | 165 ++ .../Ad6/Ad6View/Ad6_fields.dart | 127 ++ .../Ad6/Ad6View/Ad6_update_entity_screen.dart | 81 + .../Ad6/Ad6_Repo/Ad6_repo_screen.dart | 123 ++ .../Ad6_viewModel/Ad6_view_model_screen.dart | 382 +++++ .../Ad7/Ad7View/Ad7_api_service.dart | 84 + .../Ad7/Ad7View/Ad7_create_entity_screen.dart | 82 + .../Ad7/Ad7View/Ad7_details_screen.dart | 90 + .../Ad7/Ad7View/Ad7_entity_list_screen.dart | 342 ++++ .../Ad7/Ad7View/Ad7_fields.dart | 67 + .../Ad7/Ad7View/Ad7_update_entity_screen.dart | 77 + .../Ad7/Ad7_Repo/Ad7_repo_screen.dart | 111 ++ .../Ad7_viewModel/Ad7_view_model_screen.dart | 326 ++++ .../Ad8/Ad8View/Ad8_api_service.dart | 92 ++ .../Ad8/Ad8View/Ad8_create_entity_screen.dart | 86 + .../Ad8/Ad8View/Ad8_details_screen.dart | 94 ++ .../Ad8/Ad8View/Ad8_entity_list_screen.dart | 165 ++ .../Ad8/Ad8View/Ad8_fields.dart | 142 ++ .../Ad8/Ad8View/Ad8_update_entity_screen.dart | 81 + .../Ad8/Ad8_Repo/Ad8_repo_screen.dart | 115 ++ .../Ad8_viewModel/Ad8_view_model_screen.dart | 358 ++++ .../Ad9/Ad9View/Ad9_api_service.dart | 80 + .../Ad9/Ad9View/Ad9_create_entity_screen.dart | 80 + .../Ad9/Ad9View/Ad9_details_screen.dart | 88 + .../Ad9/Ad9View/Ad9_entity_list_screen.dart | 153 ++ .../Ad9/Ad9View/Ad9_fields.dart | 71 + .../Ad9/Ad9View/Ad9_update_entity_screen.dart | 75 + .../Ad9/Ad9_Repo/Ad9_repo_screen.dart | 93 ++ .../Ad9_viewModel/Ad9_view_model_screen.dart | 292 ++++ .../Adv1/Adv1View/Adv1_api_service.dart | 120 ++ .../Adv1View/Adv1_create_entity_screen.dart | 100 ++ .../Adv1/Adv1View/Adv1_details_screen.dart | 128 ++ .../Adv1View/Adv1_entity_list_screen.dart | 213 +++ .../Adv1/Adv1View/Adv1_fields.dart | 197 +++ .../Adv1View/Adv1_update_entity_screen.dart | 95 ++ .../Adv1/Adv1_Repo/Adv1_repo_screen.dart | 185 +++ .../Adv1_view_model_screen.dart | 1174 +++++++++++++ .../Adv3/Adv3View/Adv3_api_service.dart | 116 ++ .../Adv3View/Adv3_create_entity_screen.dart | 98 ++ .../Adv3/Adv3View/Adv3_details_screen.dart | 106 ++ .../Adv3View/Adv3_entity_list_screen.dart | 189 +++ .../Adv3/Adv3View/Adv3_fields.dart | 237 +++ .../Adv3View/Adv3_update_entity_screen.dart | 93 ++ .../Adv3/Adv3_Repo/Adv3_repo_screen.dart | 159 ++ .../Adv3_view_model_screen.dart | 518 ++++++ .../Adv4/Adv4View/Adv4_api_service.dart | 96 ++ .../Adv4View/Adv4_create_entity_screen.dart | 88 + .../Adv4/Adv4View/Adv4_details_screen.dart | 96 ++ .../Adv4View/Adv4_entity_list_screen.dart | 169 ++ .../Adv4/Adv4View/Adv4_fields.dart | 199 +++ .../Adv4View/Adv4_update_entity_screen.dart | 83 + .../Adv4/Adv4_Repo/Adv4_repo_screen.dart | 133 ++ .../Adv4_view_model_screen.dart | 414 +++++ .../Adv5/Adv5View/Adv5_api_service.dart | 108 ++ .../Adv5View/Adv5_create_entity_screen.dart | 94 ++ .../Adv5/Adv5View/Adv5_details_screen.dart | 102 ++ .../Adv5View/Adv5_entity_list_screen.dart | 181 ++ .../Adv5/Adv5View/Adv5_fields.dart | 260 +++ .../Adv5View/Adv5_update_entity_screen.dart | 89 + .../Adv5/Adv5_Repo/Adv5_repo_screen.dart | 107 ++ .../Adv5_view_model_screen.dart | 388 +++++ .../Basicp1View/Basicp1_api_service.dart | 120 ++ .../Basicp1_create_entity_screen.dart | 100 ++ .../Basicp1View/Basicp1_details_screen.dart | 108 ++ .../Basicp1_entity_list_screen.dart | 193 +++ .../Basicp1/Basicp1View/Basicp1_fields.dart | 167 ++ .../Basicp1_update_entity_screen.dart | 95 ++ .../Basicp1_Repo/Basicp1_repo_screen.dart | 113 ++ .../Basicp1_view_model_screen.dart | 452 +++++ .../Basicp2View/Basicp2_api_service.dart | 108 ++ .../Basicp2_create_entity_screen.dart | 94 ++ .../Basicp2View/Basicp2_details_screen.dart | 102 ++ .../Basicp2_entity_list_screen.dart | 181 ++ .../Basicp2/Basicp2View/Basicp2_fields.dart | 117 ++ .../Basicp2_update_entity_screen.dart | 89 + .../Basicp2_Repo/Basicp2_repo_screen.dart | 107 ++ .../Basicp2_view_model_screen.dart | 400 +++++ .../Basicp3View/Basicp3_api_service.dart | 116 ++ .../Basicp3_create_entity_screen.dart | 98 ++ .../Basicp3View/Basicp3_details_screen.dart | 106 ++ .../Basicp3_entity_list_screen.dart | 189 +++ .../Basicp3/Basicp3View/Basicp3_fields.dart | 131 ++ .../Basicp3_update_entity_screen.dart | 93 ++ .../Basicp3_Repo/Basicp3_repo_screen.dart | 111 ++ .../Basicp3_view_model_screen.dart | 422 +++++ .../Dv2/Dv2View/Dv2_api_service.dart | 108 ++ .../Dv2/Dv2View/Dv2_create_entity_screen.dart | 94 ++ .../Dv2/Dv2View/Dv2_details_screen.dart | 118 ++ .../Dv2/Dv2View/Dv2_entity_list_screen.dart | 197 +++ .../Dv2/Dv2View/Dv2_fields.dart | 149 ++ .../Dv2/Dv2View/Dv2_update_entity_screen.dart | 89 + .../Dv2/Dv2_Repo/Dv2_repo_screen.dart | 107 ++ .../Dv2_viewModel/Dv2_view_model_screen.dart | 434 +++++ .../SupportView/Support_api_service.dart | 80 + .../Support_create_entity_screen.dart | 80 + .../SupportView/Support_details_screen.dart | 88 + .../Support_entity_list_screen.dart | 153 ++ .../Support/SupportView/Support_fields.dart | 71 + .../Support_update_entity_screen.dart | 75 + .../Support_Repo/Support_repo_screen.dart | 93 ++ .../Support_view_model_screen.dart | 292 ++++ .../ChildformView/Childform_api_service.dart | 84 + .../Childform_create_entity_screen.dart | 82 + .../Childform_details_screen.dart | 90 + .../Childform_entity_list_screen.dart | 157 ++ .../ChildformView/Childform_fields.dart | 76 + .../Childform_update_entity_screen.dart | 77 + .../Childform_Repo/Childform_repo_screen.dart | 95 ++ .../Childform_view_model_screen.dart | 305 ++++ .../CountryView/Country_api_service.dart | 84 + .../Country_create_entity_screen.dart | 82 + .../CountryView/Country_details_screen.dart | 90 + .../Country_entity_list_screen.dart | 157 ++ .../Country/CountryView/Country_fields.dart | 76 + .../Country_update_entity_screen.dart | 77 + .../Country_Repo/Country_repo_screen.dart | 95 ++ .../Country_view_model_screen.dart | 305 ++++ .../DistrictView/District_api_service.dart | 88 + .../District_create_entity_screen.dart | 84 + .../DistrictView/District_details_screen.dart | 92 ++ .../District_entity_list_screen.dart | 161 ++ .../DistrictView/District_fields.dart | 84 + .../District_update_entity_screen.dart | 79 + .../District_Repo/District_repo_screen.dart | 97 ++ .../District_view_model_screen.dart | 321 ++++ .../State/StateView/State_api_service.dart | 88 + .../StateView/State_create_entity_screen.dart | 84 + .../State/StateView/State_details_screen.dart | 92 ++ .../StateView/State_entity_list_screen.dart | 161 ++ .../State/StateView/State_fields.dart | 84 + .../StateView/State_update_entity_screen.dart | 79 + .../State/State_Repo/State_repo_screen.dart | 97 ++ .../State_view_model_screen.dart | 321 ++++ .../base_project/lib/view/dashboard/home.dart | 1468 ++++++++++------- .../Builders/Services/BuilderService.java | 51 + .../Controllers/Ad6Controller.java | 115 ++ .../Controllers/Ad7Controller.java | 113 ++ .../Controllers/Ad8Controller.java | 131 ++ .../Controllers/Ad9Controller.java | 91 + .../Controllers/Adv1Controller.java | 171 ++ .../Controllers/Adv3Controller.java | 163 ++ .../Controllers/Adv4Controller.java | 123 ++ .../Controllers/Adv5Controller.java | 147 ++ .../Controllers/Basicp1Controller.java | 171 ++ .../Controllers/Basicp2Controller.java | 147 ++ .../Controllers/Basicp3Controller.java | 163 ++ .../Controllers/Basicp3InsertController2.java | 21 + .../ChildformUpdateController3.java | 23 + .../District_ListFilter1Controller.java | 24 + .../Controllers/Dv2Controller.java | 147 ++ .../State_ListFilter1Controller.java | 24 + .../Controllers/SupportController.java | 91 + .../Controllers/SupportInsertController3.java | 21 + .../Controllers/SupportUpdateController2.java | 23 + .../Controllers/tokenFree_Ad6Controller.java | 115 ++ .../Controllers/tokenFree_Ad7Controller.java | 113 ++ .../Controllers/tokenFree_Ad8Controller.java | 131 ++ .../Controllers/tokenFree_Ad9Controller.java | 91 + .../Controllers/tokenFree_Adv1Controller.java | 171 ++ .../Controllers/tokenFree_Adv3Controller.java | 163 ++ .../Controllers/tokenFree_Adv4Controller.java | 123 ++ .../Controllers/tokenFree_Adv5Controller.java | 147 ++ .../tokenFree_Basicp1Controller.java | 171 ++ .../tokenFree_Basicp2Controller.java | 147 ++ .../tokenFree_Basicp3Controller.java | 163 ++ ...enFree_District_ListFilter1Controller.java | 24 + .../Controllers/tokenFree_Dv2Controller.java | 147 ++ ...tokenFree_State_ListFilter1Controller.java | 24 + .../tokenFree_SupportController.java | 91 + .../realnet/angulardatatype/Entity/Ad6.java | 49 + .../realnet/angulardatatype/Entity/Ad7.java | 32 + .../realnet/angulardatatype/Entity/Ad8.java | 42 + .../realnet/angulardatatype/Entity/Ad9.java | 28 + .../realnet/angulardatatype/Entity/Adv1.java | 98 ++ .../realnet/angulardatatype/Entity/Adv3.java | 66 + .../realnet/angulardatatype/Entity/Adv4.java | 48 + .../realnet/angulardatatype/Entity/Adv5.java | 58 + .../angulardatatype/Entity/Basicp1.java | 77 + .../angulardatatype/Entity/Basicp2.java | 59 + .../angulardatatype/Entity/Basicp3.java | 64 + .../Entity/District_ListFilter1.java | 14 + .../realnet/angulardatatype/Entity/Dv2.java | 78 + .../Entity/State_ListFilter1.java | 14 + .../angulardatatype/Entity/Support.java | 29 + .../Repository/Ad6Repository.java | 34 + .../Repository/Ad7Repository.java | 30 + .../Repository/Ad8Repository.java | 34 + .../Repository/Ad9Repository.java | 28 + .../Repository/Adv1Repository.java | 48 + .../Repository/Adv3Repository.java | 46 + .../Repository/Adv4Repository.java | 36 + .../Repository/Adv5Repository.java | 42 + .../Repository/Basicp1Repository.java | 48 + .../Repository/Basicp2Repository.java | 42 + .../Repository/Basicp3Repository.java | 46 + .../Repository/Dv2Repository.java | 42 + .../Repository/SupportRepository.java | 28 + .../angulardatatype/Services/Ad6Service.java | 142 ++ .../angulardatatype/Services/Ad7Service.java | 129 ++ .../angulardatatype/Services/Ad8Service.java | 185 +++ .../angulardatatype/Services/Ad9Service.java | 83 + .../angulardatatype/Services/Adv1Service.java | 207 +++ .../angulardatatype/Services/Adv3Service.java | 236 +++ .../angulardatatype/Services/Adv4Service.java | 171 ++ .../angulardatatype/Services/Adv5Service.java | 153 ++ .../Services/Basicp1Service.java | 183 ++ .../Services/Basicp2Service.java | 154 ++ .../Services/Basicp3InsertService2.java | 31 + .../Services/Basicp3Service.java | 174 ++ .../Services/ChildformUpdateService3.java | 42 + .../Services/District_ListFilter1Service.java | 57 + .../angulardatatype/Services/Dv2Service.java | 188 +++ .../Services/State_ListFilter1Service.java | 57 + .../Services/SupportInsertService3.java | 31 + .../Services/SupportService.java | 83 + .../Services/SupportUpdateService2.java | 41 + .../Controllers/ChildformController.java | 99 ++ .../tokenFree_ChildformController.java | 99 ++ .../com/realnet/stpkg/Entity/Childform.java | 33 + .../stpkg/Repository/ChildformRepository.java | 30 + .../stpkg/Services/ChildformService.java | 93 ++ .../Controllers/CountryController.java | 99 ++ .../Country_ListFilter1Controller.java | 24 + .../Controllers/DistrictController.java | 107 ++ .../testdata/Controllers/StateController.java | 107 ++ .../tokenFree_CountryController.java | 99 ++ ...kenFree_Country_ListFilter1Controller.java | 24 + .../tokenFree_DistrictController.java | 107 ++ .../tokenFree_StateController.java | 107 ++ .../com/realnet/testdata/Entity/Country.java | 33 + .../testdata/Entity/Country_ListFilter1.java | 15 + .../com/realnet/testdata/Entity/District.java | 37 + .../com/realnet/testdata/Entity/State.java | 37 + .../Repository/CountryRepository.java | 30 + .../Repository/DistrictRepository.java | 32 + .../testdata/Repository/StateRepository.java | 32 + .../testdata/Services/CountryService.java | 93 ++ .../Services/Country_ListFilter1Service.java | 53 + .../testdata/Services/DistrictService.java | 103 ++ .../testdata/Services/StateService.java | 103 ++ .../authsec_mysql/mysql/wf_table/wf_table.sql | 34 + 244 files changed, 30689 insertions(+), 564 deletions(-) create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_api_service.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_create_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_details_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_entity_list_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_fields.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_update_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6_Repo/Ad6_repo_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6_viewModel/Ad6_view_model_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_api_service.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_create_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_details_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_entity_list_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_fields.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_update_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7_Repo/Ad7_repo_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7_viewModel/Ad7_view_model_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_api_service.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_create_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_details_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_entity_list_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_fields.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_update_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8_Repo/Ad8_repo_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8_viewModel/Ad8_view_model_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_api_service.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_create_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_details_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_entity_list_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_fields.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_update_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9_Repo/Ad9_repo_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9_viewModel/Ad9_view_model_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_api_service.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_create_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_details_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_entity_list_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_fields.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_update_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1_Repo/Adv1_repo_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1_viewModel/Adv1_view_model_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_api_service.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_create_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_details_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_entity_list_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_fields.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_update_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3_Repo/Adv3_repo_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3_viewModel/Adv3_view_model_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_api_service.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_create_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_details_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_entity_list_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_fields.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_update_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4_Repo/Adv4_repo_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4_viewModel/Adv4_view_model_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_api_service.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_create_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_details_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_entity_list_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_fields.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_update_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5_Repo/Adv5_repo_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5_viewModel/Adv5_view_model_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_api_service.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_create_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_details_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_entity_list_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_fields.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_update_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1_Repo/Basicp1_repo_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1_viewModel/Basicp1_view_model_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_api_service.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_create_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_details_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_entity_list_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_fields.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_update_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2_Repo/Basicp2_repo_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2_viewModel/Basicp2_view_model_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_api_service.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_create_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_details_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_entity_list_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_fields.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_update_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3_Repo/Basicp3_repo_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3_viewModel/Basicp3_view_model_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_api_service.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_create_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_details_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_entity_list_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_fields.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_update_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2_Repo/Dv2_repo_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2_viewModel/Dv2_view_model_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_api_service.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_create_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_details_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_entity_list_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_fields.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_update_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/Support_Repo/Support_repo_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/Support_viewModel/Support_view_model_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_api_service.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_create_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_details_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_entity_list_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_fields.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_update_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/Childform_Repo/Childform_repo_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/Childform_viewModel/Childform_view_model_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_api_service.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_create_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_details_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_entity_list_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_fields.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_update_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/Country_Repo/Country_repo_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/Country_viewModel/Country_view_model_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_api_service.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_create_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_details_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_entity_list_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_fields.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_update_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/District_Repo/District_repo_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/District_viewModel/District_view_model_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_api_service.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_create_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_details_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_entity_list_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_fields.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_update_entity_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/State_Repo/State_repo_screen.dart create mode 100644 test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/State_viewModel/State_view_model_screen.dart create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Ad6Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Ad7Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Ad8Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Ad9Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Adv1Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Adv3Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Adv4Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Adv5Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Basicp1Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Basicp2Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Basicp3Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Basicp3InsertController2.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/ChildformUpdateController3.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/District_ListFilter1Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Dv2Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/State_ListFilter1Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/SupportController.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/SupportInsertController3.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/SupportUpdateController2.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Ad6Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Ad7Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Ad8Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Ad9Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Adv1Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Adv3Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Adv4Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Adv5Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Basicp1Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Basicp2Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Basicp3Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_District_ListFilter1Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Dv2Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_State_ListFilter1Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_SupportController.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Ad6.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Ad7.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Ad8.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Ad9.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Adv1.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Adv3.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Adv4.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Adv5.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Basicp1.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Basicp2.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Basicp3.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/District_ListFilter1.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Dv2.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/State_ListFilter1.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Support.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Ad6Repository.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Ad7Repository.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Ad8Repository.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Ad9Repository.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Adv1Repository.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Adv3Repository.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Adv4Repository.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Adv5Repository.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Basicp1Repository.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Basicp2Repository.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Basicp3Repository.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Dv2Repository.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/SupportRepository.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Ad6Service.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Ad7Service.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Ad8Service.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Ad9Service.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Adv1Service.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Adv3Service.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Adv4Service.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Adv5Service.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Basicp1Service.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Basicp2Service.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Basicp3InsertService2.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Basicp3Service.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/ChildformUpdateService3.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/District_ListFilter1Service.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Dv2Service.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/State_ListFilter1Service.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/SupportInsertService3.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/SupportService.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/SupportUpdateService2.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Controllers/ChildformController.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Controllers/tokenFree_ChildformController.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Entity/Childform.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Repository/ChildformRepository.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Services/ChildformService.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/CountryController.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/Country_ListFilter1Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/DistrictController.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/StateController.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/tokenFree_CountryController.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/tokenFree_Country_ListFilter1Controller.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/tokenFree_DistrictController.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/tokenFree_StateController.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Entity/Country.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Entity/Country_ListFilter1.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Entity/District.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Entity/State.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Repository/CountryRepository.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Repository/DistrictRepository.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Repository/StateRepository.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Services/CountryService.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Services/Country_ListFilter1Service.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Services/DistrictService.java create mode 100644 test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Services/StateService.java create mode 100755 test10april-testtensep-d/authsec_mysql/mysql/wf_table/wf_table.sql diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_api_service.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_api_service.dart new file mode 100644 index 0000000..2b5ccb0 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_api_service.dart @@ -0,0 +1,146 @@ +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../resources/api_constants.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; + +class Ad6ApiService { + final String baseUrl = ApiConstants.baseUrl; + + final BaseNetworkService _helper = NetworkApiService(); + + + + Future>> getEntities() async { + + try { + final response = await _helper.getGetApiResponse('$baseUrl/Ad6/Ad6'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all entities: $e'); + } + } +Future>> getAllWithPagination( + int page, int size) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/Ad6/Ad6/getall/page?page=$page&size=$size'); + final entities = + (response['content'] as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all without pagination: $e'); + } + } + Future> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl/Ad6/Ad6', entity); + + print(entity); + + // Assuming the response is a Map + Map responseData = response; + + return responseData; + } catch (e) { + throw Exception('Failed to create entity: $e'); + } + } + + + + + + + + + + + + Future updateEntity( int entityId, Map entity) async { + try { + await _helper.getPutApiResponse('$baseUrl/Ad6/Ad6/$entityId', + entity); print(entity); + + } catch (e) { + throw Exception('Failed to update entity: $e'); + } + } + + Future deleteEntity( int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl/Ad6/Ad6/$entityId'); + } catch (e) { + throw Exception('Failed to delete entity: $e'); + } + } + + + + + + + + + + + Future>> getfirstState_name() async { + try { + final response = await _helper + .getGetApiResponse('$baseUrl/State_name_ListFilter1/State_name_ListFilter1'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get first dd: $e'); + } + } + Future>> getsecondState_name(String name) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/State_name_ListFilter1/State_name_ListFilter11/$name'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get first dd: $e'); + } + } + + + + + + + + + + Future>> getfirstDistrict_name() async { + try { + final response = await _helper + .getGetApiResponse('$baseUrl/District_name_ListFilter1/District_name_ListFilter1'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get first dd: $e'); + } + } + Future>> getsecondDistrict_name(String name) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/District_name_ListFilter1/District_name_ListFilter11/$name'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get first dd: $e'); + } + } + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_create_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_create_entity_screen.dart new file mode 100644 index 0000000..faa7d1e --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_create_entity_screen.dart @@ -0,0 +1,86 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:provider/provider.dart'; +import '../Ad6_viewModel/Ad6_view_model_screen.dart'; +import 'Ad6_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import '../../../../widgets/custom_dropdown_field.dart'; +import 'dart:math'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:intl/intl.dart'; + +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:http/http.dart' as http; +import 'package:flutter/services.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart' +;import 'package:multi_select_flutter/multi_select_flutter.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:video_player/video_player.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:lottie/lottie.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import 'dart:io'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; + + + + + + + + + + +class Ad6CreateEntityScreen extends StatefulWidget { + const Ad6CreateEntityScreen({super.key}); + + @override + _Ad6CreateEntityScreenState createState() => _Ad6CreateEntityScreenState(); +} + +class _Ad6CreateEntityScreenState extends State { + +final Map formData = {}; + final _formKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityCreateScreen( + fields: Ad6Fields.getFields(context), + onSubmit: (data) => _handleSubmit(data), + title: 'Ad6', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.createEntity(formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_details_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_details_screen.dart new file mode 100644 index 0000000..373ccae --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_details_screen.dart @@ -0,0 +1,94 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../../../BuilderField/shared/ui/entity_details.dart'; +import '../Ad6_viewModel/Ad6_view_model_screen.dart'; +import 'Ad6_update_entity_screen.dart'; + +class Ad6DetailsScreen extends StatefulWidget { + final Map entity; + + const Ad6DetailsScreen({ + super.key, + required this.entity, + }); + + @override + State createState() => _Ad6DetailsScreenState(); +} + +class _Ad6DetailsScreenState extends State { + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Ad6ViewModelScreen(), + child: Ad6UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + // Refresh the details screen with updated data + setState(() {}); + }); + } + + void _showDeleteDialog(Map entity) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Ad6?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(context, listen: false); + final success = await vm.deleteEntity(entity['id']); + if (success && mounted) { + Navigator.pop(context); // Go back to list + } + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityDetails( + entity: widget.entity, + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + title: 'Ad6', + displayFields: [ + {'key': 'name', 'label': 'Name', 'type': 'text'}, + + {'key': 'description', 'label': 'description', 'type': 'text'}, + + {'key': 'country', 'label': 'country', 'type': 'select'}, + + {'key': 'state', 'label': 'state', 'type': 'dependent_dropdown'}, + + {'key': 'district', 'label': 'district', 'type': 'dependent_dropdown'}, + + ], + isLoading: viewModel.isLoading, + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_entity_list_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_entity_list_screen.dart new file mode 100644 index 0000000..f12e6e5 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_entity_list_screen.dart @@ -0,0 +1,165 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_list.dart'; +import 'Ad6_create_entity_screen.dart'; +import 'Ad6_update_entity_screen.dart'; +import '../Ad6_viewModel/Ad6_view_model_screen.dart'; +import 'Ad6_details_screen.dart';import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_to_text.dart' as stt; +import '../../../../theme/app_style.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../widgets/custom_icon_button.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../theme/app_decoration.dart'; +import 'package:multi_select_flutter/multi_select_flutter.dart'; +import '../../../../Reuseable/reusable_text_field.dart'; +import 'package:provider/provider.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/fields/realted_entity_insert_field.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class Ad6_entity_list_screen extends StatefulWidget { + static const String routeName = '/entity-list'; + + @override + _Ad6_entity_list_screenState createState() => _Ad6_entity_list_screenState(); +} + +class _Ad6_entity_list_screenState extends State { + @override + void initState() { + super.initState(); + _loadData(); + } + + void _loadData() { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + final vm = Provider.of(context, listen: false); + vm.getAllWithPagination(refresh: true); + } + }); + } + + void _navigateToCreateScreen() { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Ad6ViewModelScreen(), + child: const Ad6CreateEntityScreen(), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Ad6ViewModelScreen(), + child: Ad6UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToDetailsScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Ad6ViewModelScreen(), + child: Ad6DetailsScreen(entity: entity), + ), + ), + ); + } + + void _showDeleteDialog(Map entity) { + final parentContext = context; + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Ad6?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(parentContext, listen: false); + await vm.deleteEntity(entity['id']); + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityList( + entities: viewModel.filteredList, + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + hasMoreData: viewModel.hasMoreData, + searchQuery: viewModel.searchQuery, + onSearchChanged: (query) => viewModel.searchad6(query), + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + onTap: (entity) => _navigateToDetailsScreen(entity), + onRefresh: () => viewModel.refreshData(), + onLoadMore: () => viewModel.getAllWithPagination(), + title: 'Ad6', + onAddNew: _navigateToCreateScreen, + + + + + + + + + + + displayFields: [ + {'key': 'name', 'label': 'Name', 'type': 'text'}, + + {'key': 'description', 'label': 'description', 'type': 'text'}, + + {'key': 'country', 'label': 'country', 'type': 'select'}, + + {'key': 'state', 'label': 'state', 'type': 'dependent_dropdown'}, + + {'key': 'district', 'label': 'district', 'type': 'dependent_dropdown'}, + + ], + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_fields.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_fields.dart new file mode 100644 index 0000000..55497e9 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_fields.dart @@ -0,0 +1,127 @@ +import 'package:base_project/BuilderField/shared/fields/number_field.dart'; +import 'package:base_project/BuilderField/shared/fields/password_field.dart'; +import 'package:base_project/BuilderField/shared/fields/phone_field.dart'; +import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart'; + +import '../../../../BuilderField/shared/fields/base_field.dart'; + +import '../../../../BuilderField/shared/fields/date_field.dart'; +import '../../../../BuilderField/shared/fields/datetime_field.dart'; +import '../../../../BuilderField/shared/fields/email_field.dart'; +import 'package:base_project/BuilderField/shared/fields/url_field.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/calculated_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_many_field.dart'; +import '../../../../BuilderField/shared/fields/value_list_picker_field.dart'; +import '../../../../BuilderField/shared/fields/captcha_field.dart'; +import '../../../../BuilderField/shared/fields/switch_field.dart'; +import '../../../../BuilderField/shared/fields/url_field.dart'; + +import '../../../../BuilderField/shared/fields/audio_upload_field.dart'; +import '../../../../BuilderField/shared/fields/checkbox_field.dart'; +import '../../../../BuilderField/shared/fields/file_upload_field.dart'; +import '../../../../BuilderField/shared/fields/image_upload_field.dart'; +import '../../../../BuilderField/shared/fields/radio_field.dart'; +import '../../../../BuilderField/shared/fields/video_upload_field.dart'; + +import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/data_grid_field.dart'; +import '../../../../BuilderField/shared/fields/dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/static_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/currency_field.dart'; +import '../../../../BuilderField/shared/fields/field_group_field.dart'; +import '../../../../BuilderField/shared/fields/qr_code_field.dart'; +import '../../../../BuilderField/shared/fields/barcode_field.dart'; +import '../../../../BuilderField/shared/fields/dependent_dropdown_field.dart'; + import '../Ad6_viewModel/Ad6_view_model_screen.dart';/// Field definitions for Ad6 entity +/// This defines the structure and validation for Ad6 forms +class Ad6Fields { + /// Get field definitions for Ad6 entity + static List getFields(BuildContext context) { + final viewModel = + Provider.of(context, listen: false); + return [ + // Basic Information + CustomTextField( + fieldKey: 'name', + label: 'Name', + hint: 'Enter Name', + isRequired: true, + maxLength: 50, + ), + + CustomTextField( + fieldKey: 'description', + label: 'description', + hint: 'Enter description', + isRequired: true, + maxLength: 50, + ), + + DynamicDropdownField( + fieldKey: 'country', + label: 'Select country', + hint: 'Search and select', + optionsLoader: () => viewModel.getcountry(), + + + valueKey: 'name', + displayKey: 'name', + + + ), + + + + DependentDropdownField( + fieldKey: 'state', + label: 'state', + hint: 'Select state', + + + dependentFieldKey: 'country', + + + optionsLoader: (parentVal) => viewModel.getstateDependent(parentVal), + + + valueKey: 'state_name', + displayKey: 'state_name', + + + ), + + + + + DependentDropdownField( + fieldKey: 'district', + label: 'district', + hint: 'Select district', + + + dependentFieldKey: 'state', + + + optionsLoader: (parentVal) => viewModel.getdistrictDependent(parentVal), + + + valueKey: 'district_name', + displayKey: 'district_name', + + + ), + + + + ]; + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_update_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_update_entity_screen.dart new file mode 100644 index 0000000..16f8b2a --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6View/Ad6_update_entity_screen.dart @@ -0,0 +1,81 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:provider/provider.dart'; +import '../Ad6_viewModel/Ad6_view_model_screen.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import 'Ad6_fields.dart';import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import 'package:flutter/material.dart'; +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'dart:math'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; +import 'package:flutter/services.dart'; +class Ad6UpdateEntityScreen extends StatefulWidget { + final Map entity; + + + Ad6UpdateEntityScreen({required this.entity}); + + @override + _Ad6UpdateEntityScreenState createState() => _Ad6UpdateEntityScreenState(); +} + +class _Ad6UpdateEntityScreenState extends State { + final _formKey = GlobalKey(); + +@override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { +// Start with all fields, then remove upload fields (generic filter by keys) + final Set hiddenKeys = { + + + + + + + + + + + }; + final fields = Ad6Fields.getFields(context) + .where((f) => !hiddenKeys.contains(f.fieldKey)) + .toList(); return EntityUpdateScreen( + fields: fields, + initialData: widget.entity, + onSubmit: (data) => _handleSubmit(data), + title: 'Ad6', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.updateEntity(widget.entity['id'], formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6_Repo/Ad6_repo_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6_Repo/Ad6_repo_screen.dart new file mode 100644 index 0000000..292a6bd --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6_Repo/Ad6_repo_screen.dart @@ -0,0 +1,123 @@ +import 'package:dio/dio.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; +import '../../../../resources/api_constants.dart'; +import 'package:base_project/data/response/api_response.dart'; + +class Ad6RepoScreen { + + final String baseUrl = ApiConstants.baseUrl; + final BaseNetworkService _helper = NetworkApiService(); + final String _endpointPath = '/Ad6/Ad6'; + + Future>>> getEntities() async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl$_endpointPath'); + print('Response received: $response'); + List> entities = const []; + if (response is List) { + entities = response + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } else if (response is Map) { + final dynamic content = response['content']; + if (content is List) { + entities = content + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } + } + return ApiResponse.success(entities); + } catch (e) { + print(' error got $e'); + return ApiResponse.error('Failed to get all entities: $e'); + } + } + + Future>>> getAllWithPagination( + int page, int size) async { + try { + final response = await _helper.getGetApiResponse( + '$baseUrl$_endpointPath/getall/page?page=$page&size=$size'); + + if (response is Map && response['content'] is List) { + final List> entities = + (response['content'] as List).cast>().toList(); + return ApiResponse.success(entities); + } else { + return ApiResponse.error('Invalid response format'); + } + } catch (e) { + return ApiResponse.error('Failed to get all without pagination: $e'); + } + } + + Future>> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to create entity: $e'); + } + } + + Future>> updateEntity( + int entityId, Map entity) async { + try { + final response = await _helper.getPutApiResponse( + '$baseUrl$_endpointPath/$entityId', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to update entity: $e'); + } + } + + Future> deleteEntity(int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId'); + return ApiResponse.success(null); + } catch (e) { + return ApiResponse.error('Failed to delete entity: $e'); + } + } + + + + + Future getcountry() async { + try { + String apiUrl = "$baseUrl/Country_ListFilter1/Country_ListFilter1"; + final response = await _helper.getGetApiResponse(apiUrl); + return response; + } catch (e) { + throw Exception('Failed to Get: $e'); + } + } + + Future getstateDependent(String name) async { + try { + String apiUrl = "$baseUrl/State_ListFilter1/State_ListFilter11/$name"; + final response = await _helper.getGetApiResponse(apiUrl); + return response; + } catch (e) { + throw Exception('Failed to Get: $e'); + } + } + + Future getdistrictDependent(String name) async { + try { + String apiUrl = "$baseUrl/District_ListFilter1/District_ListFilter11/$name"; + final response = await _helper.getGetApiResponse(apiUrl); + return response; + } catch (e) { + throw Exception('Failed to Get: $e'); + } + } + +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6_viewModel/Ad6_view_model_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6_viewModel/Ad6_view_model_screen.dart new file mode 100644 index 0000000..9551fe7 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad6/Ad6_viewModel/Ad6_view_model_screen.dart @@ -0,0 +1,382 @@ +import 'package:base_project/data/response/status.dart'; +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/utils/entity_field_store.dart'; +import 'package:flutter/material.dart'; +import '../Ad6_Repo/Ad6_repo_screen.dart'; + +class Ad6ViewModelScreen extends ChangeNotifier{ + final Ad6RepoScreen repo = Ad6RepoScreen(); + + + // State variables + List> _ad6List = []; + List> _filteredList = []; + bool _isLoading = false; + String _errorMessage = ''; + int _currentPage = 0; + int _pageSize = 10; + bool _hasMoreData = true; + String _searchQuery = ''; + + // Getters + List> get ad6List => _ad6List; + List> get filteredList => _filteredList; + bool get isLoading => _isLoading; + String get errorMessage => _errorMessage; + bool get hasMoreData => _hasMoreData; + String get searchQuery => _searchQuery; + + // Set loading state + void _setLoading(bool loading) { + _isLoading = loading; + notifyListeners(); + } + + // Set error message + void _setError(String error) { + _errorMessage = error; + notifyListeners(); + } + + // Clear error + void clearError() { + _errorMessage = ''; + notifyListeners(); + } + + // Get ad6 list + Future getEntities() async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.getEntities(); + + if (response.status == Status.SUCCESS) { + _ad6List = response.data ?? []; + _filteredList = List.from(_ad6List); + _currentPage = 0; + _hasMoreData = true; + } else { + _setError(response.message ?? 'Failed to fetch ad6 list'); + } + } catch (e) { + _setError('Failed to fetch ad6 list: $e'); + } finally { + _setLoading(false); + } + } + + // Get ad6 list with pagination + Future getAllWithPagination({bool refresh = false}) async { + if (refresh) { + _currentPage = 0; + _ad6List.clear(); + _filteredList.clear(); + _hasMoreData = true; + } + + if (!_hasMoreData || _isLoading) return; + + _setLoading(true); + _setError(''); + + try { + final response = await repo.getAllWithPagination(_currentPage, _pageSize); + + if (response.status == Status.SUCCESS) { + final newItems = response.data ?? []; + + if (refresh) { + _ad6List = newItems; + } else { + _ad6List.addAll(newItems); + } + + _filteredList = List.from(_ad6List); + _currentPage++; + + // Check if we have more data + _hasMoreData = newItems.length == _pageSize; + } else { + _setError(response.message ?? 'Failed to fetch Ad6 list'); + } + } catch (e) { + _setError('Failed to fetch ad6 list: $e'); + } finally { + _setLoading(false); + } + } + + + + + + + + + + + + // Create Ad6 + Future createEntity(Map entity) async { + _setLoading(true); + _setError(''); + + try { + + + + + + + + + + + final response = await repo.createEntity(entity); + + if (response.status == Status.SUCCESS) { +// Get the response ID for image upload + + final responseId = response.data!['id'].toString(); + + + + + + + + + + + ToastMessageUtil.showToast( + message: 'ad6 created successfully', + toastType: ToastType.success, + ); + + // Refresh the list + await getEntities(); + + + + + + + + + + + return true; + } else { + _setError(response.message ?? 'Failed to create Ad6'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to create Ad6', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to create ad6: $e'); + ToastMessageUtil.showToast( + message: 'Failed to create Ad6: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Update ad6 + Future updateEntity(int id, Map entity) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.updateEntity(id, entity); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Ad6 updated successfully', + toastType: ToastType.success, + ); + + // Update the item in the list + final index = _ad6List.indexWhere((item) => item['id'] == id); + if (index != -1) { + _ad6List[index] = response.data!; + _filteredList = List.from(_ad6List); + notifyListeners(); + } + return true; + } else { + _setError(response.message ?? 'Failed to update Ad6'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to update Ad6', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to update ad6: $e'); + ToastMessageUtil.showToast( + message: 'Failed to update Ad6: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Delete ad6 + Future deleteEntity(int id) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.deleteEntity(id); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Ad6 deleted successfully', + toastType: ToastType.success, + ); + + // Remove the item from the list + _ad6List.removeWhere((item) => item['id'] == id); + _filteredList = List.from(_ad6List); + notifyListeners(); + return true; + } else { + _setError(response.message ?? 'Failed to delete Ad6'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to delete Ad6', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to delete ad6: $e'); + ToastMessageUtil.showToast( + message: 'Failed to delete Ad6: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Search ad6 + void searchad6(String query) { + _searchQuery = query; + + if (query.isEmpty) { + _filteredList = List.from(_ad6List); + } else { + _filteredList = _ad6List.where((item) { + return + + +(item['name']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['description']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['country']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['state']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['district']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) + + +; + }).toList(); + } + notifyListeners(); + } + + // Clear search + void clearSearch() { + _searchQuery = ''; + _filteredList = List.from(_ad6List); + notifyListeners(); + } + + // Refresh data + Future refreshData() async { + await getAllWithPagination(refresh: true); + } + + + + +List> countryItems = []; + + Future>> getcountry() async { + + try { + final value = await repo.getcountry(); + countryItems = (value as List) + .map((item) => item as Map) + .toList(); + + return countryItems; + } catch (e) { + throw Exception('Failed to get all: $e'); + } + } + +List> dependentstateItems = []; + + Future>> getstateDependent(String name) async { + + try { + final value = await repo.getstateDependent(name); + dependentstateItems = (value as List) + .map((item) => item as Map) + .toList(); + + return dependentstateItems; + } catch (e) { + throw Exception('Failed to get all Dependent Item: $e'); + } + } + +List> dependentdistrictItems = []; + + Future>> getdistrictDependent(String name) async { + + try { + final value = await repo.getdistrictDependent(name); + dependentdistrictItems = (value as List) + .map((item) => item as Map) + .toList(); + + return dependentdistrictItems; + } catch (e) { + throw Exception('Failed to get all Dependent Item: $e'); + } + } + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_api_service.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_api_service.dart new file mode 100644 index 0000000..124a0ac --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_api_service.dart @@ -0,0 +1,84 @@ +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../resources/api_constants.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; + +class Ad7ApiService { + final String baseUrl = ApiConstants.baseUrl; + + final BaseNetworkService _helper = NetworkApiService(); + + + + Future>> getEntities() async { + + try { + final response = await _helper.getGetApiResponse('$baseUrl/Ad7/Ad7'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all entities: $e'); + } + } +Future>> getAllWithPagination( + int page, int size) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/Ad7/Ad7/getall/page?page=$page&size=$size'); + final entities = + (response['content'] as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all without pagination: $e'); + } + } + Future> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl/Ad7/Ad7', entity); + + print(entity); + + // Assuming the response is a Map + Map responseData = response; + + return responseData; + } catch (e) { + throw Exception('Failed to create entity: $e'); + } + } + + + + + + + + Future updateEntity( int entityId, Map entity) async { + try { + await _helper.getPutApiResponse('$baseUrl/Ad7/Ad7/$entityId', + entity); print(entity); + + } catch (e) { + throw Exception('Failed to update entity: $e'); + } + } + + Future deleteEntity( int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl/Ad7/Ad7/$entityId'); + } catch (e) { + throw Exception('Failed to delete entity: $e'); + } + } + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_create_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_create_entity_screen.dart new file mode 100644 index 0000000..05e2da4 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_create_entity_screen.dart @@ -0,0 +1,82 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:provider/provider.dart'; +import '../Ad7_viewModel/Ad7_view_model_screen.dart'; +import 'Ad7_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import '../../../../widgets/custom_dropdown_field.dart'; +import 'dart:math'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:intl/intl.dart'; + +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:http/http.dart' as http; +import 'package:flutter/services.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart' +;import 'package:multi_select_flutter/multi_select_flutter.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:video_player/video_player.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:lottie/lottie.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import 'dart:io'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; + + + + + + +class Ad7CreateEntityScreen extends StatefulWidget { + const Ad7CreateEntityScreen({super.key}); + + @override + _Ad7CreateEntityScreenState createState() => _Ad7CreateEntityScreenState(); +} + +class _Ad7CreateEntityScreenState extends State { + +final Map formData = {}; + final _formKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityCreateScreen( + fields: Ad7Fields.getFields(context), + onSubmit: (data) => _handleSubmit(data), + title: 'Ad7', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.createEntity(formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_details_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_details_screen.dart new file mode 100644 index 0000000..8fc5361 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_details_screen.dart @@ -0,0 +1,90 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../../../BuilderField/shared/ui/entity_details.dart'; +import '../Ad7_viewModel/Ad7_view_model_screen.dart'; +import 'Ad7_update_entity_screen.dart'; + +class Ad7DetailsScreen extends StatefulWidget { + final Map entity; + + const Ad7DetailsScreen({ + super.key, + required this.entity, + }); + + @override + State createState() => _Ad7DetailsScreenState(); +} + +class _Ad7DetailsScreenState extends State { + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Ad7ViewModelScreen(), + child: Ad7UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + // Refresh the details screen with updated data + setState(() {}); + }); + } + + void _showDeleteDialog(Map entity) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Ad7?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(context, listen: false); + final success = await vm.deleteEntity(entity['id']); + if (success && mounted) { + Navigator.pop(context); // Go back to list + } + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityDetails( + entity: widget.entity, + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + title: 'Ad7', + displayFields: [ + {'key': 'name', 'label': 'Name', 'type': 'text'}, + + + + + + ], + isLoading: viewModel.isLoading, + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_entity_list_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_entity_list_screen.dart new file mode 100644 index 0000000..5c44eb9 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_entity_list_screen.dart @@ -0,0 +1,342 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_list.dart'; +import 'Ad7_create_entity_screen.dart'; +import 'Ad7_update_entity_screen.dart'; +import '../Ad7_viewModel/Ad7_view_model_screen.dart'; +import 'Ad7_details_screen.dart';import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_to_text.dart' as stt; +import '../../../../theme/app_style.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../widgets/custom_icon_button.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../theme/app_decoration.dart'; +import 'package:multi_select_flutter/multi_select_flutter.dart'; +import '../../../../Reuseable/reusable_text_field.dart'; +import 'package:provider/provider.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/fields/realted_entity_insert_field.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class Ad7_entity_list_screen extends StatefulWidget { + static const String routeName = '/entity-list'; + + @override + _Ad7_entity_list_screenState createState() => _Ad7_entity_list_screenState(); +} + +class _Ad7_entity_list_screenState extends State { + @override + void initState() { + super.initState(); + _loadData(); + } + + void _loadData() { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + final vm = Provider.of(context, listen: false); + vm.getAllWithPagination(refresh: true); + } + }); + } + + void _navigateToCreateScreen() { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Ad7ViewModelScreen(), + child: const Ad7CreateEntityScreen(), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Ad7ViewModelScreen(), + child: Ad7UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToDetailsScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Ad7ViewModelScreen(), + child: Ad7DetailsScreen(entity: entity), + ), + ), + ); + } + + void _showDeleteDialog(Map entity) { + final parentContext = context; + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Ad7?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(parentContext, listen: false); + await vm.deleteEntity(entity['id']); + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityList( + entities: viewModel.filteredList, + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + hasMoreData: viewModel.hasMoreData, + searchQuery: viewModel.searchQuery, + onSearchChanged: (query) => viewModel.searchad7(query), + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + onTap: (entity) => _navigateToDetailsScreen(entity), + onRefresh: () => viewModel.refreshData(), + onLoadMore: () => viewModel.getAllWithPagination(), + title: 'Ad7', + onAddNew: _navigateToCreateScreen, + + +onInsertAction: () async { + final id = await RelatedEntityInsertField.showInsertDialog( + context: context, + relationTitle: 'Basicp3', + fieldSchema: const [ + + + + { + 'type': 'text', + 'label': 'Toggle_Switch2', + 'hint': 'Enter Toggle_Switch2', + 'path': 'toggle_switch2', + 'required': false + }, + + + + + { + 'type': 'text', + 'label': 'Decimal_Field2', + 'hint': 'Enter Decimal_Field2', + 'path': 'decimal_field2', + 'required': false + }, + + + + + { + 'type': 'text', + 'label': 'Documentsequenc', + 'hint': 'Enter Documentsequenc', + 'path': 'documentsequenc', + 'required': false + }, + + + + + { + 'type': 'text', + 'label': 'Toggle_Switch', + 'hint': 'Enter Toggle_Switch', + 'path': 'toggle_switch', + 'required': false + }, + + + + + { + 'type': 'text', + 'label': 'Recaptcha', + 'hint': 'Enter Recaptcha', + 'path': 'recaptcha', + 'required': false + }, + + + + + { + 'type': 'text', + 'label': 'Percentage_Field', + 'hint': 'Enter Percentage_Field', + 'path': 'percentage_field', + 'required': false + }, + + + + + { + 'type': 'text', + 'label': 'Percentage_Field2', + 'hint': 'Enter Percentage_Field2', + 'path': 'percentage_field2', + 'required': false + }, + + + + + { + 'type': 'text', + 'label': 'Url_Field', + 'hint': 'Enter Url_Field', + 'path': 'url_field', + 'required': false + }, + + + + + { + 'type': 'text', + 'label': 'Url_Field2', + 'hint': 'Enter Url_Field2', + 'path': 'url_field2', + 'required': false + }, + + + + + { + 'type': 'text', + 'label': 'Decimal_Field', + 'hint': 'Enter Decimal_Field', + 'path': 'decimal_field', + 'required': false + }, + + + + + { + 'type': 'text', + 'label': 'Recaptcha2', + 'hint': 'Enter Recaptcha2', + 'path': 'recaptcha2', + 'required': false + }, + + + + ], + onCreate: (data) => + Provider.of(context, listen: false) + .insertbasicp3(data), + valueKey: 'id', + displayKey: 'name', + ); + if (id != null && id.trim().isNotEmpty) { + ToastMessageUtil.showToast( + message: 'Basicp3 inserted (id: $id)', + toastType: ToastType.success, + ); + } + }, + insertActionLabel: 'Basicp3', + +onInsertAction: () async { + final id = await RelatedEntityInsertField.showInsertDialog( + context: context, + relationTitle: 'Support', + fieldSchema: const [ + + + + { + 'type': 'text', + 'label': 'Description', + 'hint': 'Enter Description', + 'path': 'description', + 'required': false + }, + + + + + { + 'type': 'text', + 'label': 'Name', + 'hint': 'Enter Name', + 'path': 'name', + 'required': false + }, + + + + ], + onCreate: (data) => + Provider.of(context, listen: false) + .insertsupport(data), + valueKey: 'id', + displayKey: 'name', + ); + if (id != null && id.trim().isNotEmpty) { + ToastMessageUtil.showToast( + message: 'Support inserted (id: $id)', + toastType: ToastType.success, + ); + } + }, + insertActionLabel: 'Support', + + displayFields: [ + {'key': 'name', 'label': 'Name', 'type': 'text'}, + + + + + + ], + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_fields.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_fields.dart new file mode 100644 index 0000000..87f2735 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_fields.dart @@ -0,0 +1,67 @@ +import 'package:base_project/BuilderField/shared/fields/number_field.dart'; +import 'package:base_project/BuilderField/shared/fields/password_field.dart'; +import 'package:base_project/BuilderField/shared/fields/phone_field.dart'; +import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart'; + +import '../../../../BuilderField/shared/fields/base_field.dart'; + +import '../../../../BuilderField/shared/fields/date_field.dart'; +import '../../../../BuilderField/shared/fields/datetime_field.dart'; +import '../../../../BuilderField/shared/fields/email_field.dart'; +import 'package:base_project/BuilderField/shared/fields/url_field.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/calculated_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_many_field.dart'; +import '../../../../BuilderField/shared/fields/value_list_picker_field.dart'; +import '../../../../BuilderField/shared/fields/captcha_field.dart'; +import '../../../../BuilderField/shared/fields/switch_field.dart'; +import '../../../../BuilderField/shared/fields/url_field.dart'; + +import '../../../../BuilderField/shared/fields/audio_upload_field.dart'; +import '../../../../BuilderField/shared/fields/checkbox_field.dart'; +import '../../../../BuilderField/shared/fields/file_upload_field.dart'; +import '../../../../BuilderField/shared/fields/image_upload_field.dart'; +import '../../../../BuilderField/shared/fields/radio_field.dart'; +import '../../../../BuilderField/shared/fields/video_upload_field.dart'; + +import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/data_grid_field.dart'; +import '../../../../BuilderField/shared/fields/dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/static_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/currency_field.dart'; +import '../../../../BuilderField/shared/fields/field_group_field.dart'; +import '../../../../BuilderField/shared/fields/qr_code_field.dart'; +import '../../../../BuilderField/shared/fields/barcode_field.dart'; +import '../../../../BuilderField/shared/fields/dependent_dropdown_field.dart'; + import '../Ad7_viewModel/Ad7_view_model_screen.dart';/// Field definitions for Ad7 entity +/// This defines the structure and validation for Ad7 forms +class Ad7Fields { + /// Get field definitions for Ad7 entity + static List getFields(BuildContext context) { + final viewModel = + Provider.of(context, listen: false); + return [ + // Basic Information + CustomTextField( + fieldKey: 'name', + label: 'Name', + hint: 'Enter Name', + isRequired: true, + maxLength: 50, + ), + + + + + + ]; + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_update_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_update_entity_screen.dart new file mode 100644 index 0000000..3c02e67 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7View/Ad7_update_entity_screen.dart @@ -0,0 +1,77 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:provider/provider.dart'; +import '../Ad7_viewModel/Ad7_view_model_screen.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import 'Ad7_fields.dart';import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import 'package:flutter/material.dart'; +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'dart:math'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; +import 'package:flutter/services.dart'; +class Ad7UpdateEntityScreen extends StatefulWidget { + final Map entity; + + + Ad7UpdateEntityScreen({required this.entity}); + + @override + _Ad7UpdateEntityScreenState createState() => _Ad7UpdateEntityScreenState(); +} + +class _Ad7UpdateEntityScreenState extends State { + final _formKey = GlobalKey(); + +@override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { +// Start with all fields, then remove upload fields (generic filter by keys) + final Set hiddenKeys = { + + + + + + + }; + final fields = Ad7Fields.getFields(context) + .where((f) => !hiddenKeys.contains(f.fieldKey)) + .toList(); return EntityUpdateScreen( + fields: fields, + initialData: widget.entity, + onSubmit: (data) => _handleSubmit(data), + title: 'Ad7', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.updateEntity(widget.entity['id'], formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7_Repo/Ad7_repo_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7_Repo/Ad7_repo_screen.dart new file mode 100644 index 0000000..5b59261 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7_Repo/Ad7_repo_screen.dart @@ -0,0 +1,111 @@ +import 'package:dio/dio.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; +import '../../../../resources/api_constants.dart'; +import 'package:base_project/data/response/api_response.dart'; + +class Ad7RepoScreen { + + final String baseUrl = ApiConstants.baseUrl; + final BaseNetworkService _helper = NetworkApiService(); + final String _endpointPath = '/Ad7/Ad7'; + + Future>>> getEntities() async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl$_endpointPath'); + print('Response received: $response'); + List> entities = const []; + if (response is List) { + entities = response + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } else if (response is Map) { + final dynamic content = response['content']; + if (content is List) { + entities = content + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } + } + return ApiResponse.success(entities); + } catch (e) { + print(' error got $e'); + return ApiResponse.error('Failed to get all entities: $e'); + } + } + + Future>>> getAllWithPagination( + int page, int size) async { + try { + final response = await _helper.getGetApiResponse( + '$baseUrl$_endpointPath/getall/page?page=$page&size=$size'); + + if (response is Map && response['content'] is List) { + final List> entities = + (response['content'] as List).cast>().toList(); + return ApiResponse.success(entities); + } else { + return ApiResponse.error('Invalid response format'); + } + } catch (e) { + return ApiResponse.error('Failed to get all without pagination: $e'); + } + } + + Future>> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to create entity: $e'); + } + } + + Future>> updateEntity( + int entityId, Map entity) async { + try { + final response = await _helper.getPutApiResponse( + '$baseUrl$_endpointPath/$entityId', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to update entity: $e'); + } + } + + Future> deleteEntity(int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId'); + return ApiResponse.success(null); + } catch (e) { + return ApiResponse.error('Failed to delete entity: $e'); + } + } + + + Future insertbasicp3(Map entity) async { + try { + String apiUrl = "$baseUrl/Basicp3/Basicp3_insert"; + final response = await _helper.getPostApiResponse(apiUrl,entity); + return response; + } catch (e) { + throw Exception('Failed to Insert: $e'); + } + } + + Future insertsupport(Map entity) async { + try { + String apiUrl = "$baseUrl/Support/Support_insert"; + final response = await _helper.getPostApiResponse(apiUrl,entity); + return response; + } catch (e) { + throw Exception('Failed to Insert: $e'); + } + } + +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7_viewModel/Ad7_view_model_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7_viewModel/Ad7_view_model_screen.dart new file mode 100644 index 0000000..ae3fea0 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad7/Ad7_viewModel/Ad7_view_model_screen.dart @@ -0,0 +1,326 @@ +import 'package:base_project/data/response/status.dart'; +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/utils/entity_field_store.dart'; +import 'package:flutter/material.dart'; +import '../Ad7_Repo/Ad7_repo_screen.dart'; + +class Ad7ViewModelScreen extends ChangeNotifier{ + final Ad7RepoScreen repo = Ad7RepoScreen(); + + + // State variables + List> _ad7List = []; + List> _filteredList = []; + bool _isLoading = false; + String _errorMessage = ''; + int _currentPage = 0; + int _pageSize = 10; + bool _hasMoreData = true; + String _searchQuery = ''; + + // Getters + List> get ad7List => _ad7List; + List> get filteredList => _filteredList; + bool get isLoading => _isLoading; + String get errorMessage => _errorMessage; + bool get hasMoreData => _hasMoreData; + String get searchQuery => _searchQuery; + + // Set loading state + void _setLoading(bool loading) { + _isLoading = loading; + notifyListeners(); + } + + // Set error message + void _setError(String error) { + _errorMessage = error; + notifyListeners(); + } + + // Clear error + void clearError() { + _errorMessage = ''; + notifyListeners(); + } + + // Get ad7 list + Future getEntities() async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.getEntities(); + + if (response.status == Status.SUCCESS) { + _ad7List = response.data ?? []; + _filteredList = List.from(_ad7List); + _currentPage = 0; + _hasMoreData = true; + } else { + _setError(response.message ?? 'Failed to fetch ad7 list'); + } + } catch (e) { + _setError('Failed to fetch ad7 list: $e'); + } finally { + _setLoading(false); + } + } + + // Get ad7 list with pagination + Future getAllWithPagination({bool refresh = false}) async { + if (refresh) { + _currentPage = 0; + _ad7List.clear(); + _filteredList.clear(); + _hasMoreData = true; + } + + if (!_hasMoreData || _isLoading) return; + + _setLoading(true); + _setError(''); + + try { + final response = await repo.getAllWithPagination(_currentPage, _pageSize); + + if (response.status == Status.SUCCESS) { + final newItems = response.data ?? []; + + if (refresh) { + _ad7List = newItems; + } else { + _ad7List.addAll(newItems); + } + + _filteredList = List.from(_ad7List); + _currentPage++; + + // Check if we have more data + _hasMoreData = newItems.length == _pageSize; + } else { + _setError(response.message ?? 'Failed to fetch Ad7 list'); + } + } catch (e) { + _setError('Failed to fetch ad7 list: $e'); + } finally { + _setLoading(false); + } + } + + + + + + + + // Create Ad7 + Future createEntity(Map entity) async { + _setLoading(true); + _setError(''); + + try { + + + + + + + final response = await repo.createEntity(entity); + + if (response.status == Status.SUCCESS) { +// Get the response ID for image upload + + final responseId = response.data!['id'].toString(); + + + + + + + ToastMessageUtil.showToast( + message: 'ad7 created successfully', + toastType: ToastType.success, + ); + + // Refresh the list + await getEntities(); + + + + + + + return true; + } else { + _setError(response.message ?? 'Failed to create Ad7'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to create Ad7', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to create ad7: $e'); + ToastMessageUtil.showToast( + message: 'Failed to create Ad7: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Update ad7 + Future updateEntity(int id, Map entity) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.updateEntity(id, entity); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Ad7 updated successfully', + toastType: ToastType.success, + ); + + // Update the item in the list + final index = _ad7List.indexWhere((item) => item['id'] == id); + if (index != -1) { + _ad7List[index] = response.data!; + _filteredList = List.from(_ad7List); + notifyListeners(); + } + return true; + } else { + _setError(response.message ?? 'Failed to update Ad7'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to update Ad7', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to update ad7: $e'); + ToastMessageUtil.showToast( + message: 'Failed to update Ad7: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Delete ad7 + Future deleteEntity(int id) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.deleteEntity(id); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Ad7 deleted successfully', + toastType: ToastType.success, + ); + + // Remove the item from the list + _ad7List.removeWhere((item) => item['id'] == id); + _filteredList = List.from(_ad7List); + notifyListeners(); + return true; + } else { + _setError(response.message ?? 'Failed to delete Ad7'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to delete Ad7', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to delete ad7: $e'); + ToastMessageUtil.showToast( + message: 'Failed to delete Ad7: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Search ad7 + void searchad7(String query) { + _searchQuery = query; + + if (query.isEmpty) { + _filteredList = List.from(_ad7List); + } else { + _filteredList = _ad7List.where((item) { + return + + +(item['name']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) + + + + + + +; + }).toList(); + } + notifyListeners(); + } + + // Clear search + void clearSearch() { + _searchQuery = ''; + _filteredList = List.from(_ad7List); + notifyListeners(); + } + + // Refresh data + Future refreshData() async { + await getAllWithPagination(refresh: true); + } + + + Future> insertbasicp3(Map entity) async { + try { + print("Entity is $entity"); + final responseData = + await repo.insertbasicp3(entity) as Map; + + print(entity); + + + return responseData; + } catch (e) { + throw Exception('Failed to Insert basicp3: $e'); + } + } + + Future> insertsupport(Map entity) async { + try { + print("Entity is $entity"); + final responseData = + await repo.insertsupport(entity) as Map; + + print(entity); + + + return responseData; + } catch (e) { + throw Exception('Failed to Insert support: $e'); + } + } + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_api_service.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_api_service.dart new file mode 100644 index 0000000..e494935 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_api_service.dart @@ -0,0 +1,92 @@ +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../resources/api_constants.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; + +class Ad8ApiService { + final String baseUrl = ApiConstants.baseUrl; + + final BaseNetworkService _helper = NetworkApiService(); + + + + Future>> getEntities() async { + + try { + final response = await _helper.getGetApiResponse('$baseUrl/Ad8/Ad8'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all entities: $e'); + } + } +Future>> getAllWithPagination( + int page, int size) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/Ad8/Ad8/getall/page?page=$page&size=$size'); + final entities = + (response['content'] as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all without pagination: $e'); + } + } + Future> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl/Ad8/Ad8', entity); + + print(entity); + + // Assuming the response is a Map + Map responseData = response; + + return responseData; + } catch (e) { + throw Exception('Failed to create entity: $e'); + } + } + + + + + + + + + + + + Future updateEntity( int entityId, Map entity) async { + try { + await _helper.getPutApiResponse('$baseUrl/Ad8/Ad8/$entityId', + entity); print(entity); + + } catch (e) { + throw Exception('Failed to update entity: $e'); + } + } + + Future deleteEntity( int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl/Ad8/Ad8/$entityId'); + } catch (e) { + throw Exception('Failed to delete entity: $e'); + } + } + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_create_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_create_entity_screen.dart new file mode 100644 index 0000000..f3662a0 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_create_entity_screen.dart @@ -0,0 +1,86 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:provider/provider.dart'; +import '../Ad8_viewModel/Ad8_view_model_screen.dart'; +import 'Ad8_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import '../../../../widgets/custom_dropdown_field.dart'; +import 'dart:math'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:intl/intl.dart'; + +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:http/http.dart' as http; +import 'package:flutter/services.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart' +;import 'package:multi_select_flutter/multi_select_flutter.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:video_player/video_player.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:lottie/lottie.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import 'dart:io'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; + + + + + + + + + + +class Ad8CreateEntityScreen extends StatefulWidget { + const Ad8CreateEntityScreen({super.key}); + + @override + _Ad8CreateEntityScreenState createState() => _Ad8CreateEntityScreenState(); +} + +class _Ad8CreateEntityScreenState extends State { + +final Map formData = {}; + final _formKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityCreateScreen( + fields: Ad8Fields.getFields(context), + onSubmit: (data) => _handleSubmit(data), + title: 'Ad8', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.createEntity(formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_details_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_details_screen.dart new file mode 100644 index 0000000..677fbea --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_details_screen.dart @@ -0,0 +1,94 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../../../BuilderField/shared/ui/entity_details.dart'; +import '../Ad8_viewModel/Ad8_view_model_screen.dart'; +import 'Ad8_update_entity_screen.dart'; + +class Ad8DetailsScreen extends StatefulWidget { + final Map entity; + + const Ad8DetailsScreen({ + super.key, + required this.entity, + }); + + @override + State createState() => _Ad8DetailsScreenState(); +} + +class _Ad8DetailsScreenState extends State { + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Ad8ViewModelScreen(), + child: Ad8UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + // Refresh the details screen with updated data + setState(() {}); + }); + } + + void _showDeleteDialog(Map entity) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Ad8?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(context, listen: false); + final success = await vm.deleteEntity(entity['id']); + if (success && mounted) { + Navigator.pop(context); // Go back to list + } + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityDetails( + entity: widget.entity, + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + title: 'Ad8', + displayFields: [ + {'key': 'name', 'label': 'Name', 'type': 'text'}, + + + + + + + + + + ], + isLoading: viewModel.isLoading, + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_entity_list_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_entity_list_screen.dart new file mode 100644 index 0000000..70c4218 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_entity_list_screen.dart @@ -0,0 +1,165 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_list.dart'; +import 'Ad8_create_entity_screen.dart'; +import 'Ad8_update_entity_screen.dart'; +import '../Ad8_viewModel/Ad8_view_model_screen.dart'; +import 'Ad8_details_screen.dart';import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_to_text.dart' as stt; +import '../../../../theme/app_style.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../widgets/custom_icon_button.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../theme/app_decoration.dart'; +import 'package:multi_select_flutter/multi_select_flutter.dart'; +import '../../../../Reuseable/reusable_text_field.dart'; +import 'package:provider/provider.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/fields/realted_entity_insert_field.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class Ad8_entity_list_screen extends StatefulWidget { + static const String routeName = '/entity-list'; + + @override + _Ad8_entity_list_screenState createState() => _Ad8_entity_list_screenState(); +} + +class _Ad8_entity_list_screenState extends State { + @override + void initState() { + super.initState(); + _loadData(); + } + + void _loadData() { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + final vm = Provider.of(context, listen: false); + vm.getAllWithPagination(refresh: true); + } + }); + } + + void _navigateToCreateScreen() { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Ad8ViewModelScreen(), + child: const Ad8CreateEntityScreen(), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Ad8ViewModelScreen(), + child: Ad8UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToDetailsScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Ad8ViewModelScreen(), + child: Ad8DetailsScreen(entity: entity), + ), + ), + ); + } + + void _showDeleteDialog(Map entity) { + final parentContext = context; + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Ad8?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(parentContext, listen: false); + await vm.deleteEntity(entity['id']); + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityList( + entities: viewModel.filteredList, + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + hasMoreData: viewModel.hasMoreData, + searchQuery: viewModel.searchQuery, + onSearchChanged: (query) => viewModel.searchad8(query), + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + onTap: (entity) => _navigateToDetailsScreen(entity), + onRefresh: () => viewModel.refreshData(), + onLoadMore: () => viewModel.getAllWithPagination(), + title: 'Ad8', + onAddNew: _navigateToCreateScreen, + + + + + + + + + + + displayFields: [ + {'key': 'name', 'label': 'Name', 'type': 'text'}, + + + + + + + + + + ], + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_fields.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_fields.dart new file mode 100644 index 0000000..6de15c8 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_fields.dart @@ -0,0 +1,142 @@ +import 'package:base_project/BuilderField/shared/fields/number_field.dart'; +import 'package:base_project/BuilderField/shared/fields/password_field.dart'; +import 'package:base_project/BuilderField/shared/fields/phone_field.dart'; +import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart'; + +import '../../../../BuilderField/shared/fields/base_field.dart'; + +import '../../../../BuilderField/shared/fields/date_field.dart'; +import '../../../../BuilderField/shared/fields/datetime_field.dart'; +import '../../../../BuilderField/shared/fields/email_field.dart'; +import 'package:base_project/BuilderField/shared/fields/url_field.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/calculated_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_many_field.dart'; +import '../../../../BuilderField/shared/fields/value_list_picker_field.dart'; +import '../../../../BuilderField/shared/fields/captcha_field.dart'; +import '../../../../BuilderField/shared/fields/switch_field.dart'; +import '../../../../BuilderField/shared/fields/url_field.dart'; + +import '../../../../BuilderField/shared/fields/audio_upload_field.dart'; +import '../../../../BuilderField/shared/fields/checkbox_field.dart'; +import '../../../../BuilderField/shared/fields/file_upload_field.dart'; +import '../../../../BuilderField/shared/fields/image_upload_field.dart'; +import '../../../../BuilderField/shared/fields/radio_field.dart'; +import '../../../../BuilderField/shared/fields/video_upload_field.dart'; + +import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/data_grid_field.dart'; +import '../../../../BuilderField/shared/fields/dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/static_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/currency_field.dart'; +import '../../../../BuilderField/shared/fields/field_group_field.dart'; +import '../../../../BuilderField/shared/fields/qr_code_field.dart'; +import '../../../../BuilderField/shared/fields/barcode_field.dart'; +import '../../../../BuilderField/shared/fields/dependent_dropdown_field.dart'; + import '../Ad8_viewModel/Ad8_view_model_screen.dart';/// Field definitions for Ad8 entity +/// This defines the structure and validation for Ad8 forms +class Ad8Fields { + /// Get field definitions for Ad8 entity + static List getFields(BuildContext context) { + final viewModel = + Provider.of(context, listen: false); + return [ + // Basic Information + CustomTextField( + fieldKey: 'name', + label: 'Name', + hint: 'Enter Name', + isRequired: true, + maxLength: 50, + ), + + + + + +OneToOneRelationField( + fieldKey: 'childform', + label: 'childform', + hint: 'childform details', + relationSchema: { + 'title': 'childform', + 'box': true, + 'fields': [ + + + { + 'type': 'text', + 'label': 'Active', + 'hint': 'Enter Active', + 'path': 'childform.active', + }, + + + + + { + 'type': 'text', + 'label': 'Description', + 'hint': 'Enter Description', + 'path': 'childform.description', + }, + + + + + { + 'type': 'text', + 'label': 'Name', + 'hint': 'Enter Name', + 'path': 'childform.name', + }, + + + + ], + }, + ), + + OneToManyField( + fieldKey: 'support', + label: 'support', + fieldSchema: [ + + +{ + 'type': 'text', + 'path': 'description', + 'label': 'Description', + 'hint': 'Enter Description', + 'required': true, + }, + + + + +{ + 'type': 'text', + 'path': 'name', + 'label': 'Name', + 'hint': 'Enter Name', + 'required': true, + }, + + + + + + ], + ), + + ]; + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_update_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_update_entity_screen.dart new file mode 100644 index 0000000..cbf606f --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8View/Ad8_update_entity_screen.dart @@ -0,0 +1,81 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:provider/provider.dart'; +import '../Ad8_viewModel/Ad8_view_model_screen.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import 'Ad8_fields.dart';import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import 'package:flutter/material.dart'; +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'dart:math'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; +import 'package:flutter/services.dart'; +class Ad8UpdateEntityScreen extends StatefulWidget { + final Map entity; + + + Ad8UpdateEntityScreen({required this.entity}); + + @override + _Ad8UpdateEntityScreenState createState() => _Ad8UpdateEntityScreenState(); +} + +class _Ad8UpdateEntityScreenState extends State { + final _formKey = GlobalKey(); + +@override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { +// Start with all fields, then remove upload fields (generic filter by keys) + final Set hiddenKeys = { + + + + + + + + + + + }; + final fields = Ad8Fields.getFields(context) + .where((f) => !hiddenKeys.contains(f.fieldKey)) + .toList(); return EntityUpdateScreen( + fields: fields, + initialData: widget.entity, + onSubmit: (data) => _handleSubmit(data), + title: 'Ad8', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.updateEntity(widget.entity['id'], formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8_Repo/Ad8_repo_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8_Repo/Ad8_repo_screen.dart new file mode 100644 index 0000000..40960be --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8_Repo/Ad8_repo_screen.dart @@ -0,0 +1,115 @@ +import 'package:dio/dio.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; +import '../../../../resources/api_constants.dart'; +import 'package:base_project/data/response/api_response.dart'; + +class Ad8RepoScreen { + + final String baseUrl = ApiConstants.baseUrl; + final BaseNetworkService _helper = NetworkApiService(); + final String _endpointPath = '/Ad8/Ad8'; + + Future>>> getEntities() async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl$_endpointPath'); + print('Response received: $response'); + List> entities = const []; + if (response is List) { + entities = response + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } else if (response is Map) { + final dynamic content = response['content']; + if (content is List) { + entities = content + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } + } + return ApiResponse.success(entities); + } catch (e) { + print(' error got $e'); + return ApiResponse.error('Failed to get all entities: $e'); + } + } + + Future>>> getAllWithPagination( + int page, int size) async { + try { + final response = await _helper.getGetApiResponse( + '$baseUrl$_endpointPath/getall/page?page=$page&size=$size'); + + if (response is Map && response['content'] is List) { + final List> entities = + (response['content'] as List).cast>().toList(); + return ApiResponse.success(entities); + } else { + return ApiResponse.error('Invalid response format'); + } + } catch (e) { + return ApiResponse.error('Failed to get all without pagination: $e'); + } + } + + Future>> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to create entity: $e'); + } + } + + Future>> updateEntity( + int entityId, Map entity) async { + try { + final response = await _helper.getPutApiResponse( + '$baseUrl$_endpointPath/$entityId', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to update entity: $e'); + } + } + + Future> deleteEntity(int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId'); + return ApiResponse.success(null); + } catch (e) { + return ApiResponse.error('Failed to delete entity: $e'); + } + } + + + Future updatesupport(int entityId, Map entity) async { + try { + String apiUrl = "$baseUrl/Support/Support_update/$entityId"; + final response = await _helper.getPutApiResponse(apiUrl,entity); + return response; + } catch (e) { + throw Exception('Failed to Update Support: $e'); + } + } + + Future updatechildform(int entityId, Map entity) async { + try { + String apiUrl = "$baseUrl/Childform/Childform_update/$entityId"; + final response = await _helper.getPutApiResponse(apiUrl,entity); + return response; + } catch (e) { + throw Exception('Failed to Update Childform: $e'); + } + } + + + + + +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8_viewModel/Ad8_view_model_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8_viewModel/Ad8_view_model_screen.dart new file mode 100644 index 0000000..0e4e4d7 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad8/Ad8_viewModel/Ad8_view_model_screen.dart @@ -0,0 +1,358 @@ +import 'package:base_project/data/response/status.dart'; +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/utils/entity_field_store.dart'; +import 'package:flutter/material.dart'; +import '../Ad8_Repo/Ad8_repo_screen.dart'; + +class Ad8ViewModelScreen extends ChangeNotifier{ + final Ad8RepoScreen repo = Ad8RepoScreen(); + + + // State variables + List> _ad8List = []; + List> _filteredList = []; + bool _isLoading = false; + String _errorMessage = ''; + int _currentPage = 0; + int _pageSize = 10; + bool _hasMoreData = true; + String _searchQuery = ''; + + // Getters + List> get ad8List => _ad8List; + List> get filteredList => _filteredList; + bool get isLoading => _isLoading; + String get errorMessage => _errorMessage; + bool get hasMoreData => _hasMoreData; + String get searchQuery => _searchQuery; + + // Set loading state + void _setLoading(bool loading) { + _isLoading = loading; + notifyListeners(); + } + + // Set error message + void _setError(String error) { + _errorMessage = error; + notifyListeners(); + } + + // Clear error + void clearError() { + _errorMessage = ''; + notifyListeners(); + } + + // Get ad8 list + Future getEntities() async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.getEntities(); + + if (response.status == Status.SUCCESS) { + _ad8List = response.data ?? []; + _filteredList = List.from(_ad8List); + _currentPage = 0; + _hasMoreData = true; + } else { + _setError(response.message ?? 'Failed to fetch ad8 list'); + } + } catch (e) { + _setError('Failed to fetch ad8 list: $e'); + } finally { + _setLoading(false); + } + } + + // Get ad8 list with pagination + Future getAllWithPagination({bool refresh = false}) async { + if (refresh) { + _currentPage = 0; + _ad8List.clear(); + _filteredList.clear(); + _hasMoreData = true; + } + + if (!_hasMoreData || _isLoading) return; + + _setLoading(true); + _setError(''); + + try { + final response = await repo.getAllWithPagination(_currentPage, _pageSize); + + if (response.status == Status.SUCCESS) { + final newItems = response.data ?? []; + + if (refresh) { + _ad8List = newItems; + } else { + _ad8List.addAll(newItems); + } + + _filteredList = List.from(_ad8List); + _currentPage++; + + // Check if we have more data + _hasMoreData = newItems.length == _pageSize; + } else { + _setError(response.message ?? 'Failed to fetch Ad8 list'); + } + } catch (e) { + _setError('Failed to fetch ad8 list: $e'); + } finally { + _setLoading(false); + } + } + + + + + + + + + + + + // Create Ad8 + Future createEntity(Map entity) async { + _setLoading(true); + _setError(''); + + try { + + + + + + + + + + + final response = await repo.createEntity(entity); + + if (response.status == Status.SUCCESS) { +// Get the response ID for image upload + + final responseId = response.data!['id'].toString(); + + + + + + + + + + + ToastMessageUtil.showToast( + message: 'ad8 created successfully', + toastType: ToastType.success, + ); + + // Refresh the list + await getEntities(); + + + + + + + + + + + return true; + } else { + _setError(response.message ?? 'Failed to create Ad8'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to create Ad8', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to create ad8: $e'); + ToastMessageUtil.showToast( + message: 'Failed to create Ad8: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Update ad8 + Future updateEntity(int id, Map entity) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.updateEntity(id, entity); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Ad8 updated successfully', + toastType: ToastType.success, + ); + + // Update the item in the list + final index = _ad8List.indexWhere((item) => item['id'] == id); + if (index != -1) { + _ad8List[index] = response.data!; + _filteredList = List.from(_ad8List); + notifyListeners(); + } + return true; + } else { + _setError(response.message ?? 'Failed to update Ad8'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to update Ad8', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to update ad8: $e'); + ToastMessageUtil.showToast( + message: 'Failed to update Ad8: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Delete ad8 + Future deleteEntity(int id) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.deleteEntity(id); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Ad8 deleted successfully', + toastType: ToastType.success, + ); + + // Remove the item from the list + _ad8List.removeWhere((item) => item['id'] == id); + _filteredList = List.from(_ad8List); + notifyListeners(); + return true; + } else { + _setError(response.message ?? 'Failed to delete Ad8'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to delete Ad8', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to delete ad8: $e'); + ToastMessageUtil.showToast( + message: 'Failed to delete Ad8: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Search ad8 + void searchad8(String query) { + _searchQuery = query; + + if (query.isEmpty) { + _filteredList = List.from(_ad8List); + } else { + _filteredList = _ad8List.where((item) { + return + + +(item['name']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + + + + + +(item['childform']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['support']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) + + +; + }).toList(); + } + notifyListeners(); + } + + // Clear search + void clearSearch() { + _searchQuery = ''; + _filteredList = List.from(_ad8List); + notifyListeners(); + } + + // Refresh data + Future refreshData() async { + await getAllWithPagination(refresh: true); + } + + + +Future updateSupport(int entityId, Map entity) async { + try { + + print( 'Entity is $entity'); + + await repo.updatesupport(entityId, entity) ; + + } catch (e) { + throw Exception('Failed to Update support: $e'); + } +} + + + + +Future updateChildform(int entityId, Map entity) async { + try { + + print( 'Entity is $entity'); + + await repo.updatechildform(entityId, entity) ; + + } catch (e) { + throw Exception('Failed to Update childform: $e'); + } +} + + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_api_service.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_api_service.dart new file mode 100644 index 0000000..81d5578 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_api_service.dart @@ -0,0 +1,80 @@ +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../resources/api_constants.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; + +class Ad9ApiService { + final String baseUrl = ApiConstants.baseUrl; + + final BaseNetworkService _helper = NetworkApiService(); + + + + Future>> getEntities() async { + + try { + final response = await _helper.getGetApiResponse('$baseUrl/Ad9/Ad9'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all entities: $e'); + } + } +Future>> getAllWithPagination( + int page, int size) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/Ad9/Ad9/getall/page?page=$page&size=$size'); + final entities = + (response['content'] as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all without pagination: $e'); + } + } + Future> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl/Ad9/Ad9', entity); + + print(entity); + + // Assuming the response is a Map + Map responseData = response; + + return responseData; + } catch (e) { + throw Exception('Failed to create entity: $e'); + } + } + + + + + + Future updateEntity( int entityId, Map entity) async { + try { + await _helper.getPutApiResponse('$baseUrl/Ad9/Ad9/$entityId', + entity); print(entity); + + } catch (e) { + throw Exception('Failed to update entity: $e'); + } + } + + Future deleteEntity( int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl/Ad9/Ad9/$entityId'); + } catch (e) { + throw Exception('Failed to delete entity: $e'); + } + } + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_create_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_create_entity_screen.dart new file mode 100644 index 0000000..5b04a8c --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_create_entity_screen.dart @@ -0,0 +1,80 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:provider/provider.dart'; +import '../Ad9_viewModel/Ad9_view_model_screen.dart'; +import 'Ad9_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import '../../../../widgets/custom_dropdown_field.dart'; +import 'dart:math'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:intl/intl.dart'; + +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:http/http.dart' as http; +import 'package:flutter/services.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart' +;import 'package:multi_select_flutter/multi_select_flutter.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:video_player/video_player.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:lottie/lottie.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import 'dart:io'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; + + + + +class Ad9CreateEntityScreen extends StatefulWidget { + const Ad9CreateEntityScreen({super.key}); + + @override + _Ad9CreateEntityScreenState createState() => _Ad9CreateEntityScreenState(); +} + +class _Ad9CreateEntityScreenState extends State { + +final Map formData = {}; + final _formKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityCreateScreen( + fields: Ad9Fields.getFields(context), + onSubmit: (data) => _handleSubmit(data), + title: 'Ad9', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.createEntity(formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_details_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_details_screen.dart new file mode 100644 index 0000000..41af37d --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_details_screen.dart @@ -0,0 +1,88 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../../../BuilderField/shared/ui/entity_details.dart'; +import '../Ad9_viewModel/Ad9_view_model_screen.dart'; +import 'Ad9_update_entity_screen.dart'; + +class Ad9DetailsScreen extends StatefulWidget { + final Map entity; + + const Ad9DetailsScreen({ + super.key, + required this.entity, + }); + + @override + State createState() => _Ad9DetailsScreenState(); +} + +class _Ad9DetailsScreenState extends State { + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Ad9ViewModelScreen(), + child: Ad9UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + // Refresh the details screen with updated data + setState(() {}); + }); + } + + void _showDeleteDialog(Map entity) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Ad9?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(context, listen: false); + final success = await vm.deleteEntity(entity['id']); + if (success && mounted) { + Navigator.pop(context); // Go back to list + } + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityDetails( + entity: widget.entity, + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + title: 'Ad9', + displayFields: [ + {'key': 'name', 'label': 'Name', 'type': 'text'}, + + {'key': 'approved_field', 'label': 'Approved Field', 'type': 'approved'}, + + ], + isLoading: viewModel.isLoading, + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_entity_list_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_entity_list_screen.dart new file mode 100644 index 0000000..daaa2b6 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_entity_list_screen.dart @@ -0,0 +1,153 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_list.dart'; +import 'Ad9_create_entity_screen.dart'; +import 'Ad9_update_entity_screen.dart'; +import '../Ad9_viewModel/Ad9_view_model_screen.dart'; +import 'Ad9_details_screen.dart';import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_to_text.dart' as stt; +import '../../../../theme/app_style.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../widgets/custom_icon_button.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../theme/app_decoration.dart'; +import 'package:multi_select_flutter/multi_select_flutter.dart'; +import '../../../../Reuseable/reusable_text_field.dart'; +import 'package:provider/provider.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/fields/realted_entity_insert_field.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class Ad9_entity_list_screen extends StatefulWidget { + static const String routeName = '/entity-list'; + + @override + _Ad9_entity_list_screenState createState() => _Ad9_entity_list_screenState(); +} + +class _Ad9_entity_list_screenState extends State { + @override + void initState() { + super.initState(); + _loadData(); + } + + void _loadData() { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + final vm = Provider.of(context, listen: false); + vm.getAllWithPagination(refresh: true); + } + }); + } + + void _navigateToCreateScreen() { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Ad9ViewModelScreen(), + child: const Ad9CreateEntityScreen(), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Ad9ViewModelScreen(), + child: Ad9UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToDetailsScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Ad9ViewModelScreen(), + child: Ad9DetailsScreen(entity: entity), + ), + ), + ); + } + + void _showDeleteDialog(Map entity) { + final parentContext = context; + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Ad9?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(parentContext, listen: false); + await vm.deleteEntity(entity['id']); + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityList( + entities: viewModel.filteredList, + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + hasMoreData: viewModel.hasMoreData, + searchQuery: viewModel.searchQuery, + onSearchChanged: (query) => viewModel.searchad9(query), + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + onTap: (entity) => _navigateToDetailsScreen(entity), + onRefresh: () => viewModel.refreshData(), + onLoadMore: () => viewModel.getAllWithPagination(), + title: 'Ad9', + onAddNew: _navigateToCreateScreen, + + + + + displayFields: [ + {'key': 'name', 'label': 'Name', 'type': 'text'}, + + {'key': 'approved_field', 'label': 'Approved Field', 'type': 'approved'}, + + ], + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_fields.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_fields.dart new file mode 100644 index 0000000..c1a0135 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_fields.dart @@ -0,0 +1,71 @@ +import 'package:base_project/BuilderField/shared/fields/number_field.dart'; +import 'package:base_project/BuilderField/shared/fields/password_field.dart'; +import 'package:base_project/BuilderField/shared/fields/phone_field.dart'; +import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart'; + +import '../../../../BuilderField/shared/fields/base_field.dart'; + +import '../../../../BuilderField/shared/fields/date_field.dart'; +import '../../../../BuilderField/shared/fields/datetime_field.dart'; +import '../../../../BuilderField/shared/fields/email_field.dart'; +import 'package:base_project/BuilderField/shared/fields/url_field.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/calculated_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_many_field.dart'; +import '../../../../BuilderField/shared/fields/value_list_picker_field.dart'; +import '../../../../BuilderField/shared/fields/captcha_field.dart'; +import '../../../../BuilderField/shared/fields/switch_field.dart'; +import '../../../../BuilderField/shared/fields/url_field.dart'; + +import '../../../../BuilderField/shared/fields/audio_upload_field.dart'; +import '../../../../BuilderField/shared/fields/checkbox_field.dart'; +import '../../../../BuilderField/shared/fields/file_upload_field.dart'; +import '../../../../BuilderField/shared/fields/image_upload_field.dart'; +import '../../../../BuilderField/shared/fields/radio_field.dart'; +import '../../../../BuilderField/shared/fields/video_upload_field.dart'; + +import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/data_grid_field.dart'; +import '../../../../BuilderField/shared/fields/dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/static_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/currency_field.dart'; +import '../../../../BuilderField/shared/fields/field_group_field.dart'; +import '../../../../BuilderField/shared/fields/qr_code_field.dart'; +import '../../../../BuilderField/shared/fields/barcode_field.dart'; +import '../../../../BuilderField/shared/fields/dependent_dropdown_field.dart'; + import '../Ad9_viewModel/Ad9_view_model_screen.dart';/// Field definitions for Ad9 entity +/// This defines the structure and validation for Ad9 forms +class Ad9Fields { + /// Get field definitions for Ad9 entity + static List getFields(BuildContext context) { + final viewModel = + Provider.of(context, listen: false); + return [ + // Basic Information + CustomTextField( + fieldKey: 'name', + label: 'Name', + hint: 'Enter Name', + isRequired: true, + maxLength: 50, + ), + + CustomTextField( + fieldKey: 'approved_field', + label: 'Approved Field', + hint: 'Enter Approved Field', + isRequired: true, + maxLength: 50, + ), + + ]; + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_update_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_update_entity_screen.dart new file mode 100644 index 0000000..067add8 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9View/Ad9_update_entity_screen.dart @@ -0,0 +1,75 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:provider/provider.dart'; +import '../Ad9_viewModel/Ad9_view_model_screen.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import 'Ad9_fields.dart';import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import 'package:flutter/material.dart'; +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'dart:math'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; +import 'package:flutter/services.dart'; +class Ad9UpdateEntityScreen extends StatefulWidget { + final Map entity; + + + Ad9UpdateEntityScreen({required this.entity}); + + @override + _Ad9UpdateEntityScreenState createState() => _Ad9UpdateEntityScreenState(); +} + +class _Ad9UpdateEntityScreenState extends State { + final _formKey = GlobalKey(); + +@override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { +// Start with all fields, then remove upload fields (generic filter by keys) + final Set hiddenKeys = { + + + + + }; + final fields = Ad9Fields.getFields(context) + .where((f) => !hiddenKeys.contains(f.fieldKey)) + .toList(); return EntityUpdateScreen( + fields: fields, + initialData: widget.entity, + onSubmit: (data) => _handleSubmit(data), + title: 'Ad9', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.updateEntity(widget.entity['id'], formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9_Repo/Ad9_repo_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9_Repo/Ad9_repo_screen.dart new file mode 100644 index 0000000..9832d37 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9_Repo/Ad9_repo_screen.dart @@ -0,0 +1,93 @@ +import 'package:dio/dio.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; +import '../../../../resources/api_constants.dart'; +import 'package:base_project/data/response/api_response.dart'; + +class Ad9RepoScreen { + + final String baseUrl = ApiConstants.baseUrl; + final BaseNetworkService _helper = NetworkApiService(); + final String _endpointPath = '/Ad9/Ad9'; + + Future>>> getEntities() async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl$_endpointPath'); + print('Response received: $response'); + List> entities = const []; + if (response is List) { + entities = response + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } else if (response is Map) { + final dynamic content = response['content']; + if (content is List) { + entities = content + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } + } + return ApiResponse.success(entities); + } catch (e) { + print(' error got $e'); + return ApiResponse.error('Failed to get all entities: $e'); + } + } + + Future>>> getAllWithPagination( + int page, int size) async { + try { + final response = await _helper.getGetApiResponse( + '$baseUrl$_endpointPath/getall/page?page=$page&size=$size'); + + if (response is Map && response['content'] is List) { + final List> entities = + (response['content'] as List).cast>().toList(); + return ApiResponse.success(entities); + } else { + return ApiResponse.error('Invalid response format'); + } + } catch (e) { + return ApiResponse.error('Failed to get all without pagination: $e'); + } + } + + Future>> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to create entity: $e'); + } + } + + Future>> updateEntity( + int entityId, Map entity) async { + try { + final response = await _helper.getPutApiResponse( + '$baseUrl$_endpointPath/$entityId', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to update entity: $e'); + } + } + + Future> deleteEntity(int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId'); + return ApiResponse.success(null); + } catch (e) { + return ApiResponse.error('Failed to delete entity: $e'); + } + } + + + + +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9_viewModel/Ad9_view_model_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9_viewModel/Ad9_view_model_screen.dart new file mode 100644 index 0000000..49f4c31 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Ad9/Ad9_viewModel/Ad9_view_model_screen.dart @@ -0,0 +1,292 @@ +import 'package:base_project/data/response/status.dart'; +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/utils/entity_field_store.dart'; +import 'package:flutter/material.dart'; +import '../Ad9_Repo/Ad9_repo_screen.dart'; + +class Ad9ViewModelScreen extends ChangeNotifier{ + final Ad9RepoScreen repo = Ad9RepoScreen(); + + + // State variables + List> _ad9List = []; + List> _filteredList = []; + bool _isLoading = false; + String _errorMessage = ''; + int _currentPage = 0; + int _pageSize = 10; + bool _hasMoreData = true; + String _searchQuery = ''; + + // Getters + List> get ad9List => _ad9List; + List> get filteredList => _filteredList; + bool get isLoading => _isLoading; + String get errorMessage => _errorMessage; + bool get hasMoreData => _hasMoreData; + String get searchQuery => _searchQuery; + + // Set loading state + void _setLoading(bool loading) { + _isLoading = loading; + notifyListeners(); + } + + // Set error message + void _setError(String error) { + _errorMessage = error; + notifyListeners(); + } + + // Clear error + void clearError() { + _errorMessage = ''; + notifyListeners(); + } + + // Get ad9 list + Future getEntities() async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.getEntities(); + + if (response.status == Status.SUCCESS) { + _ad9List = response.data ?? []; + _filteredList = List.from(_ad9List); + _currentPage = 0; + _hasMoreData = true; + } else { + _setError(response.message ?? 'Failed to fetch ad9 list'); + } + } catch (e) { + _setError('Failed to fetch ad9 list: $e'); + } finally { + _setLoading(false); + } + } + + // Get ad9 list with pagination + Future getAllWithPagination({bool refresh = false}) async { + if (refresh) { + _currentPage = 0; + _ad9List.clear(); + _filteredList.clear(); + _hasMoreData = true; + } + + if (!_hasMoreData || _isLoading) return; + + _setLoading(true); + _setError(''); + + try { + final response = await repo.getAllWithPagination(_currentPage, _pageSize); + + if (response.status == Status.SUCCESS) { + final newItems = response.data ?? []; + + if (refresh) { + _ad9List = newItems; + } else { + _ad9List.addAll(newItems); + } + + _filteredList = List.from(_ad9List); + _currentPage++; + + // Check if we have more data + _hasMoreData = newItems.length == _pageSize; + } else { + _setError(response.message ?? 'Failed to fetch Ad9 list'); + } + } catch (e) { + _setError('Failed to fetch ad9 list: $e'); + } finally { + _setLoading(false); + } + } + + + + + + // Create Ad9 + Future createEntity(Map entity) async { + _setLoading(true); + _setError(''); + + try { + + + + + final response = await repo.createEntity(entity); + + if (response.status == Status.SUCCESS) { +// Get the response ID for image upload + + final responseId = response.data!['id'].toString(); + + + + + ToastMessageUtil.showToast( + message: 'ad9 created successfully', + toastType: ToastType.success, + ); + + // Refresh the list + await getEntities(); + + + + + return true; + } else { + _setError(response.message ?? 'Failed to create Ad9'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to create Ad9', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to create ad9: $e'); + ToastMessageUtil.showToast( + message: 'Failed to create Ad9: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Update ad9 + Future updateEntity(int id, Map entity) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.updateEntity(id, entity); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Ad9 updated successfully', + toastType: ToastType.success, + ); + + // Update the item in the list + final index = _ad9List.indexWhere((item) => item['id'] == id); + if (index != -1) { + _ad9List[index] = response.data!; + _filteredList = List.from(_ad9List); + notifyListeners(); + } + return true; + } else { + _setError(response.message ?? 'Failed to update Ad9'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to update Ad9', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to update ad9: $e'); + ToastMessageUtil.showToast( + message: 'Failed to update Ad9: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Delete ad9 + Future deleteEntity(int id) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.deleteEntity(id); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Ad9 deleted successfully', + toastType: ToastType.success, + ); + + // Remove the item from the list + _ad9List.removeWhere((item) => item['id'] == id); + _filteredList = List.from(_ad9List); + notifyListeners(); + return true; + } else { + _setError(response.message ?? 'Failed to delete Ad9'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to delete Ad9', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to delete ad9: $e'); + ToastMessageUtil.showToast( + message: 'Failed to delete Ad9: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Search ad9 + void searchad9(String query) { + _searchQuery = query; + + if (query.isEmpty) { + _filteredList = List.from(_ad9List); + } else { + _filteredList = _ad9List.where((item) { + return + + +(item['name']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['approved_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) + + +; + }).toList(); + } + notifyListeners(); + } + + // Clear search + void clearSearch() { + _searchQuery = ''; + _filteredList = List.from(_ad9List); + notifyListeners(); + } + + // Refresh data + Future refreshData() async { + await getAllWithPagination(refresh: true); + } + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_api_service.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_api_service.dart new file mode 100644 index 0000000..f8b7710 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_api_service.dart @@ -0,0 +1,120 @@ +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../resources/api_constants.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; + +class Adv1ApiService { + final String baseUrl = ApiConstants.baseUrl; + + final BaseNetworkService _helper = NetworkApiService(); + + + + Future>> getEntities() async { + + try { + final response = await _helper.getGetApiResponse('$baseUrl/Adv1/Adv1'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all entities: $e'); + } + } +Future>> getAllWithPagination( + int page, int size) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/Adv1/Adv1/getall/page?page=$page&size=$size'); + final entities = + (response['content'] as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all without pagination: $e'); + } + } + Future> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl/Adv1/Adv1', entity); + + print(entity); + + // Assuming the response is a Map + Map responseData = response; + + return responseData; + } catch (e) { + throw Exception('Failed to create entity: $e'); + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + Future updateEntity( int entityId, Map entity) async { + try { + await _helper.getPutApiResponse('$baseUrl/Adv1/Adv1/$entityId', + entity); print(entity); + + } catch (e) { + throw Exception('Failed to update entity: $e'); + } + } + + Future deleteEntity( int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl/Adv1/Adv1/$entityId'); + } catch (e) { + throw Exception('Failed to delete entity: $e'); + } + } + + + + + + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_create_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_create_entity_screen.dart new file mode 100644 index 0000000..8e11c41 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_create_entity_screen.dart @@ -0,0 +1,100 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:provider/provider.dart'; +import '../Adv1_viewModel/Adv1_view_model_screen.dart'; +import 'Adv1_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import '../../../../widgets/custom_dropdown_field.dart'; +import 'dart:math'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:intl/intl.dart'; + +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:http/http.dart' as http; +import 'package:flutter/services.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart' +;import 'package:multi_select_flutter/multi_select_flutter.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:video_player/video_player.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:lottie/lottie.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import 'dart:io'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; + + + + + + + + + + + + + + + + + + + + + + + + +class Adv1CreateEntityScreen extends StatefulWidget { + const Adv1CreateEntityScreen({super.key}); + + @override + _Adv1CreateEntityScreenState createState() => _Adv1CreateEntityScreenState(); +} + +class _Adv1CreateEntityScreenState extends State { + +final Map formData = {}; + final _formKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityCreateScreen( + fields: Adv1Fields.getFields(context), + onSubmit: (data) => _handleSubmit(data), + title: 'Adv1', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.createEntity(formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_details_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_details_screen.dart new file mode 100644 index 0000000..8b72532 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_details_screen.dart @@ -0,0 +1,128 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../../../BuilderField/shared/ui/entity_details.dart'; +import '../Adv1_viewModel/Adv1_view_model_screen.dart'; +import 'Adv1_update_entity_screen.dart'; + +class Adv1DetailsScreen extends StatefulWidget { + final Map entity; + + const Adv1DetailsScreen({ + super.key, + required this.entity, + }); + + @override + State createState() => _Adv1DetailsScreenState(); +} + +class _Adv1DetailsScreenState extends State { + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Adv1ViewModelScreen(), + child: Adv1UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + // Refresh the details screen with updated data + setState(() {}); + }); + } + + void _showDeleteDialog(Map entity) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Adv1?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(context, listen: false); + final success = await vm.deleteEntity(entity['id']); + if (success && mounted) { + Navigator.pop(context); // Go back to list + } + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityDetails( + entity: widget.entity, + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + title: 'Adv1', + displayFields: [ + {'key': 'ismale', 'label': 'ismale', 'type': 'radio'}, + + {'key': 'idfemale', 'label': 'idfemale', 'type': 'radio'}, + + + + {'key': 'test1', 'label': 'test1', 'type': 'checkbox'}, + + + + {'key': 'test2', 'label': 'test2', 'type': 'checkbox'}, + + + + + + {'key': 't1', 'label': 't1', 'type': 'checkbox'}, + + + + {'key': 't2', 'label': 't2', 'type': 'checkbox'}, + + + + {'key': 't4', 'label': 't4', 'type': 'checkbox'}, + + + + + + + + + + + + + + + + + + + + ], + isLoading: viewModel.isLoading, + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_entity_list_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_entity_list_screen.dart new file mode 100644 index 0000000..26832e0 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_entity_list_screen.dart @@ -0,0 +1,213 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_list.dart'; +import 'Adv1_create_entity_screen.dart'; +import 'Adv1_update_entity_screen.dart'; +import '../Adv1_viewModel/Adv1_view_model_screen.dart'; +import 'Adv1_details_screen.dart';import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_to_text.dart' as stt; +import '../../../../theme/app_style.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../widgets/custom_icon_button.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../theme/app_decoration.dart'; +import 'package:multi_select_flutter/multi_select_flutter.dart'; +import '../../../../Reuseable/reusable_text_field.dart'; +import 'package:provider/provider.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/fields/realted_entity_insert_field.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class Adv1_entity_list_screen extends StatefulWidget { + static const String routeName = '/entity-list'; + + @override + _Adv1_entity_list_screenState createState() => _Adv1_entity_list_screenState(); +} + +class _Adv1_entity_list_screenState extends State { + @override + void initState() { + super.initState(); + _loadData(); + } + + void _loadData() { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + final vm = Provider.of(context, listen: false); + vm.getAllWithPagination(refresh: true); + } + }); + } + + void _navigateToCreateScreen() { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Adv1ViewModelScreen(), + child: const Adv1CreateEntityScreen(), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Adv1ViewModelScreen(), + child: Adv1UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToDetailsScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Adv1ViewModelScreen(), + child: Adv1DetailsScreen(entity: entity), + ), + ), + ); + } + + void _showDeleteDialog(Map entity) { + final parentContext = context; + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Adv1?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(parentContext, listen: false); + await vm.deleteEntity(entity['id']); + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityList( + entities: viewModel.filteredList, + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + hasMoreData: viewModel.hasMoreData, + searchQuery: viewModel.searchQuery, + onSearchChanged: (query) => viewModel.searchadv1(query), + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + onTap: (entity) => _navigateToDetailsScreen(entity), + onRefresh: () => viewModel.refreshData(), + onLoadMore: () => viewModel.getAllWithPagination(), + title: 'Adv1', + onAddNew: _navigateToCreateScreen, + + + + + + + + + + + + + + + + + + + + + + + + + displayFields: [ + {'key': 'ismale', 'label': 'ismale', 'type': 'radio'}, + + {'key': 'idfemale', 'label': 'idfemale', 'type': 'radio'}, + + + + {'key': 'test1', 'label': 'test1', 'type': 'checkbox'}, + + + + {'key': 'test2', 'label': 'test2', 'type': 'checkbox'}, + + + + + + {'key': 't1', 'label': 't1', 'type': 'checkbox'}, + + + + {'key': 't2', 'label': 't2', 'type': 'checkbox'}, + + + + {'key': 't4', 'label': 't4', 'type': 'checkbox'}, + + + + + + + + + + + + + + + + + + + + ], + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_fields.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_fields.dart new file mode 100644 index 0000000..c064bb9 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_fields.dart @@ -0,0 +1,197 @@ +import 'package:base_project/BuilderField/shared/fields/number_field.dart'; +import 'package:base_project/BuilderField/shared/fields/password_field.dart'; +import 'package:base_project/BuilderField/shared/fields/phone_field.dart'; +import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart'; + +import '../../../../BuilderField/shared/fields/base_field.dart'; + +import '../../../../BuilderField/shared/fields/date_field.dart'; +import '../../../../BuilderField/shared/fields/datetime_field.dart'; +import '../../../../BuilderField/shared/fields/email_field.dart'; +import 'package:base_project/BuilderField/shared/fields/url_field.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/calculated_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_many_field.dart'; +import '../../../../BuilderField/shared/fields/value_list_picker_field.dart'; +import '../../../../BuilderField/shared/fields/captcha_field.dart'; +import '../../../../BuilderField/shared/fields/switch_field.dart'; +import '../../../../BuilderField/shared/fields/url_field.dart'; + +import '../../../../BuilderField/shared/fields/audio_upload_field.dart'; +import '../../../../BuilderField/shared/fields/checkbox_field.dart'; +import '../../../../BuilderField/shared/fields/file_upload_field.dart'; +import '../../../../BuilderField/shared/fields/image_upload_field.dart'; +import '../../../../BuilderField/shared/fields/radio_field.dart'; +import '../../../../BuilderField/shared/fields/video_upload_field.dart'; + +import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/data_grid_field.dart'; +import '../../../../BuilderField/shared/fields/dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/static_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/currency_field.dart'; +import '../../../../BuilderField/shared/fields/field_group_field.dart'; +import '../../../../BuilderField/shared/fields/qr_code_field.dart'; +import '../../../../BuilderField/shared/fields/barcode_field.dart'; +import '../../../../BuilderField/shared/fields/dependent_dropdown_field.dart'; + import '../Adv1_viewModel/Adv1_view_model_screen.dart';/// Field definitions for Adv1 entity +/// This defines the structure and validation for Adv1 forms +class Adv1Fields { + /// Get field definitions for Adv1 entity + static List getFields(BuildContext context) { + final viewModel = + Provider.of(context, listen: false); + return [ + // Basic Information +RadioField( + fieldKey: 'ismale', + label: 'ismale', + options: const [ + + +'no', + + + + +'other', + + + + +'yes', + + + + +], + isRequired: false, + ), + +RadioField( + fieldKey: 'idfemale', + label: 'idfemale', + options: const [ + + +'no', + + + + +'other', + + + + +'yes', + + + + +], + isRequired: false, + ), + + + + CheckboxField( + fieldKey: 'test1', + label: 'Test1', + isRequired: false, + ), + + + + CheckboxField( + fieldKey: 'test2', + label: 'Test2', + isRequired: false, + ), + + + + + + CheckboxField( + fieldKey: 't1', + label: 'T1', + isRequired: false, + ), + + + + CheckboxField( + fieldKey: 't2', + label: 'T2', + isRequired: false, + ), + + + + CheckboxField( + fieldKey: 't4', + label: 'T4', + isRequired: false, + ), + + + +FileUploadField( + fieldKey: 'fileupload_field', + label: 'Fileupload Field', + isRequired: false, + ), + +FileUploadField( + fieldKey: 'fileupload_field2', + label: 'Fileupload Field2', + isRequired: false, + ), + +ImageUploadField( + fieldKey: 'imageupload_field', + label: 'Imageupload Field', + isRequired: false, + ), + +ImageUploadField( + fieldKey: 'imageupload_field2', + label: 'Imageupload Field2', + isRequired: false, + ), + +AudioUploadField( + fieldKey: 'audio_field', + label: 'audio Field', + isRequired: false, + ), + +AudioUploadField( + fieldKey: 'audio_field2', + label: 'audio Field2', + isRequired: false, + ), + +VideoUploadField( + fieldKey: 'video_field', + label: 'video Field', + isRequired: false, + ), + +VideoUploadField( + fieldKey: 'video_field2', + label: 'video Field2', + isRequired: false, + ), + + ]; + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_update_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_update_entity_screen.dart new file mode 100644 index 0000000..f3365c6 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1View/Adv1_update_entity_screen.dart @@ -0,0 +1,95 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:provider/provider.dart'; +import '../Adv1_viewModel/Adv1_view_model_screen.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import 'Adv1_fields.dart';import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import 'package:flutter/material.dart'; +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'dart:math'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; +import 'package:flutter/services.dart'; +class Adv1UpdateEntityScreen extends StatefulWidget { + final Map entity; + + + Adv1UpdateEntityScreen({required this.entity}); + + @override + _Adv1UpdateEntityScreenState createState() => _Adv1UpdateEntityScreenState(); +} + +class _Adv1UpdateEntityScreenState extends State { + final _formKey = GlobalKey(); + +@override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { +// Start with all fields, then remove upload fields (generic filter by keys) + final Set hiddenKeys = { + + + + + + + + +'fileupload_field', + +'fileupload_field2', + +'imageupload_field', + +'imageupload_field2', + +'audio_field', + +'audio_field2', + +'video_field', + +'video_field2', + + }; + final fields = Adv1Fields.getFields(context) + .where((f) => !hiddenKeys.contains(f.fieldKey)) + .toList(); return EntityUpdateScreen( + fields: fields, + initialData: widget.entity, + onSubmit: (data) => _handleSubmit(data), + title: 'Adv1', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.updateEntity(widget.entity['id'], formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1_Repo/Adv1_repo_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1_Repo/Adv1_repo_screen.dart new file mode 100644 index 0000000..85526ff --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1_Repo/Adv1_repo_screen.dart @@ -0,0 +1,185 @@ +import 'package:dio/dio.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; +import '../../../../resources/api_constants.dart'; +import 'package:base_project/data/response/api_response.dart'; + +class Adv1RepoScreen { + + final String baseUrl = ApiConstants.baseUrl; + final BaseNetworkService _helper = NetworkApiService(); + final String _endpointPath = '/Adv1/Adv1'; + + Future>>> getEntities() async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl$_endpointPath'); + print('Response received: $response'); + List> entities = const []; + if (response is List) { + entities = response + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } else if (response is Map) { + final dynamic content = response['content']; + if (content is List) { + entities = content + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } + } + return ApiResponse.success(entities); + } catch (e) { + print(' error got $e'); + return ApiResponse.error('Failed to get all entities: $e'); + } + } + + Future>>> getAllWithPagination( + int page, int size) async { + try { + final response = await _helper.getGetApiResponse( + '$baseUrl$_endpointPath/getall/page?page=$page&size=$size'); + + if (response is Map && response['content'] is List) { + final List> entities = + (response['content'] as List).cast>().toList(); + return ApiResponse.success(entities); + } else { + return ApiResponse.error('Invalid response format'); + } + } catch (e) { + return ApiResponse.error('Failed to get all without pagination: $e'); + } + } + + Future>> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to create entity: $e'); + } + } + + Future>> updateEntity( + int entityId, Map entity) async { + try { + final response = await _helper.getPutApiResponse( + '$baseUrl$_endpointPath/$entityId', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to update entity: $e'); + } + } + + Future> deleteEntity(int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId'); + return ApiResponse.success(null); + } catch (e) { + return ApiResponse.error('Failed to delete entity: $e'); + } + } + + + + + + + + + Future fileupload_fieldUpload( + String ref, String refTableNmae, FormData entity) async { + try { + String apiUrl = "$baseUrl/FileUpload/Uploadeddocs/$ref/$refTableNmae"; + final response = await _helper.getPostApiResponse(apiUrl, entity); + return response; + } catch (e) { + throw Exception('Failed to Upload File: $e'); + } + } + + Future fileupload_field2Upload( + String ref, String refTableNmae, FormData entity) async { + try { + String apiUrl = "$baseUrl/FileUpload/Uploadeddocs/$ref/$refTableNmae"; + final response = await _helper.getPostApiResponse(apiUrl, entity); + return response; + } catch (e) { + throw Exception('Failed to Upload File: $e'); + } + } + + Future imageupload_fieldUpload( + String ref, String refTableNmae, FormData entity) async { + try { + String apiUrl = "$baseUrl/FileUpload/Uploadeddocs/$ref/$refTableNmae"; + final response = await _helper.getPostApiResponse(apiUrl, entity); + return response; + } catch (e) { + throw Exception('Failed to Upload Imageupload Field: $e'); + } + } + + Future imageupload_field2Upload( + String ref, String refTableNmae, FormData entity) async { + try { + String apiUrl = "$baseUrl/FileUpload/Uploadeddocs/$ref/$refTableNmae"; + final response = await _helper.getPostApiResponse(apiUrl, entity); + return response; + } catch (e) { + throw Exception('Failed to Upload Imageupload Field2: $e'); + } + } + + Future audio_fieldUpload( + String ref, String refTableNmae, FormData entity) async { + try { + String apiUrl = "$baseUrl/FileUpload/Uploadeddocs/$ref/$refTableNmae"; + final response = await _helper.getPostApiResponse(apiUrl, entity); + return response; + } catch (e) { + throw Exception('Failed to Upload File: $e'); + } + } + + Future audio_field2Upload( + String ref, String refTableNmae, FormData entity) async { + try { + String apiUrl = "$baseUrl/FileUpload/Uploadeddocs/$ref/$refTableNmae"; + final response = await _helper.getPostApiResponse(apiUrl, entity); + return response; + } catch (e) { + throw Exception('Failed to Upload File: $e'); + } + } + + Future video_fieldUpload( + String ref, String refTableNmae, FormData entity) async { + try { + String apiUrl = "$baseUrl/FileUpload/Uploadeddocs/$ref/$refTableNmae"; + final response = await _helper.getPostApiResponse(apiUrl, entity); + return response; + } catch (e) { + throw Exception('Failed to Upload File: $e'); + } + } + + Future video_field2Upload( + String ref, String refTableNmae, FormData entity) async { + try { + String apiUrl = "$baseUrl/FileUpload/Uploadeddocs/$ref/$refTableNmae"; + final response = await _helper.getPostApiResponse(apiUrl, entity); + return response; + } catch (e) { + throw Exception('Failed to Upload File: $e'); + } + } + +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1_viewModel/Adv1_view_model_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1_viewModel/Adv1_view_model_screen.dart new file mode 100644 index 0000000..d252f3b --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv1/Adv1_viewModel/Adv1_view_model_screen.dart @@ -0,0 +1,1174 @@ +import 'package:base_project/data/response/status.dart'; +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/utils/entity_field_store.dart'; +import 'package:flutter/material.dart'; +import '../Adv1_Repo/Adv1_repo_screen.dart'; + +class Adv1ViewModelScreen extends ChangeNotifier{ + final Adv1RepoScreen repo = Adv1RepoScreen(); + + + // State variables + List> _adv1List = []; + List> _filteredList = []; + bool _isLoading = false; + String _errorMessage = ''; + int _currentPage = 0; + int _pageSize = 10; + bool _hasMoreData = true; + String _searchQuery = ''; + + // Getters + List> get adv1List => _adv1List; + List> get filteredList => _filteredList; + bool get isLoading => _isLoading; + String get errorMessage => _errorMessage; + bool get hasMoreData => _hasMoreData; + String get searchQuery => _searchQuery; + + // Set loading state + void _setLoading(bool loading) { + _isLoading = loading; + notifyListeners(); + } + + // Set error message + void _setError(String error) { + _errorMessage = error; + notifyListeners(); + } + + // Clear error + void clearError() { + _errorMessage = ''; + notifyListeners(); + } + + // Get adv1 list + Future getEntities() async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.getEntities(); + + if (response.status == Status.SUCCESS) { + _adv1List = response.data ?? []; + _filteredList = List.from(_adv1List); + _currentPage = 0; + _hasMoreData = true; + } else { + _setError(response.message ?? 'Failed to fetch adv1 list'); + } + } catch (e) { + _setError('Failed to fetch adv1 list: $e'); + } finally { + _setLoading(false); + } + } + + // Get adv1 list with pagination + Future getAllWithPagination({bool refresh = false}) async { + if (refresh) { + _currentPage = 0; + _adv1List.clear(); + _filteredList.clear(); + _hasMoreData = true; + } + + if (!_hasMoreData || _isLoading) return; + + _setLoading(true); + _setError(''); + + try { + final response = await repo.getAllWithPagination(_currentPage, _pageSize); + + if (response.status == Status.SUCCESS) { + final newItems = response.data ?? []; + + if (refresh) { + _adv1List = newItems; + } else { + _adv1List.addAll(newItems); + } + + _filteredList = List.from(_adv1List); + _currentPage++; + + // Check if we have more data + _hasMoreData = newItems.length == _pageSize; + } else { + _setError(response.message ?? 'Failed to fetch Adv1 list'); + } + } catch (e) { + _setError('Failed to fetch adv1 list: $e'); + } finally { + _setLoading(false); + } + } + + + + + + + + + +// Variable to store image files + List> _fileupload_fieldFiles = []; + +// Variable to store image files + List> _fileupload_field2Files = []; + +// Variable to store image files + List> _imageupload_fieldimageFiles = []; + +// Variable to store image files + List> _imageupload_field2imageFiles = []; + +// Variable to store image files + List> _audio_fieldaudioFiles = []; + +// Variable to store image files + List> _audio_field2audioFiles = []; + +// Variable to store image files + List> _video_fieldvideoFiles = []; + +// Variable to store image files + List> _video_field2videoFiles = []; + + // Create Adv1 + Future createEntity(Map entity) async { + _setLoading(true); + _setError(''); + + try { + + + + + + + + + // Always source image selections from EntityFieldStore for simplicity + final List storefilefileupload_field = EntityFieldStore.instance + .get>('fileupload_field') ?? + []; + + _fileupload_fieldFiles = storefilefileupload_field + .map((u) => {'path': u.fileName, 'bytes': u.bytes}) + .toList(); + + + entity.remove('fileupload_field'); + + + // Always source image selections from EntityFieldStore for simplicity + final List storefilefileupload_field2 = EntityFieldStore.instance + .get>('fileupload_field2') ?? + []; + + _fileupload_field2Files = storefilefileupload_field2 + .map((u) => {'path': u.fileName, 'bytes': u.bytes}) + .toList(); + + + entity.remove('fileupload_field2'); + + + // Always source image selections from EntityFieldStore for simplicity + final List storeImgsimageupload_field = EntityFieldStore.instance + .get>('imageupload_field') ?? + []; + + _imageupload_fieldimageFiles = storeImgsimageupload_field + .map((u) => {'path': u.fileName, 'bytes': u.bytes}) + .toList(); + + + entity.remove('imageupload_field'); + + + // Always source image selections from EntityFieldStore for simplicity + final List storeImgsimageupload_field2 = EntityFieldStore.instance + .get>('imageupload_field2') ?? + []; + + _imageupload_field2imageFiles = storeImgsimageupload_field2 + .map((u) => {'path': u.fileName, 'bytes': u.bytes}) + .toList(); + + + entity.remove('imageupload_field2'); + + + // Always source image selections from EntityFieldStore for simplicity + final List storeaudioaudio_field = EntityFieldStore.instance + .get>('audio_field') ?? + []; + + _audio_fieldaudioFiles = storeaudioaudio_field + .map((u) => {'path': u.fileName, 'bytes': u.bytes}) + .toList(); + + + entity.remove('audio_field'); + + + // Always source image selections from EntityFieldStore for simplicity + final List storeaudioaudio_field2 = EntityFieldStore.instance + .get>('audio_field2') ?? + []; + + _audio_field2audioFiles = storeaudioaudio_field2 + .map((u) => {'path': u.fileName, 'bytes': u.bytes}) + .toList(); + + + entity.remove('audio_field2'); + + + // Always source image selections from EntityFieldStore for simplicity + final List storevideovideo_field = EntityFieldStore.instance + .get>('video_field') ?? + []; + + _video_fieldvideoFiles = storevideovideo_field + .map((u) => {'path': u.fileName, 'bytes': u.bytes}) + .toList(); + + + entity.remove('video_field'); + + + // Always source image selections from EntityFieldStore for simplicity + final List storevideovideo_field2 = EntityFieldStore.instance + .get>('video_field2') ?? + []; + + _video_field2videoFiles = storevideovideo_field2 + .map((u) => {'path': u.fileName, 'bytes': u.bytes}) + .toList(); + + + entity.remove('video_field2'); + + + final response = await repo.createEntity(entity); + + if (response.status == Status.SUCCESS) { +// Get the response ID for image upload + + final responseId = response.data!['id'].toString(); + + + + + + + + +// Upload File if available + if (_fileupload_fieldFiles.isNotEmpty) { + await _uploadfileupload_field(responseId, _fileupload_fieldFiles); + _fileupload_fieldFiles.clear(); // Clear after upload + } + +// Upload File if available + if (_fileupload_field2Files.isNotEmpty) { + await _uploadfileupload_field2(responseId, _fileupload_field2Files); + _fileupload_field2Files.clear(); // Clear after upload + } + +// Upload images if available + if (_imageupload_fieldimageFiles.isNotEmpty) { + await _uploadimageupload_field(responseId, _imageupload_fieldimageFiles); + _imageupload_fieldimageFiles.clear(); // Clear after upload + } + +// Upload images if available + if (_imageupload_field2imageFiles.isNotEmpty) { + await _uploadimageupload_field2(responseId, _imageupload_field2imageFiles); + _imageupload_field2imageFiles.clear(); // Clear after upload + } + +// Upload Audio if available + if (_audio_fieldaudioFiles.isNotEmpty) { + await _uploadaudio_field(responseId, _audio_fieldaudioFiles); + _audio_fieldaudioFiles.clear(); // Clear after upload + } + +// Upload Audio if available + if (_audio_field2audioFiles.isNotEmpty) { + await _uploadaudio_field2(responseId, _audio_field2audioFiles); + _audio_field2audioFiles.clear(); // Clear after upload + } + +// Upload Video if available + if (_video_fieldvideoFiles.isNotEmpty) { + await _uploadvideo_field(responseId, _video_fieldvideoFiles); + _video_fieldvideoFiles.clear(); // Clear after upload + } + +// Upload Video if available + if (_video_field2videoFiles.isNotEmpty) { + await _uploadvideo_field2(responseId, _video_field2videoFiles); + _video_field2videoFiles.clear(); // Clear after upload + } + + ToastMessageUtil.showToast( + message: 'adv1 created successfully', + toastType: ToastType.success, + ); + + // Refresh the list + await getEntities(); + + + + + + + + + EntityFieldStore.instance.remove('fileupload_field'); + + + EntityFieldStore.instance.remove('fileupload_field2'); + + + EntityFieldStore.instance.remove('imageupload_field'); + + + EntityFieldStore.instance.remove('imageupload_field2'); + + + EntityFieldStore.instance.remove('audio_field'); + + + EntityFieldStore.instance.remove('audio_field2'); + + + EntityFieldStore.instance.remove('video_field'); + + + EntityFieldStore.instance.remove('video_field2'); + + + return true; + } else { + _setError(response.message ?? 'Failed to create Adv1'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to create Adv1', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to create adv1: $e'); + ToastMessageUtil.showToast( + message: 'Failed to create Adv1: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Update adv1 + Future updateEntity(int id, Map entity) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.updateEntity(id, entity); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Adv1 updated successfully', + toastType: ToastType.success, + ); + + // Update the item in the list + final index = _adv1List.indexWhere((item) => item['id'] == id); + if (index != -1) { + _adv1List[index] = response.data!; + _filteredList = List.from(_adv1List); + notifyListeners(); + } + return true; + } else { + _setError(response.message ?? 'Failed to update Adv1'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to update Adv1', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to update adv1: $e'); + ToastMessageUtil.showToast( + message: 'Failed to update Adv1: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Delete adv1 + Future deleteEntity(int id) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.deleteEntity(id); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Adv1 deleted successfully', + toastType: ToastType.success, + ); + + // Remove the item from the list + _adv1List.removeWhere((item) => item['id'] == id); + _filteredList = List.from(_adv1List); + notifyListeners(); + return true; + } else { + _setError(response.message ?? 'Failed to delete Adv1'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to delete Adv1', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to delete adv1: $e'); + ToastMessageUtil.showToast( + message: 'Failed to delete Adv1: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Search adv1 + void searchadv1(String query) { + _searchQuery = query; + + if (query.isEmpty) { + _filteredList = List.from(_adv1List); + } else { + _filteredList = _adv1List.where((item) { + return + + +(item['ismale']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['idfemale']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + + + + + + + + + + + + + +(item['audio_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['audio_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['video_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['video_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) + + +; + }).toList(); + } + notifyListeners(); + } + + // Clear search + void clearSearch() { + _searchQuery = ''; + _filteredList = List.from(_adv1List); + notifyListeners(); + } + + // Refresh data + Future refreshData() async { + await getAllWithPagination(refresh: true); + } + + + + + + + + + + + + + + // Helper method to upload multiple image files + Future _uploadfileupload_field( + String responseId, List Files) async { + try { + for (var File in Files) { + if (File is Map && + File.containsKey('path')) { + String filePath = File['path']; + Uint8List fileBytes = File['bytes']; + + // Upload each image file + await uploadfileupload_field( + responseId, 'Adv1', filePath, fileBytes); + } + } + } catch (error) { + print('Error uploading files: $error'); + ToastMessageUtil.showToast( + message: "Failed to upload images", toastType: ToastType.error); + } + } + +// Modify the uploadfileupload_fieldimage function + Future uploadfileupload_field(String ref, String refTableNmae, + String selectedFilePath, Uint8List imageTimageBytes) async { + try { + + final Uint8List fileBytes = imageTimageBytes!; + final mimeType = fileupload_fieldlookupMimeType(selectedFilePath); + + FormData formData = FormData.fromMap({ + 'file': MultipartFile.fromBytes( + fileBytes, + filename: selectedFilePath + .split('/') + .last, // Get the file name from the path + contentType: MediaType.parse(mimeType!), + ), + }); + + + await repo.fileupload_fieldUpload(ref, refTableNmae, formData).then((value) { + ToastMessageUtil.showToast( + message: "File uploaded successfully", + toastType: ToastType.success); + }).onError( + (error, stackTrace) { + print("error--$error"); + ToastMessageUtil.showToast( + message: "Failed to upload file", toastType: ToastType.error); + }, + ); + } catch (error) { + print('Error occurred during form submission: $error'); + } + } + +// Modify the lookupMimeType function if needed + String fileupload_fieldlookupMimeType(String filePath) { + final ext = filePath.split('.').last; + switch (ext) { + case 'jpg': + case 'jpeg': + return 'image/jpeg'; + case 'png': + return 'image/png'; + case 'pdf': + return 'application/pdf'; + // Add more cases for other file types as needed + default: + return 'application/octet-stream'; // Default MIME type + } + } + + + + + + + // Helper method to upload multiple image files + Future _uploadfileupload_field2( + String responseId, List Files) async { + try { + for (var File in Files) { + if (File is Map && + File.containsKey('path')) { + String filePath = File['path']; + Uint8List fileBytes = File['bytes']; + + // Upload each image file + await uploadfileupload_field2( + responseId, 'Adv1', filePath, fileBytes); + } + } + } catch (error) { + print('Error uploading files: $error'); + ToastMessageUtil.showToast( + message: "Failed to upload images", toastType: ToastType.error); + } + } + +// Modify the uploadfileupload_field2image function + Future uploadfileupload_field2(String ref, String refTableNmae, + String selectedFilePath, Uint8List imageTimageBytes) async { + try { + + final Uint8List fileBytes = imageTimageBytes!; + final mimeType = fileupload_field2lookupMimeType(selectedFilePath); + + FormData formData = FormData.fromMap({ + 'file': MultipartFile.fromBytes( + fileBytes, + filename: selectedFilePath + .split('/') + .last, // Get the file name from the path + contentType: MediaType.parse(mimeType!), + ), + }); + + + await repo.fileupload_field2Upload(ref, refTableNmae, formData).then((value) { + ToastMessageUtil.showToast( + message: "File uploaded successfully", + toastType: ToastType.success); + }).onError( + (error, stackTrace) { + print("error--$error"); + ToastMessageUtil.showToast( + message: "Failed to upload file", toastType: ToastType.error); + }, + ); + } catch (error) { + print('Error occurred during form submission: $error'); + } + } + +// Modify the lookupMimeType function if needed + String fileupload_field2lookupMimeType(String filePath) { + final ext = filePath.split('.').last; + switch (ext) { + case 'jpg': + case 'jpeg': + return 'image/jpeg'; + case 'png': + return 'image/png'; + case 'pdf': + return 'application/pdf'; + // Add more cases for other file types as needed + default: + return 'application/octet-stream'; // Default MIME type + } + } + + + + // Helper method to upload multiple image files + Future _uploadimageupload_field( + String responseId, List imageFiles) async { + try { + for (var imageFile in imageFiles) { + if (imageFile is Map && + imageFile.containsKey('path')) { + String filePath = imageFile['path']; + Uint8List fileBytes = imageFile['bytes']; + + // Upload each image file + await uploadimageupload_field( + responseId, 'Adv1', filePath, fileBytes); + } + } + } catch (error) { + print('Error uploading image files: $error'); + ToastMessageUtil.showToast( + message: "Failed to upload images", toastType: ToastType.error); + } + } + +// Modify the uploadimageupload_fieldimage function + Future uploadimageupload_field(String ref, String refTableNmae, + String selectedFilePath, Uint8List image_timageBytes) async { + try { + + final Uint8List fileBytes = image_timageBytes!; + final mimeType = imageupload_fieldlookupMimeType(selectedFilePath); + + FormData formData = FormData.fromMap({ + 'file': MultipartFile.fromBytes( + fileBytes, + filename: selectedFilePath + .split('/') + .last, // Get the file name from the path + contentType: MediaType.parse(mimeType!), + ), + }); +await repo.imageupload_fieldUpload(ref, refTableNmae, formData).then((value) { + ToastMessageUtil.showToast( + message: "File uploaded successfully", + toastType: ToastType.success); + }).onError( + (error, stackTrace) { + print("error--$error"); + ToastMessageUtil.showToast( + message: "Failed to upload file", toastType: ToastType.error); + }, + ); + } catch (error) { + print('Error occurred during form submission: $error'); + } + } + +// Modify the lookupMimeType function if needed + String imageupload_fieldlookupMimeType(String filePath) { + final ext = filePath.split('.').last; + switch (ext) { + case 'jpg': + case 'jpeg': + return 'image/jpeg'; + case 'png': + return 'image/png'; + case 'pdf': + return 'application/pdf'; + // Add more cases for other file types as needed + default: + return 'application/octet-stream'; // Default MIME type + } + } + + + + // Helper method to upload multiple image files + Future _uploadimageupload_field2( + String responseId, List imageFiles) async { + try { + for (var imageFile in imageFiles) { + if (imageFile is Map && + imageFile.containsKey('path')) { + String filePath = imageFile['path']; + Uint8List fileBytes = imageFile['bytes']; + + // Upload each image file + await uploadimageupload_field2( + responseId, 'Adv1', filePath, fileBytes); + } + } + } catch (error) { + print('Error uploading image files: $error'); + ToastMessageUtil.showToast( + message: "Failed to upload images", toastType: ToastType.error); + } + } + +// Modify the uploadimageupload_field2image function + Future uploadimageupload_field2(String ref, String refTableNmae, + String selectedFilePath, Uint8List image_timageBytes) async { + try { + + final Uint8List fileBytes = image_timageBytes!; + final mimeType = imageupload_field2lookupMimeType(selectedFilePath); + + FormData formData = FormData.fromMap({ + 'file': MultipartFile.fromBytes( + fileBytes, + filename: selectedFilePath + .split('/') + .last, // Get the file name from the path + contentType: MediaType.parse(mimeType!), + ), + }); +await repo.imageupload_field2Upload(ref, refTableNmae, formData).then((value) { + ToastMessageUtil.showToast( + message: "File uploaded successfully", + toastType: ToastType.success); + }).onError( + (error, stackTrace) { + print("error--$error"); + ToastMessageUtil.showToast( + message: "Failed to upload file", toastType: ToastType.error); + }, + ); + } catch (error) { + print('Error occurred during form submission: $error'); + } + } + +// Modify the lookupMimeType function if needed + String imageupload_field2lookupMimeType(String filePath) { + final ext = filePath.split('.').last; + switch (ext) { + case 'jpg': + case 'jpeg': + return 'image/jpeg'; + case 'png': + return 'image/png'; + case 'pdf': + return 'application/pdf'; + // Add more cases for other file types as needed + default: + return 'application/octet-stream'; // Default MIME type + } + } + + + + + + + + // Helper method to upload multiple image files + Future _uploadaudio_field( + String responseId, List Files) async { + try { + for (var File in Files) { + if (File is Map && + File.containsKey('path')) { + String filePath = File['path']; + Uint8List fileBytes = File['bytes']; + + // Upload each image file + await uploadaudio_field( + responseId, 'Adv1', filePath, fileBytes); + } + } + } catch (error) { + print('Error uploading files: $error'); + ToastMessageUtil.showToast( + message: "Failed to upload images", toastType: ToastType.error); + } + } +// Modify the uploadaudio_fieldimage function + Future uploadaudio_field(String ref, String refTableNmae, + String selectedFilePath, Uint8List image_timageBytes) async { + try { + + final Uint8List fileBytes = image_timageBytes!; + final mimeType = audio_fieldlookupMimeType(selectedFilePath); + + FormData formData = FormData.fromMap({ + 'file': MultipartFile.fromBytes( + fileBytes, + filename: selectedFilePath + .split('/') + .last, // Get the file name from the path + contentType: MediaType.parse(mimeType!), + ), + }); + + + await repo.audio_fieldUpload(ref, refTableNmae, formData).then((value) { + ToastMessageUtil.showToast( + message: "File uploaded successfully", + toastType: ToastType.success); + }).onError( + (error, stackTrace) { + print("error--$error"); + ToastMessageUtil.showToast( + message: "Failed to upload file", toastType: ToastType.error); + }, + ); + } catch (error) { + print('Error occurred during form submission: $error'); + } + } + +// Modify the lookupMimeType function if needed + String audio_fieldlookupMimeType(String filePath) { + final ext = filePath.split('.').last.toLowerCase(); + switch (ext) { + case 'mp3': + return 'audio/mpeg'; + case 'wav': + return 'audio/wav'; + case 'm4a': + return 'audio/mp4'; + case 'flac': + return 'audio/flac'; + // Add more cases for other audio formats as needed + default: + return 'application/octet-stream'; // Default MIME type + } +} + + + + + + + + // Helper method to upload multiple image files + Future _uploadaudio_field2( + String responseId, List Files) async { + try { + for (var File in Files) { + if (File is Map && + File.containsKey('path')) { + String filePath = File['path']; + Uint8List fileBytes = File['bytes']; + + // Upload each image file + await uploadaudio_field2( + responseId, 'Adv1', filePath, fileBytes); + } + } + } catch (error) { + print('Error uploading files: $error'); + ToastMessageUtil.showToast( + message: "Failed to upload images", toastType: ToastType.error); + } + } +// Modify the uploadaudio_field2image function + Future uploadaudio_field2(String ref, String refTableNmae, + String selectedFilePath, Uint8List image_timageBytes) async { + try { + + final Uint8List fileBytes = image_timageBytes!; + final mimeType = audio_field2lookupMimeType(selectedFilePath); + + FormData formData = FormData.fromMap({ + 'file': MultipartFile.fromBytes( + fileBytes, + filename: selectedFilePath + .split('/') + .last, // Get the file name from the path + contentType: MediaType.parse(mimeType!), + ), + }); + + + await repo.audio_field2Upload(ref, refTableNmae, formData).then((value) { + ToastMessageUtil.showToast( + message: "File uploaded successfully", + toastType: ToastType.success); + }).onError( + (error, stackTrace) { + print("error--$error"); + ToastMessageUtil.showToast( + message: "Failed to upload file", toastType: ToastType.error); + }, + ); + } catch (error) { + print('Error occurred during form submission: $error'); + } + } + +// Modify the lookupMimeType function if needed + String audio_field2lookupMimeType(String filePath) { + final ext = filePath.split('.').last.toLowerCase(); + switch (ext) { + case 'mp3': + return 'audio/mpeg'; + case 'wav': + return 'audio/wav'; + case 'm4a': + return 'audio/mp4'; + case 'flac': + return 'audio/flac'; + // Add more cases for other audio formats as needed + default: + return 'application/octet-stream'; // Default MIME type + } +} + + + // Helper method to upload multiple image files + Future _uploadvideo_field( + String responseId, List Files) async { + try { + for (var File in Files) { + if (File is Map && + File.containsKey('path')) { + String filePath = File['path']; + Uint8List fileBytes = File['bytes']; + + // Upload each image file + await uploadvideo_field( + responseId, 'Adv1', filePath, fileBytes); + } + } + } catch (error) { + print('Error uploading files: $error'); + ToastMessageUtil.showToast( + message: "Failed to upload images", toastType: ToastType.error); + } + } +// Modify the uploadvideo_fieldimage function + Future uploadvideo_field(String ref, String refTableNmae, + String selectedFilePath, Uint8List image_timageBytes) async { + try { + + final Uint8List fileBytes = image_timageBytes!; + final mimeType = video_fieldlookupMimeType(selectedFilePath); + + FormData formData = FormData.fromMap({ + 'file': MultipartFile.fromBytes( + fileBytes, + filename: selectedFilePath + .split('/') + .last, // Get the file name from the path + contentType: MediaType.parse(mimeType!), + ), + }); + + + + await repo.video_fieldUpload(ref, refTableNmae, formData).then((value) { + ToastMessageUtil.showToast( + message: "File uploaded successfully", + toastType: ToastType.success); + }).onError( + (error, stackTrace) { + print("error--$error"); + ToastMessageUtil.showToast( + message: "Failed to upload file", toastType: ToastType.error); + }, + ); + } catch (error) { + print('Error occurred during form submission: $error'); + } + } + +// Modify the lookupMimeType function if needed + String video_fieldlookupMimeType(String filePath) { + final ext = filePath.split('.').last.toLowerCase(); + switch (ext) { + case 'mp4': + return 'video/mp4'; + case 'mov': + return 'video/quicktime'; + case 'avi': + return 'video/x-msvideo'; + case 'wmv': + return 'video/x-ms-wmv'; + case 'flv': + return 'video/x-flv'; + case 'mkv': + return 'video/x-matroska'; + // Add more cases for other file types as needed + default: + return 'application/octet-stream'; // Default MIME type + } + } + + + // Helper method to upload multiple image files + Future _uploadvideo_field2( + String responseId, List Files) async { + try { + for (var File in Files) { + if (File is Map && + File.containsKey('path')) { + String filePath = File['path']; + Uint8List fileBytes = File['bytes']; + + // Upload each image file + await uploadvideo_field2( + responseId, 'Adv1', filePath, fileBytes); + } + } + } catch (error) { + print('Error uploading files: $error'); + ToastMessageUtil.showToast( + message: "Failed to upload images", toastType: ToastType.error); + } + } +// Modify the uploadvideo_field2image function + Future uploadvideo_field2(String ref, String refTableNmae, + String selectedFilePath, Uint8List image_timageBytes) async { + try { + + final Uint8List fileBytes = image_timageBytes!; + final mimeType = video_field2lookupMimeType(selectedFilePath); + + FormData formData = FormData.fromMap({ + 'file': MultipartFile.fromBytes( + fileBytes, + filename: selectedFilePath + .split('/') + .last, // Get the file name from the path + contentType: MediaType.parse(mimeType!), + ), + }); + + + + await repo.video_field2Upload(ref, refTableNmae, formData).then((value) { + ToastMessageUtil.showToast( + message: "File uploaded successfully", + toastType: ToastType.success); + }).onError( + (error, stackTrace) { + print("error--$error"); + ToastMessageUtil.showToast( + message: "Failed to upload file", toastType: ToastType.error); + }, + ); + } catch (error) { + print('Error occurred during form submission: $error'); + } + } + +// Modify the lookupMimeType function if needed + String video_field2lookupMimeType(String filePath) { + final ext = filePath.split('.').last.toLowerCase(); + switch (ext) { + case 'mp4': + return 'video/mp4'; + case 'mov': + return 'video/quicktime'; + case 'avi': + return 'video/x-msvideo'; + case 'wmv': + return 'video/x-ms-wmv'; + case 'flv': + return 'video/x-flv'; + case 'mkv': + return 'video/x-matroska'; + // Add more cases for other file types as needed + default: + return 'application/octet-stream'; // Default MIME type + } + } + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_api_service.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_api_service.dart new file mode 100644 index 0000000..27e32e5 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_api_service.dart @@ -0,0 +1,116 @@ +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../resources/api_constants.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; + +class Adv3ApiService { + final String baseUrl = ApiConstants.baseUrl; + + final BaseNetworkService _helper = NetworkApiService(); + + + + Future>> getEntities() async { + + try { + final response = await _helper.getGetApiResponse('$baseUrl/Adv3/Adv3'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all entities: $e'); + } + } +Future>> getAllWithPagination( + int page, int size) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/Adv3/Adv3/getall/page?page=$page&size=$size'); + final entities = + (response['content'] as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all without pagination: $e'); + } + } + Future> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl/Adv3/Adv3', entity); + + print(entity); + + // Assuming the response is a Map + Map responseData = response; + + return responseData; + } catch (e) { + throw Exception('Failed to create entity: $e'); + } + } + + + + + + + + + + + + + + + + + + + + + + + + Future updateEntity( int entityId, Map entity) async { + try { + await _helper.getPutApiResponse('$baseUrl/Adv3/Adv3/$entityId', + entity); print(entity); + + } catch (e) { + throw Exception('Failed to update entity: $e'); + } + } + + Future deleteEntity( int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl/Adv3/Adv3/$entityId'); + } catch (e) { + throw Exception('Failed to delete entity: $e'); + } + } + + + + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_create_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_create_entity_screen.dart new file mode 100644 index 0000000..431fbd9 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_create_entity_screen.dart @@ -0,0 +1,98 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:provider/provider.dart'; +import '../Adv3_viewModel/Adv3_view_model_screen.dart'; +import 'Adv3_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import '../../../../widgets/custom_dropdown_field.dart'; +import 'dart:math'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:intl/intl.dart'; + +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:http/http.dart' as http; +import 'package:flutter/services.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart' +;import 'package:multi_select_flutter/multi_select_flutter.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:video_player/video_player.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:lottie/lottie.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import 'dart:io'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; + + + + + + + + + + + + + + + + + + + + + + +class Adv3CreateEntityScreen extends StatefulWidget { + const Adv3CreateEntityScreen({super.key}); + + @override + _Adv3CreateEntityScreenState createState() => _Adv3CreateEntityScreenState(); +} + +class _Adv3CreateEntityScreenState extends State { + +final Map formData = {}; + final _formKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityCreateScreen( + fields: Adv3Fields.getFields(context), + onSubmit: (data) => _handleSubmit(data), + title: 'Adv3', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.createEntity(formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_details_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_details_screen.dart new file mode 100644 index 0000000..1fcea09 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_details_screen.dart @@ -0,0 +1,106 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../../../BuilderField/shared/ui/entity_details.dart'; +import '../Adv3_viewModel/Adv3_view_model_screen.dart'; +import 'Adv3_update_entity_screen.dart'; + +class Adv3DetailsScreen extends StatefulWidget { + final Map entity; + + const Adv3DetailsScreen({ + super.key, + required this.entity, + }); + + @override + State createState() => _Adv3DetailsScreenState(); +} + +class _Adv3DetailsScreenState extends State { + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Adv3ViewModelScreen(), + child: Adv3UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + // Refresh the details screen with updated data + setState(() {}); + }); + } + + void _showDeleteDialog(Map entity) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Adv3?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(context, listen: false); + final success = await vm.deleteEntity(entity['id']); + if (success && mounted) { + Navigator.pop(context); // Go back to list + } + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityDetails( + entity: widget.entity, + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + title: 'Adv3', + displayFields: [ + + + + + {'key': 'dynamic', 'label': 'Dynamic', 'type': 'communication'}, + + {'key': 'country', 'label': 'country', 'type': 'select'}, + + {'key': 'state', 'label': 'state', 'type': 'select'}, + + {'key': 'stmlit', 'label': 'stmlit', 'type': 'select'}, + + {'key': 'stmmlt2', 'label': 'stmmlt2', 'type': 'select'}, + + {'key': 'dy2', 'label': 'dy2', 'type': 'select'}, + + {'key': 'dy1', 'label': 'dy1', 'type': 'select'}, + + {'key': 'dymlti1', 'label': 'dymlti1', 'type': 'select'}, + + {'key': 'dymlt2', 'label': 'dymlt2', 'type': 'select'}, + + ], + isLoading: viewModel.isLoading, + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_entity_list_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_entity_list_screen.dart new file mode 100644 index 0000000..76d38c0 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_entity_list_screen.dart @@ -0,0 +1,189 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_list.dart'; +import 'Adv3_create_entity_screen.dart'; +import 'Adv3_update_entity_screen.dart'; +import '../Adv3_viewModel/Adv3_view_model_screen.dart'; +import 'Adv3_details_screen.dart';import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_to_text.dart' as stt; +import '../../../../theme/app_style.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../widgets/custom_icon_button.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../theme/app_decoration.dart'; +import 'package:multi_select_flutter/multi_select_flutter.dart'; +import '../../../../Reuseable/reusable_text_field.dart'; +import 'package:provider/provider.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/fields/realted_entity_insert_field.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class Adv3_entity_list_screen extends StatefulWidget { + static const String routeName = '/entity-list'; + + @override + _Adv3_entity_list_screenState createState() => _Adv3_entity_list_screenState(); +} + +class _Adv3_entity_list_screenState extends State { + @override + void initState() { + super.initState(); + _loadData(); + } + + void _loadData() { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + final vm = Provider.of(context, listen: false); + vm.getAllWithPagination(refresh: true); + } + }); + } + + void _navigateToCreateScreen() { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Adv3ViewModelScreen(), + child: const Adv3CreateEntityScreen(), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Adv3ViewModelScreen(), + child: Adv3UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToDetailsScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Adv3ViewModelScreen(), + child: Adv3DetailsScreen(entity: entity), + ), + ), + ); + } + + void _showDeleteDialog(Map entity) { + final parentContext = context; + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Adv3?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(parentContext, listen: false); + await vm.deleteEntity(entity['id']); + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityList( + entities: viewModel.filteredList, + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + hasMoreData: viewModel.hasMoreData, + searchQuery: viewModel.searchQuery, + onSearchChanged: (query) => viewModel.searchadv3(query), + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + onTap: (entity) => _navigateToDetailsScreen(entity), + onRefresh: () => viewModel.refreshData(), + onLoadMore: () => viewModel.getAllWithPagination(), + title: 'Adv3', + onAddNew: _navigateToCreateScreen, + + + + + + + + + + + + + + + + + + + + + + + displayFields: [ + + + + + {'key': 'dynamic', 'label': 'Dynamic', 'type': 'communication'}, + + {'key': 'country', 'label': 'country', 'type': 'select'}, + + {'key': 'state', 'label': 'state', 'type': 'select'}, + + {'key': 'stmlit', 'label': 'stmlit', 'type': 'select'}, + + {'key': 'stmmlt2', 'label': 'stmmlt2', 'type': 'select'}, + + {'key': 'dy2', 'label': 'dy2', 'type': 'select'}, + + {'key': 'dy1', 'label': 'dy1', 'type': 'select'}, + + {'key': 'dymlti1', 'label': 'dymlti1', 'type': 'select'}, + + {'key': 'dymlt2', 'label': 'dymlt2', 'type': 'select'}, + + ], + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_fields.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_fields.dart new file mode 100644 index 0000000..db5c818 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_fields.dart @@ -0,0 +1,237 @@ +import 'package:base_project/BuilderField/shared/fields/number_field.dart'; +import 'package:base_project/BuilderField/shared/fields/password_field.dart'; +import 'package:base_project/BuilderField/shared/fields/phone_field.dart'; +import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart'; + +import '../../../../BuilderField/shared/fields/base_field.dart'; + +import '../../../../BuilderField/shared/fields/date_field.dart'; +import '../../../../BuilderField/shared/fields/datetime_field.dart'; +import '../../../../BuilderField/shared/fields/email_field.dart'; +import 'package:base_project/BuilderField/shared/fields/url_field.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/calculated_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_many_field.dart'; +import '../../../../BuilderField/shared/fields/value_list_picker_field.dart'; +import '../../../../BuilderField/shared/fields/captcha_field.dart'; +import '../../../../BuilderField/shared/fields/switch_field.dart'; +import '../../../../BuilderField/shared/fields/url_field.dart'; + +import '../../../../BuilderField/shared/fields/audio_upload_field.dart'; +import '../../../../BuilderField/shared/fields/checkbox_field.dart'; +import '../../../../BuilderField/shared/fields/file_upload_field.dart'; +import '../../../../BuilderField/shared/fields/image_upload_field.dart'; +import '../../../../BuilderField/shared/fields/radio_field.dart'; +import '../../../../BuilderField/shared/fields/video_upload_field.dart'; + +import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/data_grid_field.dart'; +import '../../../../BuilderField/shared/fields/dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/static_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/currency_field.dart'; +import '../../../../BuilderField/shared/fields/field_group_field.dart'; +import '../../../../BuilderField/shared/fields/qr_code_field.dart'; +import '../../../../BuilderField/shared/fields/barcode_field.dart'; +import '../../../../BuilderField/shared/fields/dependent_dropdown_field.dart'; + import '../Adv3_viewModel/Adv3_view_model_screen.dart';/// Field definitions for Adv3 entity +/// This defines the structure and validation for Adv3 forms +class Adv3Fields { + /// Get field definitions for Adv3 entity + static List getFields(BuildContext context) { + final viewModel = + Provider.of(context, listen: false); + return [ + // Basic Information + DataGridField( + fieldKey: 'datagrid_field', + label: 'datagrid Field', + dataLoader: () => viewModel.getdatagrid_fieldGrid(), + ), + + DataGridField( + fieldKey: 'datagrid_field2', + label: 'datagrid Field2', + dataLoader: () => viewModel.getdatagrid_field2Grid(), + ), + + CustomTextField( + fieldKey: 'dynamic', + label: 'Dynamic', + hint: 'Enter Dynamic', + isRequired: true, + maxLength: 50, + ), + +DropdownField( + fieldKey: 'country', + label: 'country', + hint: 'Select country', + options: const [ + + + {'id': 'bharat', 'name': 'bharat'}, + + + + + {'id': 'nepal', 'name': 'nepal'}, + + + + + {'id': 'bhutan', 'name': 'bhutan'}, + + + + + + ], + valueKey: 'id', + displayKey: 'name', + ), + +DropdownField( + fieldKey: 'state', + label: 'state', + hint: 'Select state', + options: const [ + + + {'id': 'maharastra', 'name': 'maharastra'}, + + + + + {'id': 'bihar', 'name': 'bihar'}, + + + + + {'id': 'test', 'name': 'test'}, + + + + + + ], + valueKey: 'id', + displayKey: 'name', + ), + + StaticMultiSelectField( + fieldKey: 'stmlit', + label: 'Select stmlit', + options: const [ + + +'bihar', + + + +'sikkim', + + + + +], + ), + + + StaticMultiSelectField( + fieldKey: 'stmmlt2', + label: 'Select stmmlt2', + options: const [ + + +'p2', + + + +'p3', + + + +'ap', + + + + +], + ), + + + DynamicDropdownField( + fieldKey: 'dy2', + label: 'Select dy2', + hint: 'Search and select', + optionsLoader: () => viewModel.getdy2(), + + + valueKey: 'id', + displayKey: 'name', + + + ), + + + DynamicDropdownField( + fieldKey: 'dy1', + label: 'Select dy1', + hint: 'Search and select', + optionsLoader: () => viewModel.getdy1(), + + + valueKey: 'id', + displayKey: 'description', + + + ), + + + DynamicMultiSelectDropdownField( + fieldKey: 'dymlti1', + label: 'dymlti1', + hint: 'Type to search and press enter', + optionsLoader: () async { + final list = await viewModel.getdymlti1(); + return list + + + .map((e) => e['name']?.toString() ?? '') + .where((e) => e.isNotEmpty) + .toList(); + + + }, + ), + + + DynamicMultiSelectDropdownField( + fieldKey: 'dymlt2', + label: 'dymlt2', + hint: 'Type to search and press enter', + optionsLoader: () async { + final list = await viewModel.getdymlt2(); + return list + + + .map((e) => e['description']?.toString() ?? '') + .where((e) => e.isNotEmpty) + .toList(); + + + }, + ), + + + ]; + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_update_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_update_entity_screen.dart new file mode 100644 index 0000000..9160a10 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3View/Adv3_update_entity_screen.dart @@ -0,0 +1,93 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:provider/provider.dart'; +import '../Adv3_viewModel/Adv3_view_model_screen.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import 'Adv3_fields.dart';import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import 'package:flutter/material.dart'; +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'dart:math'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; +import 'package:flutter/services.dart'; +class Adv3UpdateEntityScreen extends StatefulWidget { + final Map entity; + + + Adv3UpdateEntityScreen({required this.entity}); + + @override + _Adv3UpdateEntityScreenState createState() => _Adv3UpdateEntityScreenState(); +} + +class _Adv3UpdateEntityScreenState extends State { + final _formKey = GlobalKey(); + +@override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { +// Start with all fields, then remove upload fields (generic filter by keys) + final Set hiddenKeys = { + + + + + + + + + + + + + + + + + + + + + + + }; + final fields = Adv3Fields.getFields(context) + .where((f) => !hiddenKeys.contains(f.fieldKey)) + .toList(); return EntityUpdateScreen( + fields: fields, + initialData: widget.entity, + onSubmit: (data) => _handleSubmit(data), + title: 'Adv3', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.updateEntity(widget.entity['id'], formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3_Repo/Adv3_repo_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3_Repo/Adv3_repo_screen.dart new file mode 100644 index 0000000..03986f8 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3_Repo/Adv3_repo_screen.dart @@ -0,0 +1,159 @@ +import 'package:dio/dio.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; +import '../../../../resources/api_constants.dart'; +import 'package:base_project/data/response/api_response.dart'; + +class Adv3RepoScreen { + + final String baseUrl = ApiConstants.baseUrl; + final BaseNetworkService _helper = NetworkApiService(); + final String _endpointPath = '/Adv3/Adv3'; + + Future>>> getEntities() async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl$_endpointPath'); + print('Response received: $response'); + List> entities = const []; + if (response is List) { + entities = response + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } else if (response is Map) { + final dynamic content = response['content']; + if (content is List) { + entities = content + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } + } + return ApiResponse.success(entities); + } catch (e) { + print(' error got $e'); + return ApiResponse.error('Failed to get all entities: $e'); + } + } + + Future>>> getAllWithPagination( + int page, int size) async { + try { + final response = await _helper.getGetApiResponse( + '$baseUrl$_endpointPath/getall/page?page=$page&size=$size'); + + if (response is Map && response['content'] is List) { + final List> entities = + (response['content'] as List).cast>().toList(); + return ApiResponse.success(entities); + } else { + return ApiResponse.error('Invalid response format'); + } + } catch (e) { + return ApiResponse.error('Failed to get all without pagination: $e'); + } + } + + Future>> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to create entity: $e'); + } + } + + Future>> updateEntity( + int entityId, Map entity) async { + try { + final response = await _helper.getPutApiResponse( + '$baseUrl$_endpointPath/$entityId', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to update entity: $e'); + } + } + + Future> deleteEntity(int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId'); + return ApiResponse.success(null); + } catch (e) { + return ApiResponse.error('Failed to delete entity: $e'); + } + } + Future getdatagrid_fieldGrid() async { + try { + String apiUrl = "$baseUrl/Country_ListFilter1/Country_ListFilter1"; + final response = await _helper.getGetApiResponse(apiUrl); + return response; + } catch (e) { + throw Exception('Failed to Upload datagrid Field: $e'); + } + } + + Future getdatagrid_field2Grid() async { + try { + String apiUrl = "$baseUrl/Country_ListFilter1/Country_ListFilter1"; + final response = await _helper.getGetApiResponse(apiUrl); + return response; + } catch (e) { + throw Exception('Failed to Upload datagrid Field2: $e'); + } + } + + + + + + + + + + + + Future getdy2() async { + try { + String apiUrl = "$baseUrl/Country_ListFilter1/Country_ListFilter1"; + final response = await _helper.getGetApiResponse(apiUrl); + return response; + } catch (e) { + throw Exception('Failed to Get: $e'); + } + } + + Future getdy1() async { + try { + String apiUrl = "$baseUrl/Country_ListFilter1/Country_ListFilter1"; + final response = await _helper.getGetApiResponse(apiUrl); + return response; + } catch (e) { + throw Exception('Failed to Get: $e'); + } + } + + Future getdymlti1() async { + try { + String apiUrl = "$baseUrl/Country_ListFilter1/Country_ListFilter1"; + final response = await _helper.getGetApiResponse(apiUrl); + return response; + } catch (e) { + throw Exception('Failed to Get: $e'); + } + } + + Future getdymlt2() async { + try { + String apiUrl = "$baseUrl/Country_ListFilter1/Country_ListFilter1"; + final response = await _helper.getGetApiResponse(apiUrl); + return response; + } catch (e) { + throw Exception('Failed to Get: $e'); + } + } + +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3_viewModel/Adv3_view_model_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3_viewModel/Adv3_view_model_screen.dart new file mode 100644 index 0000000..0ff3080 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv3/Adv3_viewModel/Adv3_view_model_screen.dart @@ -0,0 +1,518 @@ +import 'package:base_project/data/response/status.dart'; +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/utils/entity_field_store.dart'; +import 'package:flutter/material.dart'; +import '../Adv3_Repo/Adv3_repo_screen.dart'; + +class Adv3ViewModelScreen extends ChangeNotifier{ + final Adv3RepoScreen repo = Adv3RepoScreen(); + + + // State variables + List> _adv3List = []; + List> _filteredList = []; + bool _isLoading = false; + String _errorMessage = ''; + int _currentPage = 0; + int _pageSize = 10; + bool _hasMoreData = true; + String _searchQuery = ''; + + // Getters + List> get adv3List => _adv3List; + List> get filteredList => _filteredList; + bool get isLoading => _isLoading; + String get errorMessage => _errorMessage; + bool get hasMoreData => _hasMoreData; + String get searchQuery => _searchQuery; + + // Set loading state + void _setLoading(bool loading) { + _isLoading = loading; + notifyListeners(); + } + + // Set error message + void _setError(String error) { + _errorMessage = error; + notifyListeners(); + } + + // Clear error + void clearError() { + _errorMessage = ''; + notifyListeners(); + } + + // Get adv3 list + Future getEntities() async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.getEntities(); + + if (response.status == Status.SUCCESS) { + _adv3List = response.data ?? []; + _filteredList = List.from(_adv3List); + _currentPage = 0; + _hasMoreData = true; + } else { + _setError(response.message ?? 'Failed to fetch adv3 list'); + } + } catch (e) { + _setError('Failed to fetch adv3 list: $e'); + } finally { + _setLoading(false); + } + } + + // Get adv3 list with pagination + Future getAllWithPagination({bool refresh = false}) async { + if (refresh) { + _currentPage = 0; + _adv3List.clear(); + _filteredList.clear(); + _hasMoreData = true; + } + + if (!_hasMoreData || _isLoading) return; + + _setLoading(true); + _setError(''); + + try { + final response = await repo.getAllWithPagination(_currentPage, _pageSize); + + if (response.status == Status.SUCCESS) { + final newItems = response.data ?? []; + + if (refresh) { + _adv3List = newItems; + } else { + _adv3List.addAll(newItems); + } + + _filteredList = List.from(_adv3List); + _currentPage++; + + // Check if we have more data + _hasMoreData = newItems.length == _pageSize; + } else { + _setError(response.message ?? 'Failed to fetch Adv3 list'); + } + } catch (e) { + _setError('Failed to fetch adv3 list: $e'); + } finally { + _setLoading(false); + } + } + + + + + + + + + + + + + + + + + + + + + + + + // Create Adv3 + Future createEntity(Map entity) async { + _setLoading(true); + _setError(''); + + try { + + + + + + + + + + + + + + + + + + + + + + + final response = await repo.createEntity(entity); + + if (response.status == Status.SUCCESS) { +// Get the response ID for image upload + + final responseId = response.data!['id'].toString(); + + + + + + + + + + + + + + + + + + + + + + + ToastMessageUtil.showToast( + message: 'adv3 created successfully', + toastType: ToastType.success, + ); + + // Refresh the list + await getEntities(); + + + + + + + + + + + + + + + + + + + + + + + return true; + } else { + _setError(response.message ?? 'Failed to create Adv3'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to create Adv3', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to create adv3: $e'); + ToastMessageUtil.showToast( + message: 'Failed to create Adv3: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Update adv3 + Future updateEntity(int id, Map entity) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.updateEntity(id, entity); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Adv3 updated successfully', + toastType: ToastType.success, + ); + + // Update the item in the list + final index = _adv3List.indexWhere((item) => item['id'] == id); + if (index != -1) { + _adv3List[index] = response.data!; + _filteredList = List.from(_adv3List); + notifyListeners(); + } + return true; + } else { + _setError(response.message ?? 'Failed to update Adv3'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to update Adv3', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to update adv3: $e'); + ToastMessageUtil.showToast( + message: 'Failed to update Adv3: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Delete adv3 + Future deleteEntity(int id) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.deleteEntity(id); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Adv3 deleted successfully', + toastType: ToastType.success, + ); + + // Remove the item from the list + _adv3List.removeWhere((item) => item['id'] == id); + _filteredList = List.from(_adv3List); + notifyListeners(); + return true; + } else { + _setError(response.message ?? 'Failed to delete Adv3'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to delete Adv3', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to delete adv3: $e'); + ToastMessageUtil.showToast( + message: 'Failed to delete Adv3: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Search adv3 + void searchadv3(String query) { + _searchQuery = query; + + if (query.isEmpty) { + _filteredList = List.from(_adv3List); + } else { + _filteredList = _adv3List.where((item) { + return + + +(item['datagrid_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['datagrid_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + + + +(item['country']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['state']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['stmlit']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['stmmlt2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['dy2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['dy1']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['dymlti1']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['dymlt2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) + + +; + }).toList(); + } + notifyListeners(); + } + + // Clear search + void clearSearch() { + _searchQuery = ''; + _filteredList = List.from(_adv3List); + notifyListeners(); + } + + // Refresh data + Future refreshData() async { + await getAllWithPagination(refresh: true); + } + late List> datagrid_fielddataFuture = + []; // Data from fetchData + + Future>> getdatagrid_fieldGrid() async { + + try { + final value = await repo.getdatagrid_fieldGrid(); + datagrid_fielddataFuture = (value as List) + .map((item) => item as Map) + .toList(); + + return datagrid_fielddataFuture; + } catch (e) { + throw Exception('Failed to get all: $e'); + } + } + + late List> datagrid_field2dataFuture = + []; // Data from fetchData + + Future>> getdatagrid_field2Grid() async { + + try { + final value = await repo.getdatagrid_field2Grid(); + datagrid_field2dataFuture = (value as List) + .map((item) => item as Map) + .toList(); + + return datagrid_field2dataFuture; + } catch (e) { + throw Exception('Failed to get all: $e'); + } + } + + + + + + + + + + + +List> dy2Items = []; + + Future>> getdy2() async { + + try { + final value = await repo.getdy2(); + dy2Items = (value as List) + .map((item) => item as Map) + .toList(); + + return dy2Items; + } catch (e) { + throw Exception('Failed to get all: $e'); + } + } + +List> dy1Items = []; + + Future>> getdy1() async { + + try { + final value = await repo.getdy1(); + dy1Items = (value as List) + .map((item) => item as Map) + .toList(); + + return dy1Items; + } catch (e) { + throw Exception('Failed to get all: $e'); + } + } + +List> dymlti1Items = []; + + Future>> getdymlti1() async { + + try { + final value = await repo.getdymlti1(); + dymlti1Items = (value as List) + .map((item) => item as Map) + .toList(); + + return dymlti1Items; + } catch (e) { + throw Exception('Failed to get all: $e'); + } + } + +List> dymlt2Items = []; + + Future>> getdymlt2() async { + + try { + final value = await repo.getdymlt2(); + dymlt2Items = (value as List) + .map((item) => item as Map) + .toList(); + + return dymlt2Items; + } catch (e) { + throw Exception('Failed to get all: $e'); + } + } + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_api_service.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_api_service.dart new file mode 100644 index 0000000..618eaff --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_api_service.dart @@ -0,0 +1,96 @@ +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../resources/api_constants.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; + +class Adv4ApiService { + final String baseUrl = ApiConstants.baseUrl; + + final BaseNetworkService _helper = NetworkApiService(); + + + + Future>> getEntities() async { + + try { + final response = await _helper.getGetApiResponse('$baseUrl/Adv4/Adv4'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all entities: $e'); + } + } +Future>> getAllWithPagination( + int page, int size) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/Adv4/Adv4/getall/page?page=$page&size=$size'); + final entities = + (response['content'] as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all without pagination: $e'); + } + } + Future> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl/Adv4/Adv4', entity); + + print(entity); + + // Assuming the response is a Map + Map responseData = response; + + return responseData; + } catch (e) { + throw Exception('Failed to create entity: $e'); + } + } + + + + + + + + + + + + + + Future updateEntity( int entityId, Map entity) async { + try { + await _helper.getPutApiResponse('$baseUrl/Adv4/Adv4/$entityId', + entity); print(entity); + + } catch (e) { + throw Exception('Failed to update entity: $e'); + } + } + + Future deleteEntity( int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl/Adv4/Adv4/$entityId'); + } catch (e) { + throw Exception('Failed to delete entity: $e'); + } + } + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_create_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_create_entity_screen.dart new file mode 100644 index 0000000..2d2a1ee --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_create_entity_screen.dart @@ -0,0 +1,88 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:provider/provider.dart'; +import '../Adv4_viewModel/Adv4_view_model_screen.dart'; +import 'Adv4_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import '../../../../widgets/custom_dropdown_field.dart'; +import 'dart:math'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:intl/intl.dart'; + +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:http/http.dart' as http; +import 'package:flutter/services.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart' +;import 'package:multi_select_flutter/multi_select_flutter.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:video_player/video_player.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:lottie/lottie.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import 'dart:io'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; + + + + + + + + + + + + +class Adv4CreateEntityScreen extends StatefulWidget { + const Adv4CreateEntityScreen({super.key}); + + @override + _Adv4CreateEntityScreenState createState() => _Adv4CreateEntityScreenState(); +} + +class _Adv4CreateEntityScreenState extends State { + +final Map formData = {}; + final _formKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityCreateScreen( + fields: Adv4Fields.getFields(context), + onSubmit: (data) => _handleSubmit(data), + title: 'Adv4', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.createEntity(formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_details_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_details_screen.dart new file mode 100644 index 0000000..7a14177 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_details_screen.dart @@ -0,0 +1,96 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../../../BuilderField/shared/ui/entity_details.dart'; +import '../Adv4_viewModel/Adv4_view_model_screen.dart'; +import 'Adv4_update_entity_screen.dart'; + +class Adv4DetailsScreen extends StatefulWidget { + final Map entity; + + const Adv4DetailsScreen({ + super.key, + required this.entity, + }); + + @override + State createState() => _Adv4DetailsScreenState(); +} + +class _Adv4DetailsScreenState extends State { + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Adv4ViewModelScreen(), + child: Adv4UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + // Refresh the details screen with updated data + setState(() {}); + }); + } + + void _showDeleteDialog(Map entity) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Adv4?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(context, listen: false); + final success = await vm.deleteEntity(entity['id']); + if (success && mounted) { + Navigator.pop(context); // Go back to list + } + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityDetails( + entity: widget.entity, + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + title: 'Adv4', + displayFields: [ + {'key': 'atocidentifier', 'label': 'atocidentifier', 'type': 'select'}, + + {'key': 'atc2identifier', 'label': 'atc2identifier', 'type': 'select'}, + + {'key': 'atdy1', 'label': 'atdy1', 'type': 'select'}, + + {'key': 'atdy2', 'label': 'atdy2', 'type': 'select'}, + + + + + + ], + isLoading: viewModel.isLoading, + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_entity_list_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_entity_list_screen.dart new file mode 100644 index 0000000..33d260a --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_entity_list_screen.dart @@ -0,0 +1,169 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_list.dart'; +import 'Adv4_create_entity_screen.dart'; +import 'Adv4_update_entity_screen.dart'; +import '../Adv4_viewModel/Adv4_view_model_screen.dart'; +import 'Adv4_details_screen.dart';import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_to_text.dart' as stt; +import '../../../../theme/app_style.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../widgets/custom_icon_button.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../theme/app_decoration.dart'; +import 'package:multi_select_flutter/multi_select_flutter.dart'; +import '../../../../Reuseable/reusable_text_field.dart'; +import 'package:provider/provider.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/fields/realted_entity_insert_field.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class Adv4_entity_list_screen extends StatefulWidget { + static const String routeName = '/entity-list'; + + @override + _Adv4_entity_list_screenState createState() => _Adv4_entity_list_screenState(); +} + +class _Adv4_entity_list_screenState extends State { + @override + void initState() { + super.initState(); + _loadData(); + } + + void _loadData() { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + final vm = Provider.of(context, listen: false); + vm.getAllWithPagination(refresh: true); + } + }); + } + + void _navigateToCreateScreen() { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Adv4ViewModelScreen(), + child: const Adv4CreateEntityScreen(), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Adv4ViewModelScreen(), + child: Adv4UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToDetailsScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Adv4ViewModelScreen(), + child: Adv4DetailsScreen(entity: entity), + ), + ), + ); + } + + void _showDeleteDialog(Map entity) { + final parentContext = context; + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Adv4?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(parentContext, listen: false); + await vm.deleteEntity(entity['id']); + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityList( + entities: viewModel.filteredList, + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + hasMoreData: viewModel.hasMoreData, + searchQuery: viewModel.searchQuery, + onSearchChanged: (query) => viewModel.searchadv4(query), + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + onTap: (entity) => _navigateToDetailsScreen(entity), + onRefresh: () => viewModel.refreshData(), + onLoadMore: () => viewModel.getAllWithPagination(), + title: 'Adv4', + onAddNew: _navigateToCreateScreen, + + + + + + + + + + + + + displayFields: [ + {'key': 'atocidentifier', 'label': 'atocidentifier', 'type': 'select'}, + + {'key': 'atc2identifier', 'label': 'atc2identifier', 'type': 'select'}, + + {'key': 'atdy1', 'label': 'atdy1', 'type': 'select'}, + + {'key': 'atdy2', 'label': 'atdy2', 'type': 'select'}, + + + + + + ], + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_fields.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_fields.dart new file mode 100644 index 0000000..e83e02b --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_fields.dart @@ -0,0 +1,199 @@ +import 'package:base_project/BuilderField/shared/fields/number_field.dart'; +import 'package:base_project/BuilderField/shared/fields/password_field.dart'; +import 'package:base_project/BuilderField/shared/fields/phone_field.dart'; +import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart'; + +import '../../../../BuilderField/shared/fields/base_field.dart'; + +import '../../../../BuilderField/shared/fields/date_field.dart'; +import '../../../../BuilderField/shared/fields/datetime_field.dart'; +import '../../../../BuilderField/shared/fields/email_field.dart'; +import 'package:base_project/BuilderField/shared/fields/url_field.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/calculated_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_many_field.dart'; +import '../../../../BuilderField/shared/fields/value_list_picker_field.dart'; +import '../../../../BuilderField/shared/fields/captcha_field.dart'; +import '../../../../BuilderField/shared/fields/switch_field.dart'; +import '../../../../BuilderField/shared/fields/url_field.dart'; + +import '../../../../BuilderField/shared/fields/audio_upload_field.dart'; +import '../../../../BuilderField/shared/fields/checkbox_field.dart'; +import '../../../../BuilderField/shared/fields/file_upload_field.dart'; +import '../../../../BuilderField/shared/fields/image_upload_field.dart'; +import '../../../../BuilderField/shared/fields/radio_field.dart'; +import '../../../../BuilderField/shared/fields/video_upload_field.dart'; + +import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/data_grid_field.dart'; +import '../../../../BuilderField/shared/fields/dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/static_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/currency_field.dart'; +import '../../../../BuilderField/shared/fields/field_group_field.dart'; +import '../../../../BuilderField/shared/fields/qr_code_field.dart'; +import '../../../../BuilderField/shared/fields/barcode_field.dart'; +import '../../../../BuilderField/shared/fields/dependent_dropdown_field.dart'; + import '../Adv4_viewModel/Adv4_view_model_screen.dart';/// Field definitions for Adv4 entity +/// This defines the structure and validation for Adv4 forms +class Adv4Fields { + /// Get field definitions for Adv4 entity + static List getFields(BuildContext context) { + final viewModel = + Provider.of(context, listen: false); + return [ + // Basic Information + + + AutocompleteDropdownField( + fieldKey: 'atoc', + label: 'atoc', + hint: 'Select atoc', + optionsLoader: () async => await viewModel.getatoc(), + + + valueKey: 'id', + displayKey: 'name', + + + isRequired: false, + ), + + + + AutocompleteDropdownField( + fieldKey: 'atc2', + label: 'atc2', + hint: 'Select atc2', + optionsLoader: () async => await viewModel.getatc2(), + + + valueKey: 'id', + displayKey: 'name', + + + isRequired: false, + ), + + + + AutocompleteMultiSelectField( + fieldKey: 'atdy1', + label: 'atdy1', + hint: 'Select atdy1', + isRequired: false, + optionsLoader: () async =>await viewModel.getatdy1(), + + + valueKey: 'name', + displayKey: 'name', + + + + + ), + + + + AutocompleteMultiSelectField( + fieldKey: 'atdy2', + label: 'atdy2', + hint: 'Select atdy2', + isRequired: false, + optionsLoader: () async =>await viewModel.getatdy2(), + + + valueKey: 'description', + displayKey: 'description', + + + + + ), + +OneToOneRelationField( + fieldKey: 'support', + label: 'support', + hint: 'support details', + relationSchema: { + 'title': 'support', + 'box': true, + 'fields': [ + + + { + 'type': 'text', + 'label': 'Description', + 'hint': 'Enter Description', + 'path': 'support.description', + }, + + + + + { + 'type': 'text', + 'label': 'Name', + 'hint': 'Enter Name', + 'path': 'support.name', + }, + + + + ], + }, + ), + +OneToOneRelationField( + fieldKey: 'childform', + label: 'childform', + hint: 'childform details', + relationSchema: { + 'title': 'childform', + 'box': true, + 'fields': [ + + + { + 'type': 'text', + 'label': 'Active', + 'hint': 'Enter Active', + 'path': 'childform.active', + }, + + + + + { + 'type': 'text', + 'label': 'Description', + 'hint': 'Enter Description', + 'path': 'childform.description', + }, + + + + + { + 'type': 'text', + 'label': 'Name', + 'hint': 'Enter Name', + 'path': 'childform.name', + }, + + + + ], + }, + ), + + ]; + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_update_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_update_entity_screen.dart new file mode 100644 index 0000000..dfc8277 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4View/Adv4_update_entity_screen.dart @@ -0,0 +1,83 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:provider/provider.dart'; +import '../Adv4_viewModel/Adv4_view_model_screen.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import 'Adv4_fields.dart';import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import 'package:flutter/material.dart'; +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'dart:math'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; +import 'package:flutter/services.dart'; +class Adv4UpdateEntityScreen extends StatefulWidget { + final Map entity; + + + Adv4UpdateEntityScreen({required this.entity}); + + @override + _Adv4UpdateEntityScreenState createState() => _Adv4UpdateEntityScreenState(); +} + +class _Adv4UpdateEntityScreenState extends State { + final _formKey = GlobalKey(); + +@override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { +// Start with all fields, then remove upload fields (generic filter by keys) + final Set hiddenKeys = { + + + + + + + + + + + + + }; + final fields = Adv4Fields.getFields(context) + .where((f) => !hiddenKeys.contains(f.fieldKey)) + .toList(); return EntityUpdateScreen( + fields: fields, + initialData: widget.entity, + onSubmit: (data) => _handleSubmit(data), + title: 'Adv4', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.updateEntity(widget.entity['id'], formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4_Repo/Adv4_repo_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4_Repo/Adv4_repo_screen.dart new file mode 100644 index 0000000..86e6390 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4_Repo/Adv4_repo_screen.dart @@ -0,0 +1,133 @@ +import 'package:dio/dio.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; +import '../../../../resources/api_constants.dart'; +import 'package:base_project/data/response/api_response.dart'; + +class Adv4RepoScreen { + + final String baseUrl = ApiConstants.baseUrl; + final BaseNetworkService _helper = NetworkApiService(); + final String _endpointPath = '/Adv4/Adv4'; + + Future>>> getEntities() async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl$_endpointPath'); + print('Response received: $response'); + List> entities = const []; + if (response is List) { + entities = response + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } else if (response is Map) { + final dynamic content = response['content']; + if (content is List) { + entities = content + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } + } + return ApiResponse.success(entities); + } catch (e) { + print(' error got $e'); + return ApiResponse.error('Failed to get all entities: $e'); + } + } + + Future>>> getAllWithPagination( + int page, int size) async { + try { + final response = await _helper.getGetApiResponse( + '$baseUrl$_endpointPath/getall/page?page=$page&size=$size'); + + if (response is Map && response['content'] is List) { + final List> entities = + (response['content'] as List).cast>().toList(); + return ApiResponse.success(entities); + } else { + return ApiResponse.error('Invalid response format'); + } + } catch (e) { + return ApiResponse.error('Failed to get all without pagination: $e'); + } + } + + Future>> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to create entity: $e'); + } + } + + Future>> updateEntity( + int entityId, Map entity) async { + try { + final response = await _helper.getPutApiResponse( + '$baseUrl$_endpointPath/$entityId', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to update entity: $e'); + } + } + + Future> deleteEntity(int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId'); + return ApiResponse.success(null); + } catch (e) { + return ApiResponse.error('Failed to delete entity: $e'); + } + } + Future getatoc() async { + try { + String apiUrl = "$baseUrl/Country_ListFilter1/Country_ListFilter1"; + final response = await _helper.getGetApiResponse(apiUrl); + return response; + } catch (e) { + throw Exception('Failed to Get: $e'); + } + } + + Future getatc2() async { + try { + String apiUrl = "$baseUrl/Country_ListFilter1/Country_ListFilter1"; + final response = await _helper.getGetApiResponse(apiUrl); + return response; + } catch (e) { + throw Exception('Failed to Get: $e'); + } + } + + Future getatdy1() async { + try { + String apiUrl = "$baseUrl/Country_ListFilter1/Country_ListFilter1"; + final response = await _helper.getGetApiResponse(apiUrl); + return response; + } catch (e) { + throw Exception('Failed to Get: $e'); + } + } + + Future getatdy2() async { + try { + String apiUrl = "$baseUrl/Country_ListFilter1/Country_ListFilter1"; + final response = await _helper.getGetApiResponse(apiUrl); + return response; + } catch (e) { + throw Exception('Failed to Get: $e'); + } + } + + + + + +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4_viewModel/Adv4_view_model_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4_viewModel/Adv4_view_model_screen.dart new file mode 100644 index 0000000..171f268 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv4/Adv4_viewModel/Adv4_view_model_screen.dart @@ -0,0 +1,414 @@ +import 'package:base_project/data/response/status.dart'; +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/utils/entity_field_store.dart'; +import 'package:flutter/material.dart'; +import '../Adv4_Repo/Adv4_repo_screen.dart'; + +class Adv4ViewModelScreen extends ChangeNotifier{ + final Adv4RepoScreen repo = Adv4RepoScreen(); + + + // State variables + List> _adv4List = []; + List> _filteredList = []; + bool _isLoading = false; + String _errorMessage = ''; + int _currentPage = 0; + int _pageSize = 10; + bool _hasMoreData = true; + String _searchQuery = ''; + + // Getters + List> get adv4List => _adv4List; + List> get filteredList => _filteredList; + bool get isLoading => _isLoading; + String get errorMessage => _errorMessage; + bool get hasMoreData => _hasMoreData; + String get searchQuery => _searchQuery; + + // Set loading state + void _setLoading(bool loading) { + _isLoading = loading; + notifyListeners(); + } + + // Set error message + void _setError(String error) { + _errorMessage = error; + notifyListeners(); + } + + // Clear error + void clearError() { + _errorMessage = ''; + notifyListeners(); + } + + // Get adv4 list + Future getEntities() async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.getEntities(); + + if (response.status == Status.SUCCESS) { + _adv4List = response.data ?? []; + _filteredList = List.from(_adv4List); + _currentPage = 0; + _hasMoreData = true; + } else { + _setError(response.message ?? 'Failed to fetch adv4 list'); + } + } catch (e) { + _setError('Failed to fetch adv4 list: $e'); + } finally { + _setLoading(false); + } + } + + // Get adv4 list with pagination + Future getAllWithPagination({bool refresh = false}) async { + if (refresh) { + _currentPage = 0; + _adv4List.clear(); + _filteredList.clear(); + _hasMoreData = true; + } + + if (!_hasMoreData || _isLoading) return; + + _setLoading(true); + _setError(''); + + try { + final response = await repo.getAllWithPagination(_currentPage, _pageSize); + + if (response.status == Status.SUCCESS) { + final newItems = response.data ?? []; + + if (refresh) { + _adv4List = newItems; + } else { + _adv4List.addAll(newItems); + } + + _filteredList = List.from(_adv4List); + _currentPage++; + + // Check if we have more data + _hasMoreData = newItems.length == _pageSize; + } else { + _setError(response.message ?? 'Failed to fetch Adv4 list'); + } + } catch (e) { + _setError('Failed to fetch adv4 list: $e'); + } finally { + _setLoading(false); + } + } + + + + + + + + + + + + + + // Create Adv4 + Future createEntity(Map entity) async { + _setLoading(true); + _setError(''); + + try { + + + + + + + + + + + + + final response = await repo.createEntity(entity); + + if (response.status == Status.SUCCESS) { +// Get the response ID for image upload + + final responseId = response.data!['id'].toString(); + + + + + + + + + + + + + ToastMessageUtil.showToast( + message: 'adv4 created successfully', + toastType: ToastType.success, + ); + + // Refresh the list + await getEntities(); + + + + + + + + + + + + + return true; + } else { + _setError(response.message ?? 'Failed to create Adv4'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to create Adv4', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to create adv4: $e'); + ToastMessageUtil.showToast( + message: 'Failed to create Adv4: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Update adv4 + Future updateEntity(int id, Map entity) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.updateEntity(id, entity); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Adv4 updated successfully', + toastType: ToastType.success, + ); + + // Update the item in the list + final index = _adv4List.indexWhere((item) => item['id'] == id); + if (index != -1) { + _adv4List[index] = response.data!; + _filteredList = List.from(_adv4List); + notifyListeners(); + } + return true; + } else { + _setError(response.message ?? 'Failed to update Adv4'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to update Adv4', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to update adv4: $e'); + ToastMessageUtil.showToast( + message: 'Failed to update Adv4: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Delete adv4 + Future deleteEntity(int id) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.deleteEntity(id); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Adv4 deleted successfully', + toastType: ToastType.success, + ); + + // Remove the item from the list + _adv4List.removeWhere((item) => item['id'] == id); + _filteredList = List.from(_adv4List); + notifyListeners(); + return true; + } else { + _setError(response.message ?? 'Failed to delete Adv4'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to delete Adv4', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to delete adv4: $e'); + ToastMessageUtil.showToast( + message: 'Failed to delete Adv4: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Search adv4 + void searchadv4(String query) { + _searchQuery = query; + + if (query.isEmpty) { + _filteredList = List.from(_adv4List); + } else { + _filteredList = _adv4List.where((item) { + return + + +(item['atocidentifier']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + + +(item['atc2identifier']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + + +(item['atdy1']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['atdy2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['support']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['childform']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) + + +; + }).toList(); + } + notifyListeners(); + } + + // Clear search + void clearSearch() { + _searchQuery = ''; + _filteredList = List.from(_adv4List); + notifyListeners(); + } + + // Refresh data + Future refreshData() async { + await getAllWithPagination(refresh: true); + } +List> atocItems = []; + + Future>> getatoc() async { + + try { + final value = await repo.getatoc(); + atocItems = (value as List) + .map((item) => item as Map) + .toList(); + + return atocItems; + } catch (e) { + throw Exception('Failed to get all: $e'); + } + } + +List> atc2Items = []; + + Future>> getatc2() async { + + try { + final value = await repo.getatc2(); + atc2Items = (value as List) + .map((item) => item as Map) + .toList(); + + return atc2Items; + } catch (e) { + throw Exception('Failed to get all: $e'); + } + } + +List> atdy1Items = []; + + Future>> getatdy1() async { + + try { + final value = await repo.getatdy1(); + atdy1Items = (value as List) + .map((item) => item as Map) + .toList(); + + return atdy1Items; + } catch (e) { + throw Exception('Failed to get all: $e'); + } + } + +List> atdy2Items = []; + + Future>> getatdy2() async { + + try { + final value = await repo.getatdy2(); + atdy2Items = (value as List) + .map((item) => item as Map) + .toList(); + + return atdy2Items; + } catch (e) { + throw Exception('Failed to get all: $e'); + } + } + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_api_service.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_api_service.dart new file mode 100644 index 0000000..6e6a6ab --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_api_service.dart @@ -0,0 +1,108 @@ +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../resources/api_constants.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; + +class Adv5ApiService { + final String baseUrl = ApiConstants.baseUrl; + + final BaseNetworkService _helper = NetworkApiService(); + + + + Future>> getEntities() async { + + try { + final response = await _helper.getGetApiResponse('$baseUrl/Adv5/Adv5'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all entities: $e'); + } + } +Future>> getAllWithPagination( + int page, int size) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/Adv5/Adv5/getall/page?page=$page&size=$size'); + final entities = + (response['content'] as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all without pagination: $e'); + } + } + Future> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl/Adv5/Adv5', entity); + + print(entity); + + // Assuming the response is a Map + Map responseData = response; + + return responseData; + } catch (e) { + throw Exception('Failed to create entity: $e'); + } + } + + + + + + + + + + + + + + + + + + + + Future updateEntity( int entityId, Map entity) async { + try { + await _helper.getPutApiResponse('$baseUrl/Adv5/Adv5/$entityId', + entity); print(entity); + + } catch (e) { + throw Exception('Failed to update entity: $e'); + } + } + + Future deleteEntity( int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl/Adv5/Adv5/$entityId'); + } catch (e) { + throw Exception('Failed to delete entity: $e'); + } + } + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_create_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_create_entity_screen.dart new file mode 100644 index 0000000..4192840 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_create_entity_screen.dart @@ -0,0 +1,94 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:provider/provider.dart'; +import '../Adv5_viewModel/Adv5_view_model_screen.dart'; +import 'Adv5_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import '../../../../widgets/custom_dropdown_field.dart'; +import 'dart:math'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:intl/intl.dart'; + +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:http/http.dart' as http; +import 'package:flutter/services.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart' +;import 'package:multi_select_flutter/multi_select_flutter.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:video_player/video_player.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:lottie/lottie.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import 'dart:io'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; + + + + + + + + + + + + + + + + + + +class Adv5CreateEntityScreen extends StatefulWidget { + const Adv5CreateEntityScreen({super.key}); + + @override + _Adv5CreateEntityScreenState createState() => _Adv5CreateEntityScreenState(); +} + +class _Adv5CreateEntityScreenState extends State { + +final Map formData = {}; + final _formKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityCreateScreen( + fields: Adv5Fields.getFields(context), + onSubmit: (data) => _handleSubmit(data), + title: 'Adv5', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.createEntity(formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_details_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_details_screen.dart new file mode 100644 index 0000000..5d24657 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_details_screen.dart @@ -0,0 +1,102 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../../../BuilderField/shared/ui/entity_details.dart'; +import '../Adv5_viewModel/Adv5_view_model_screen.dart'; +import 'Adv5_update_entity_screen.dart'; + +class Adv5DetailsScreen extends StatefulWidget { + final Map entity; + + const Adv5DetailsScreen({ + super.key, + required this.entity, + }); + + @override + State createState() => _Adv5DetailsScreenState(); +} + +class _Adv5DetailsScreenState extends State { + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Adv5ViewModelScreen(), + child: Adv5UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + // Refresh the details screen with updated data + setState(() {}); + }); + } + + void _showDeleteDialog(Map entity) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Adv5?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(context, listen: false); + final success = await vm.deleteEntity(entity['id']); + if (success && mounted) { + Navigator.pop(context); // Go back to list + } + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityDetails( + entity: widget.entity, + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + title: 'Adv5', + displayFields: [ + {'key': 'name', 'label': 'Name', 'type': 'text'}, + + + + {'key': 'age', 'label': 'age', 'type': 'number'}, + + {'key': 'age2', 'label': 'age2', 'type': 'number'}, + + {'key': 'addition', 'label': 'addition', 'type': 'calculated_field'}, + + {'key': 'multiplication', 'label': 'multiplication', 'type': 'calculated_field'}, + + {'key': 'value_list_field', 'label': 'Value List Field', 'type': 'value_list'}, + + {'key': 'value_list_field2', 'label': 'Value List Field2', 'type': 'value_list'}, + + + + ], + isLoading: viewModel.isLoading, + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_entity_list_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_entity_list_screen.dart new file mode 100644 index 0000000..599b477 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_entity_list_screen.dart @@ -0,0 +1,181 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_list.dart'; +import 'Adv5_create_entity_screen.dart'; +import 'Adv5_update_entity_screen.dart'; +import '../Adv5_viewModel/Adv5_view_model_screen.dart'; +import 'Adv5_details_screen.dart';import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_to_text.dart' as stt; +import '../../../../theme/app_style.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../widgets/custom_icon_button.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../theme/app_decoration.dart'; +import 'package:multi_select_flutter/multi_select_flutter.dart'; +import '../../../../Reuseable/reusable_text_field.dart'; +import 'package:provider/provider.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/fields/realted_entity_insert_field.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class Adv5_entity_list_screen extends StatefulWidget { + static const String routeName = '/entity-list'; + + @override + _Adv5_entity_list_screenState createState() => _Adv5_entity_list_screenState(); +} + +class _Adv5_entity_list_screenState extends State { + @override + void initState() { + super.initState(); + _loadData(); + } + + void _loadData() { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + final vm = Provider.of(context, listen: false); + vm.getAllWithPagination(refresh: true); + } + }); + } + + void _navigateToCreateScreen() { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Adv5ViewModelScreen(), + child: const Adv5CreateEntityScreen(), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Adv5ViewModelScreen(), + child: Adv5UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToDetailsScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Adv5ViewModelScreen(), + child: Adv5DetailsScreen(entity: entity), + ), + ), + ); + } + + void _showDeleteDialog(Map entity) { + final parentContext = context; + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Adv5?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(parentContext, listen: false); + await vm.deleteEntity(entity['id']); + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityList( + entities: viewModel.filteredList, + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + hasMoreData: viewModel.hasMoreData, + searchQuery: viewModel.searchQuery, + onSearchChanged: (query) => viewModel.searchadv5(query), + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + onTap: (entity) => _navigateToDetailsScreen(entity), + onRefresh: () => viewModel.refreshData(), + onLoadMore: () => viewModel.getAllWithPagination(), + title: 'Adv5', + onAddNew: _navigateToCreateScreen, + + + + + + + + + + + + + + + + + + + displayFields: [ + {'key': 'name', 'label': 'Name', 'type': 'text'}, + + + + {'key': 'age', 'label': 'age', 'type': 'number'}, + + {'key': 'age2', 'label': 'age2', 'type': 'number'}, + + {'key': 'addition', 'label': 'addition', 'type': 'calculated_field'}, + + {'key': 'multiplication', 'label': 'multiplication', 'type': 'calculated_field'}, + + {'key': 'value_list_field', 'label': 'Value List Field', 'type': 'value_list'}, + + {'key': 'value_list_field2', 'label': 'Value List Field2', 'type': 'value_list'}, + + + + ], + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_fields.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_fields.dart new file mode 100644 index 0000000..0af20d1 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_fields.dart @@ -0,0 +1,260 @@ +import 'package:base_project/BuilderField/shared/fields/number_field.dart'; +import 'package:base_project/BuilderField/shared/fields/password_field.dart'; +import 'package:base_project/BuilderField/shared/fields/phone_field.dart'; +import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart'; + +import '../../../../BuilderField/shared/fields/base_field.dart'; + +import '../../../../BuilderField/shared/fields/date_field.dart'; +import '../../../../BuilderField/shared/fields/datetime_field.dart'; +import '../../../../BuilderField/shared/fields/email_field.dart'; +import 'package:base_project/BuilderField/shared/fields/url_field.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/calculated_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_many_field.dart'; +import '../../../../BuilderField/shared/fields/value_list_picker_field.dart'; +import '../../../../BuilderField/shared/fields/captcha_field.dart'; +import '../../../../BuilderField/shared/fields/switch_field.dart'; +import '../../../../BuilderField/shared/fields/url_field.dart'; + +import '../../../../BuilderField/shared/fields/audio_upload_field.dart'; +import '../../../../BuilderField/shared/fields/checkbox_field.dart'; +import '../../../../BuilderField/shared/fields/file_upload_field.dart'; +import '../../../../BuilderField/shared/fields/image_upload_field.dart'; +import '../../../../BuilderField/shared/fields/radio_field.dart'; +import '../../../../BuilderField/shared/fields/video_upload_field.dart'; + +import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/data_grid_field.dart'; +import '../../../../BuilderField/shared/fields/dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/static_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/currency_field.dart'; +import '../../../../BuilderField/shared/fields/field_group_field.dart'; +import '../../../../BuilderField/shared/fields/qr_code_field.dart'; +import '../../../../BuilderField/shared/fields/barcode_field.dart'; +import '../../../../BuilderField/shared/fields/dependent_dropdown_field.dart'; + import '../Adv5_viewModel/Adv5_view_model_screen.dart';/// Field definitions for Adv5 entity +/// This defines the structure and validation for Adv5 forms +class Adv5Fields { + /// Get field definitions for Adv5 entity + static List getFields(BuildContext context) { + final viewModel = + Provider.of(context, listen: false); + return [ + // Basic Information + CustomTextField( + fieldKey: 'name', + label: 'Name', + hint: 'Enter Name', + isRequired: true, + maxLength: 50, + ), + + OneToManyField( + fieldKey: 'support', + label: 'support', + fieldSchema: [ + + +{ + 'type': 'text', + 'path': 'description', + 'label': 'Description', + 'hint': 'Enter Description', + 'required': true, + }, + + + + +{ + 'type': 'text', + 'path': 'name', + 'label': 'Name', + 'hint': 'Enter Name', + 'required': true, + }, + + + + + + ], + ), + + // Number Fields + NumberField( + fieldKey: 'age', + label: 'age', + hint: 'Enter age', + isRequired: false, + min: 0, + decimalPlaces: 0, + ), + + // Number Fields + NumberField( + fieldKey: 'age2', + label: 'age2', + hint: 'Enter age2', + isRequired: false, + min: 0, + decimalPlaces: 0, + ), + + CalculatedField( + fieldKey: 'addition', + label: 'addition', + hint: '', + sourceKeys: const [ + + +'age', + + + + +'age2', + + + + + +], + operation: 'Addition', + ), + + CalculatedField( + fieldKey: 'multiplication', + label: 'multiplication', + hint: '', + sourceKeys: const [ + + +'age', + + + + +'age2', + + + + + +], + operation: 'Multiplication', + ), + + +// 3) Value list picker – fill fields from selection (provide your loader) + ValueListPickerField( + fieldKey: 'value_list_field', + label: 'Value List Field', + optionsLoader: () async { + try { + await viewModel.getEntities(); + final response = viewModel.adv5List; + return response; + } catch (e) { + // Return empty list if API fails + return >[]; + } + }, + fillMappings: const { + + + 'age': 'age', + + + + }, + ), + + +// 3) Value list picker – fill fields from selection (provide your loader) + ValueListPickerField( + fieldKey: 'value_list_field2', + label: 'Value List Field2', + optionsLoader: () async { + try { + await viewModel.getEntities(); + final response = viewModel.adv5List; + return response; + } catch (e) { + // Return empty list if API fails + return >[]; + } + }, + fillMappings: const { + + + 'name': 'name', + + + + 'age2': 'age2', + + + + 'age': 'age', + + + + }, + ), + + OneToManyField( + fieldKey: 'childform', + label: 'childform', + fieldSchema: [ + + +{ + 'type': 'text', + 'path': 'active', + 'label': 'Active', + 'hint': 'Enter Active', + 'required': true, + }, + + + + +{ + 'type': 'text', + 'path': 'description', + 'label': 'Description', + 'hint': 'Enter Description', + 'required': true, + }, + + + + +{ + 'type': 'text', + 'path': 'name', + 'label': 'Name', + 'hint': 'Enter Name', + 'required': true, + }, + + + + + + ], + ), + + ]; + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_update_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_update_entity_screen.dart new file mode 100644 index 0000000..58c0199 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5View/Adv5_update_entity_screen.dart @@ -0,0 +1,89 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:provider/provider.dart'; +import '../Adv5_viewModel/Adv5_view_model_screen.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import 'Adv5_fields.dart';import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import 'package:flutter/material.dart'; +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'dart:math'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; +import 'package:flutter/services.dart'; +class Adv5UpdateEntityScreen extends StatefulWidget { + final Map entity; + + + Adv5UpdateEntityScreen({required this.entity}); + + @override + _Adv5UpdateEntityScreenState createState() => _Adv5UpdateEntityScreenState(); +} + +class _Adv5UpdateEntityScreenState extends State { + final _formKey = GlobalKey(); + +@override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { +// Start with all fields, then remove upload fields (generic filter by keys) + final Set hiddenKeys = { + + + + + + + + + + + + + + + + + + + }; + final fields = Adv5Fields.getFields(context) + .where((f) => !hiddenKeys.contains(f.fieldKey)) + .toList(); return EntityUpdateScreen( + fields: fields, + initialData: widget.entity, + onSubmit: (data) => _handleSubmit(data), + title: 'Adv5', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.updateEntity(widget.entity['id'], formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5_Repo/Adv5_repo_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5_Repo/Adv5_repo_screen.dart new file mode 100644 index 0000000..22468cc --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5_Repo/Adv5_repo_screen.dart @@ -0,0 +1,107 @@ +import 'package:dio/dio.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; +import '../../../../resources/api_constants.dart'; +import 'package:base_project/data/response/api_response.dart'; + +class Adv5RepoScreen { + + final String baseUrl = ApiConstants.baseUrl; + final BaseNetworkService _helper = NetworkApiService(); + final String _endpointPath = '/Adv5/Adv5'; + + Future>>> getEntities() async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl$_endpointPath'); + print('Response received: $response'); + List> entities = const []; + if (response is List) { + entities = response + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } else if (response is Map) { + final dynamic content = response['content']; + if (content is List) { + entities = content + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } + } + return ApiResponse.success(entities); + } catch (e) { + print(' error got $e'); + return ApiResponse.error('Failed to get all entities: $e'); + } + } + + Future>>> getAllWithPagination( + int page, int size) async { + try { + final response = await _helper.getGetApiResponse( + '$baseUrl$_endpointPath/getall/page?page=$page&size=$size'); + + if (response is Map && response['content'] is List) { + final List> entities = + (response['content'] as List).cast>().toList(); + return ApiResponse.success(entities); + } else { + return ApiResponse.error('Invalid response format'); + } + } catch (e) { + return ApiResponse.error('Failed to get all without pagination: $e'); + } + } + + Future>> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to create entity: $e'); + } + } + + Future>> updateEntity( + int entityId, Map entity) async { + try { + final response = await _helper.getPutApiResponse( + '$baseUrl$_endpointPath/$entityId', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to update entity: $e'); + } + } + + Future> deleteEntity(int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId'); + return ApiResponse.success(null); + } catch (e) { + return ApiResponse.error('Failed to delete entity: $e'); + } + } + + + + + + + + + + + + + + + + + + +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5_viewModel/Adv5_view_model_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5_viewModel/Adv5_view_model_screen.dart new file mode 100644 index 0000000..0f0563d --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Adv5/Adv5_viewModel/Adv5_view_model_screen.dart @@ -0,0 +1,388 @@ +import 'package:base_project/data/response/status.dart'; +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/utils/entity_field_store.dart'; +import 'package:flutter/material.dart'; +import '../Adv5_Repo/Adv5_repo_screen.dart'; + +class Adv5ViewModelScreen extends ChangeNotifier{ + final Adv5RepoScreen repo = Adv5RepoScreen(); + + + // State variables + List> _adv5List = []; + List> _filteredList = []; + bool _isLoading = false; + String _errorMessage = ''; + int _currentPage = 0; + int _pageSize = 10; + bool _hasMoreData = true; + String _searchQuery = ''; + + // Getters + List> get adv5List => _adv5List; + List> get filteredList => _filteredList; + bool get isLoading => _isLoading; + String get errorMessage => _errorMessage; + bool get hasMoreData => _hasMoreData; + String get searchQuery => _searchQuery; + + // Set loading state + void _setLoading(bool loading) { + _isLoading = loading; + notifyListeners(); + } + + // Set error message + void _setError(String error) { + _errorMessage = error; + notifyListeners(); + } + + // Clear error + void clearError() { + _errorMessage = ''; + notifyListeners(); + } + + // Get adv5 list + Future getEntities() async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.getEntities(); + + if (response.status == Status.SUCCESS) { + _adv5List = response.data ?? []; + _filteredList = List.from(_adv5List); + _currentPage = 0; + _hasMoreData = true; + } else { + _setError(response.message ?? 'Failed to fetch adv5 list'); + } + } catch (e) { + _setError('Failed to fetch adv5 list: $e'); + } finally { + _setLoading(false); + } + } + + // Get adv5 list with pagination + Future getAllWithPagination({bool refresh = false}) async { + if (refresh) { + _currentPage = 0; + _adv5List.clear(); + _filteredList.clear(); + _hasMoreData = true; + } + + if (!_hasMoreData || _isLoading) return; + + _setLoading(true); + _setError(''); + + try { + final response = await repo.getAllWithPagination(_currentPage, _pageSize); + + if (response.status == Status.SUCCESS) { + final newItems = response.data ?? []; + + if (refresh) { + _adv5List = newItems; + } else { + _adv5List.addAll(newItems); + } + + _filteredList = List.from(_adv5List); + _currentPage++; + + // Check if we have more data + _hasMoreData = newItems.length == _pageSize; + } else { + _setError(response.message ?? 'Failed to fetch Adv5 list'); + } + } catch (e) { + _setError('Failed to fetch adv5 list: $e'); + } finally { + _setLoading(false); + } + } + + + + + + + + + + + + + + + + + + + + // Create Adv5 + Future createEntity(Map entity) async { + _setLoading(true); + _setError(''); + + try { + + + + + + + + + + + + + + + + + + + final response = await repo.createEntity(entity); + + if (response.status == Status.SUCCESS) { +// Get the response ID for image upload + + final responseId = response.data!['id'].toString(); + + + + + + + + + + + + + + + + + + + ToastMessageUtil.showToast( + message: 'adv5 created successfully', + toastType: ToastType.success, + ); + + // Refresh the list + await getEntities(); + + + + + + + + + + + + + + + + + + + return true; + } else { + _setError(response.message ?? 'Failed to create Adv5'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to create Adv5', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to create adv5: $e'); + ToastMessageUtil.showToast( + message: 'Failed to create Adv5: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Update adv5 + Future updateEntity(int id, Map entity) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.updateEntity(id, entity); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Adv5 updated successfully', + toastType: ToastType.success, + ); + + // Update the item in the list + final index = _adv5List.indexWhere((item) => item['id'] == id); + if (index != -1) { + _adv5List[index] = response.data!; + _filteredList = List.from(_adv5List); + notifyListeners(); + } + return true; + } else { + _setError(response.message ?? 'Failed to update Adv5'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to update Adv5', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to update adv5: $e'); + ToastMessageUtil.showToast( + message: 'Failed to update Adv5: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Delete adv5 + Future deleteEntity(int id) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.deleteEntity(id); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Adv5 deleted successfully', + toastType: ToastType.success, + ); + + // Remove the item from the list + _adv5List.removeWhere((item) => item['id'] == id); + _filteredList = List.from(_adv5List); + notifyListeners(); + return true; + } else { + _setError(response.message ?? 'Failed to delete Adv5'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to delete Adv5', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to delete adv5: $e'); + ToastMessageUtil.showToast( + message: 'Failed to delete Adv5: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Search adv5 + void searchadv5(String query) { + _searchQuery = query; + + if (query.isEmpty) { + _filteredList = List.from(_adv5List); + } else { + _filteredList = _adv5List.where((item) { + return + + +(item['name']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['support']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['age']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['age2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + + + + + + + + + +(item['childform']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) + + +; + }).toList(); + } + notifyListeners(); + } + + // Clear search + void clearSearch() { + _searchQuery = ''; + _filteredList = List.from(_adv5List); + notifyListeners(); + } + + // Refresh data + Future refreshData() async { + await getAllWithPagination(refresh: true); + } + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_api_service.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_api_service.dart new file mode 100644 index 0000000..a46bd9e --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_api_service.dart @@ -0,0 +1,120 @@ +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../resources/api_constants.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; + +class Basicp1ApiService { + final String baseUrl = ApiConstants.baseUrl; + + final BaseNetworkService _helper = NetworkApiService(); + + + + Future>> getEntities() async { + + try { + final response = await _helper.getGetApiResponse('$baseUrl/Basicp1/Basicp1'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all entities: $e'); + } + } +Future>> getAllWithPagination( + int page, int size) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/Basicp1/Basicp1/getall/page?page=$page&size=$size'); + final entities = + (response['content'] as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all without pagination: $e'); + } + } + Future> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl/Basicp1/Basicp1', entity); + + print(entity); + + // Assuming the response is a Map + Map responseData = response; + + return responseData; + } catch (e) { + throw Exception('Failed to create entity: $e'); + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + Future updateEntity( int entityId, Map entity) async { + try { + await _helper.getPutApiResponse('$baseUrl/Basicp1/Basicp1/$entityId', + entity); print(entity); + + } catch (e) { + throw Exception('Failed to update entity: $e'); + } + } + + Future deleteEntity( int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl/Basicp1/Basicp1/$entityId'); + } catch (e) { + throw Exception('Failed to delete entity: $e'); + } + } + + + + + + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_create_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_create_entity_screen.dart new file mode 100644 index 0000000..9c46538 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_create_entity_screen.dart @@ -0,0 +1,100 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:provider/provider.dart'; +import '../Basicp1_viewModel/Basicp1_view_model_screen.dart'; +import 'Basicp1_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import '../../../../widgets/custom_dropdown_field.dart'; +import 'dart:math'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:intl/intl.dart'; + +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:http/http.dart' as http; +import 'package:flutter/services.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart' +;import 'package:multi_select_flutter/multi_select_flutter.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:video_player/video_player.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:lottie/lottie.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import 'dart:io'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; + + + + + + + + + + + + + + + + + + + + + + + + +class Basicp1CreateEntityScreen extends StatefulWidget { + const Basicp1CreateEntityScreen({super.key}); + + @override + _Basicp1CreateEntityScreenState createState() => _Basicp1CreateEntityScreenState(); +} + +class _Basicp1CreateEntityScreenState extends State { + +final Map formData = {}; + final _formKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityCreateScreen( + fields: Basicp1Fields.getFields(context), + onSubmit: (data) => _handleSubmit(data), + title: 'Basicp1', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.createEntity(formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_details_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_details_screen.dart new file mode 100644 index 0000000..348476e --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_details_screen.dart @@ -0,0 +1,108 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../../../BuilderField/shared/ui/entity_details.dart'; +import '../Basicp1_viewModel/Basicp1_view_model_screen.dart'; +import 'Basicp1_update_entity_screen.dart'; + +class Basicp1DetailsScreen extends StatefulWidget { + final Map entity; + + const Basicp1DetailsScreen({ + super.key, + required this.entity, + }); + + @override + State createState() => _Basicp1DetailsScreenState(); +} + +class _Basicp1DetailsScreenState extends State { + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Basicp1ViewModelScreen(), + child: Basicp1UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + // Refresh the details screen with updated data + setState(() {}); + }); + } + + void _showDeleteDialog(Map entity) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Basicp1?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(context, listen: false); + final success = await vm.deleteEntity(entity['id']); + if (success && mounted) { + Navigator.pop(context); // Go back to list + } + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityDetails( + entity: widget.entity, + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + title: 'Basicp1', + displayFields: [ + {'key': 'name', 'label': 'name', 'type': 'text'}, + + {'key': 'name2', 'label': 'name2', 'type': 'text'}, + + {'key': 'number1', 'label': 'number1', 'type': 'number'}, + + {'key': 'number2', 'label': 'number2', 'type': 'number'}, + + {'key': 'phone_number', 'label': 'Phone Number', 'type': 'phone'}, + + {'key': 'phone_number2', 'label': 'Phone Number2', 'type': 'phone'}, + + {'key': 'paragraph_field', 'label': 'Paragraph Field', 'type': 'paragraph'}, + + {'key': 'paragraph_field2', 'label': 'Paragraph Field2', 'type': 'paragraph'}, + + {'key': 'password_field', 'label': 'Password Field', 'type': 'password'}, + + {'key': 'textarea', 'label': 'Textarea', 'type': 'textarea'}, + + {'key': 'textarea_field', 'label': 'Textarea Field', 'type': 'textarea'}, + + {'key': 'textarea_field2', 'label': 'Textarea Field2', 'type': 'textarea'}, + + ], + isLoading: viewModel.isLoading, + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_entity_list_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_entity_list_screen.dart new file mode 100644 index 0000000..4b0a807 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_entity_list_screen.dart @@ -0,0 +1,193 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_list.dart'; +import 'Basicp1_create_entity_screen.dart'; +import 'Basicp1_update_entity_screen.dart'; +import '../Basicp1_viewModel/Basicp1_view_model_screen.dart'; +import 'Basicp1_details_screen.dart';import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_to_text.dart' as stt; +import '../../../../theme/app_style.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../widgets/custom_icon_button.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../theme/app_decoration.dart'; +import 'package:multi_select_flutter/multi_select_flutter.dart'; +import '../../../../Reuseable/reusable_text_field.dart'; +import 'package:provider/provider.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/fields/realted_entity_insert_field.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class Basicp1_entity_list_screen extends StatefulWidget { + static const String routeName = '/entity-list'; + + @override + _Basicp1_entity_list_screenState createState() => _Basicp1_entity_list_screenState(); +} + +class _Basicp1_entity_list_screenState extends State { + @override + void initState() { + super.initState(); + _loadData(); + } + + void _loadData() { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + final vm = Provider.of(context, listen: false); + vm.getAllWithPagination(refresh: true); + } + }); + } + + void _navigateToCreateScreen() { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Basicp1ViewModelScreen(), + child: const Basicp1CreateEntityScreen(), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Basicp1ViewModelScreen(), + child: Basicp1UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToDetailsScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Basicp1ViewModelScreen(), + child: Basicp1DetailsScreen(entity: entity), + ), + ), + ); + } + + void _showDeleteDialog(Map entity) { + final parentContext = context; + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Basicp1?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(parentContext, listen: false); + await vm.deleteEntity(entity['id']); + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityList( + entities: viewModel.filteredList, + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + hasMoreData: viewModel.hasMoreData, + searchQuery: viewModel.searchQuery, + onSearchChanged: (query) => viewModel.searchbasicp1(query), + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + onTap: (entity) => _navigateToDetailsScreen(entity), + onRefresh: () => viewModel.refreshData(), + onLoadMore: () => viewModel.getAllWithPagination(), + title: 'Basicp1', + onAddNew: _navigateToCreateScreen, + + + + + + + + + + + + + + + + + + + + + + + + + displayFields: [ + {'key': 'name', 'label': 'name', 'type': 'text'}, + + {'key': 'name2', 'label': 'name2', 'type': 'text'}, + + {'key': 'number1', 'label': 'number1', 'type': 'number'}, + + {'key': 'number2', 'label': 'number2', 'type': 'number'}, + + {'key': 'phone_number', 'label': 'Phone Number', 'type': 'phone'}, + + {'key': 'phone_number2', 'label': 'Phone Number2', 'type': 'phone'}, + + {'key': 'paragraph_field', 'label': 'Paragraph Field', 'type': 'paragraph'}, + + {'key': 'paragraph_field2', 'label': 'Paragraph Field2', 'type': 'paragraph'}, + + {'key': 'password_field', 'label': 'Password Field', 'type': 'password'}, + + {'key': 'textarea', 'label': 'Textarea', 'type': 'textarea'}, + + {'key': 'textarea_field', 'label': 'Textarea Field', 'type': 'textarea'}, + + {'key': 'textarea_field2', 'label': 'Textarea Field2', 'type': 'textarea'}, + + ], + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_fields.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_fields.dart new file mode 100644 index 0000000..d6cd717 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_fields.dart @@ -0,0 +1,167 @@ +import 'package:base_project/BuilderField/shared/fields/number_field.dart'; +import 'package:base_project/BuilderField/shared/fields/password_field.dart'; +import 'package:base_project/BuilderField/shared/fields/phone_field.dart'; +import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart'; + +import '../../../../BuilderField/shared/fields/base_field.dart'; + +import '../../../../BuilderField/shared/fields/date_field.dart'; +import '../../../../BuilderField/shared/fields/datetime_field.dart'; +import '../../../../BuilderField/shared/fields/email_field.dart'; +import 'package:base_project/BuilderField/shared/fields/url_field.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/calculated_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_many_field.dart'; +import '../../../../BuilderField/shared/fields/value_list_picker_field.dart'; +import '../../../../BuilderField/shared/fields/captcha_field.dart'; +import '../../../../BuilderField/shared/fields/switch_field.dart'; +import '../../../../BuilderField/shared/fields/url_field.dart'; + +import '../../../../BuilderField/shared/fields/audio_upload_field.dart'; +import '../../../../BuilderField/shared/fields/checkbox_field.dart'; +import '../../../../BuilderField/shared/fields/file_upload_field.dart'; +import '../../../../BuilderField/shared/fields/image_upload_field.dart'; +import '../../../../BuilderField/shared/fields/radio_field.dart'; +import '../../../../BuilderField/shared/fields/video_upload_field.dart'; + +import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/data_grid_field.dart'; +import '../../../../BuilderField/shared/fields/dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/static_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/currency_field.dart'; +import '../../../../BuilderField/shared/fields/field_group_field.dart'; +import '../../../../BuilderField/shared/fields/qr_code_field.dart'; +import '../../../../BuilderField/shared/fields/barcode_field.dart'; +import '../../../../BuilderField/shared/fields/dependent_dropdown_field.dart'; + import '../Basicp1_viewModel/Basicp1_view_model_screen.dart';/// Field definitions for Basicp1 entity +/// This defines the structure and validation for Basicp1 forms +class Basicp1Fields { + /// Get field definitions for Basicp1 entity + static List getFields(BuildContext context) { + final viewModel = + Provider.of(context, listen: false); + return [ + // Basic Information + CustomTextField( + fieldKey: 'name', + label: 'name', + hint: 'Enter name', + isRequired: true, + maxLength: 50, + ), + + CustomTextField( + fieldKey: 'name2', + label: 'name2', + hint: 'Enter name2', + isRequired: true, + maxLength: 50, + ), + + // Number Fields + NumberField( + fieldKey: 'number1', + label: 'number1', + hint: 'Enter number1', + isRequired: false, + min: 0, + decimalPlaces: 0, + ), + + // Number Fields + NumberField( + fieldKey: 'number2', + label: 'number2', + hint: 'Enter number2', + isRequired: false, + min: 0, + decimalPlaces: 0, + ), + + PhoneField( + fieldKey: 'phone_number', + label: 'Phone Number', + hint: 'Enter Phone Number', + isRequired: false, + countryCode: '+91', + ), + + PhoneField( + fieldKey: 'phone_number2', + label: 'Phone Number2', + hint: 'Enter Phone Number2', + isRequired: false, + countryCode: '+91', + ), + +CustomTextField( + fieldKey: 'paragraph_field', + label: 'Paragraph Field', + hint: 'Enter Paragraph Field', + isRequired: false, + maxLength: 500, + ), + +CustomTextField( + fieldKey: 'paragraph_field2', + label: 'Paragraph Field2', + hint: 'Enter Paragraph Field2', + isRequired: false, + maxLength: 500, + ), + + + // Password Fields (dynamic names supported via fieldKey) + PasswordField( + fieldKey: 'password_field', + label: 'Password Field', + hint: 'Enter Password Field', + isRequired: false, + maxLength: 50, + groupId: 'p1', + ), + PasswordField( + fieldKey: 'confirm+password_field', + label: 'Confirm Password Field', + hint: 'Confirm Password Field', + isRequired: false, + maxLength: 50, + groupId: 'p1', + isConfirm: true, + ), + +CustomTextField( + fieldKey: 'textarea', + label: 'Textarea', + hint: 'Enter Textarea', + isRequired: false, + maxLength: 1000, + ), + +CustomTextField( + fieldKey: 'textarea_field', + label: 'Textarea Field', + hint: 'Enter Textarea Field', + isRequired: false, + maxLength: 1000, + ), + +CustomTextField( + fieldKey: 'textarea_field2', + label: 'Textarea Field2', + hint: 'Enter Textarea Field2', + isRequired: false, + maxLength: 1000, + ), + + ]; + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_update_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_update_entity_screen.dart new file mode 100644 index 0000000..de956a7 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_update_entity_screen.dart @@ -0,0 +1,95 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:provider/provider.dart'; +import '../Basicp1_viewModel/Basicp1_view_model_screen.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import 'Basicp1_fields.dart';import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import 'package:flutter/material.dart'; +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'dart:math'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; +import 'package:flutter/services.dart'; +class Basicp1UpdateEntityScreen extends StatefulWidget { + final Map entity; + + + Basicp1UpdateEntityScreen({required this.entity}); + + @override + _Basicp1UpdateEntityScreenState createState() => _Basicp1UpdateEntityScreenState(); +} + +class _Basicp1UpdateEntityScreenState extends State { + final _formKey = GlobalKey(); + +@override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { +// Start with all fields, then remove upload fields (generic filter by keys) + final Set hiddenKeys = { + + + + + + + + + + + + + + + + + + + + + + + + + }; + final fields = Basicp1Fields.getFields(context) + .where((f) => !hiddenKeys.contains(f.fieldKey)) + .toList(); return EntityUpdateScreen( + fields: fields, + initialData: widget.entity, + onSubmit: (data) => _handleSubmit(data), + title: 'Basicp1', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.updateEntity(widget.entity['id'], formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1_Repo/Basicp1_repo_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1_Repo/Basicp1_repo_screen.dart new file mode 100644 index 0000000..6c48c16 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1_Repo/Basicp1_repo_screen.dart @@ -0,0 +1,113 @@ +import 'package:dio/dio.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; +import '../../../../resources/api_constants.dart'; +import 'package:base_project/data/response/api_response.dart'; + +class Basicp1RepoScreen { + + final String baseUrl = ApiConstants.baseUrl; + final BaseNetworkService _helper = NetworkApiService(); + final String _endpointPath = '/Basicp1/Basicp1'; + + Future>>> getEntities() async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl$_endpointPath'); + print('Response received: $response'); + List> entities = const []; + if (response is List) { + entities = response + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } else if (response is Map) { + final dynamic content = response['content']; + if (content is List) { + entities = content + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } + } + return ApiResponse.success(entities); + } catch (e) { + print(' error got $e'); + return ApiResponse.error('Failed to get all entities: $e'); + } + } + + Future>>> getAllWithPagination( + int page, int size) async { + try { + final response = await _helper.getGetApiResponse( + '$baseUrl$_endpointPath/getall/page?page=$page&size=$size'); + + if (response is Map && response['content'] is List) { + final List> entities = + (response['content'] as List).cast>().toList(); + return ApiResponse.success(entities); + } else { + return ApiResponse.error('Invalid response format'); + } + } catch (e) { + return ApiResponse.error('Failed to get all without pagination: $e'); + } + } + + Future>> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to create entity: $e'); + } + } + + Future>> updateEntity( + int entityId, Map entity) async { + try { + final response = await _helper.getPutApiResponse( + '$baseUrl$_endpointPath/$entityId', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to update entity: $e'); + } + } + + Future> deleteEntity(int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId'); + return ApiResponse.success(null); + } catch (e) { + return ApiResponse.error('Failed to delete entity: $e'); + } + } + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1_viewModel/Basicp1_view_model_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1_viewModel/Basicp1_view_model_screen.dart new file mode 100644 index 0000000..1a59511 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp1/Basicp1_viewModel/Basicp1_view_model_screen.dart @@ -0,0 +1,452 @@ +import 'package:base_project/data/response/status.dart'; +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/utils/entity_field_store.dart'; +import 'package:flutter/material.dart'; +import '../Basicp1_Repo/Basicp1_repo_screen.dart'; + +class Basicp1ViewModelScreen extends ChangeNotifier{ + final Basicp1RepoScreen repo = Basicp1RepoScreen(); + + + // State variables + List> _basicp1List = []; + List> _filteredList = []; + bool _isLoading = false; + String _errorMessage = ''; + int _currentPage = 0; + int _pageSize = 10; + bool _hasMoreData = true; + String _searchQuery = ''; + + // Getters + List> get basicp1List => _basicp1List; + List> get filteredList => _filteredList; + bool get isLoading => _isLoading; + String get errorMessage => _errorMessage; + bool get hasMoreData => _hasMoreData; + String get searchQuery => _searchQuery; + + // Set loading state + void _setLoading(bool loading) { + _isLoading = loading; + notifyListeners(); + } + + // Set error message + void _setError(String error) { + _errorMessage = error; + notifyListeners(); + } + + // Clear error + void clearError() { + _errorMessage = ''; + notifyListeners(); + } + + // Get basicp1 list + Future getEntities() async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.getEntities(); + + if (response.status == Status.SUCCESS) { + _basicp1List = response.data ?? []; + _filteredList = List.from(_basicp1List); + _currentPage = 0; + _hasMoreData = true; + } else { + _setError(response.message ?? 'Failed to fetch basicp1 list'); + } + } catch (e) { + _setError('Failed to fetch basicp1 list: $e'); + } finally { + _setLoading(false); + } + } + + // Get basicp1 list with pagination + Future getAllWithPagination({bool refresh = false}) async { + if (refresh) { + _currentPage = 0; + _basicp1List.clear(); + _filteredList.clear(); + _hasMoreData = true; + } + + if (!_hasMoreData || _isLoading) return; + + _setLoading(true); + _setError(''); + + try { + final response = await repo.getAllWithPagination(_currentPage, _pageSize); + + if (response.status == Status.SUCCESS) { + final newItems = response.data ?? []; + + if (refresh) { + _basicp1List = newItems; + } else { + _basicp1List.addAll(newItems); + } + + _filteredList = List.from(_basicp1List); + _currentPage++; + + // Check if we have more data + _hasMoreData = newItems.length == _pageSize; + } else { + _setError(response.message ?? 'Failed to fetch Basicp1 list'); + } + } catch (e) { + _setError('Failed to fetch basicp1 list: $e'); + } finally { + _setLoading(false); + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + // Create Basicp1 + Future createEntity(Map entity) async { + _setLoading(true); + _setError(''); + + try { + + + + + + + + + + + + + + + + + + + + + + + + + final response = await repo.createEntity(entity); + + if (response.status == Status.SUCCESS) { +// Get the response ID for image upload + + final responseId = response.data!['id'].toString(); + + + + + + + + + + + + + + + + + + + + + + + + + ToastMessageUtil.showToast( + message: 'basicp1 created successfully', + toastType: ToastType.success, + ); + + // Refresh the list + await getEntities(); + + + + + + + + + + + + + + + + + + + + + + + + + return true; + } else { + _setError(response.message ?? 'Failed to create Basicp1'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to create Basicp1', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to create basicp1: $e'); + ToastMessageUtil.showToast( + message: 'Failed to create Basicp1: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Update basicp1 + Future updateEntity(int id, Map entity) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.updateEntity(id, entity); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Basicp1 updated successfully', + toastType: ToastType.success, + ); + + // Update the item in the list + final index = _basicp1List.indexWhere((item) => item['id'] == id); + if (index != -1) { + _basicp1List[index] = response.data!; + _filteredList = List.from(_basicp1List); + notifyListeners(); + } + return true; + } else { + _setError(response.message ?? 'Failed to update Basicp1'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to update Basicp1', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to update basicp1: $e'); + ToastMessageUtil.showToast( + message: 'Failed to update Basicp1: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Delete basicp1 + Future deleteEntity(int id) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.deleteEntity(id); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Basicp1 deleted successfully', + toastType: ToastType.success, + ); + + // Remove the item from the list + _basicp1List.removeWhere((item) => item['id'] == id); + _filteredList = List.from(_basicp1List); + notifyListeners(); + return true; + } else { + _setError(response.message ?? 'Failed to delete Basicp1'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to delete Basicp1', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to delete basicp1: $e'); + ToastMessageUtil.showToast( + message: 'Failed to delete Basicp1: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Search basicp1 + void searchbasicp1(String query) { + _searchQuery = query; + + if (query.isEmpty) { + _filteredList = List.from(_basicp1List); + } else { + _filteredList = _basicp1List.where((item) { + return + + +(item['name']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['name2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['number1']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['number2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['phone_number']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['phone_number2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['paragraph_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['paragraph_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['password_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['textarea']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['textarea_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['textarea_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) + + +; + }).toList(); + } + notifyListeners(); + } + + // Clear search + void clearSearch() { + _searchQuery = ''; + _filteredList = List.from(_basicp1List); + notifyListeners(); + } + + // Refresh data + Future refreshData() async { + await getAllWithPagination(refresh: true); + } + + + + + + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_api_service.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_api_service.dart new file mode 100644 index 0000000..a56fecf --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_api_service.dart @@ -0,0 +1,108 @@ +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../resources/api_constants.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; + +class Basicp2ApiService { + final String baseUrl = ApiConstants.baseUrl; + + final BaseNetworkService _helper = NetworkApiService(); + + + + Future>> getEntities() async { + + try { + final response = await _helper.getGetApiResponse('$baseUrl/Basicp2/Basicp2'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all entities: $e'); + } + } +Future>> getAllWithPagination( + int page, int size) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/Basicp2/Basicp2/getall/page?page=$page&size=$size'); + final entities = + (response['content'] as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all without pagination: $e'); + } + } + Future> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl/Basicp2/Basicp2', entity); + + print(entity); + + // Assuming the response is a Map + Map responseData = response; + + return responseData; + } catch (e) { + throw Exception('Failed to create entity: $e'); + } + } + + + + + + + + + + + + + + + + + + + + Future updateEntity( int entityId, Map entity) async { + try { + await _helper.getPutApiResponse('$baseUrl/Basicp2/Basicp2/$entityId', + entity); print(entity); + + } catch (e) { + throw Exception('Failed to update entity: $e'); + } + } + + Future deleteEntity( int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl/Basicp2/Basicp2/$entityId'); + } catch (e) { + throw Exception('Failed to delete entity: $e'); + } + } + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_create_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_create_entity_screen.dart new file mode 100644 index 0000000..7c71aba --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_create_entity_screen.dart @@ -0,0 +1,94 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:provider/provider.dart'; +import '../Basicp2_viewModel/Basicp2_view_model_screen.dart'; +import 'Basicp2_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import '../../../../widgets/custom_dropdown_field.dart'; +import 'dart:math'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:intl/intl.dart'; + +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:http/http.dart' as http; +import 'package:flutter/services.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart' +;import 'package:multi_select_flutter/multi_select_flutter.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:video_player/video_player.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:lottie/lottie.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import 'dart:io'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; + + + + + + + + + + + + + + + + + + +class Basicp2CreateEntityScreen extends StatefulWidget { + const Basicp2CreateEntityScreen({super.key}); + + @override + _Basicp2CreateEntityScreenState createState() => _Basicp2CreateEntityScreenState(); +} + +class _Basicp2CreateEntityScreenState extends State { + +final Map formData = {}; + final _formKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityCreateScreen( + fields: Basicp2Fields.getFields(context), + onSubmit: (data) => _handleSubmit(data), + title: 'Basicp2', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.createEntity(formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_details_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_details_screen.dart new file mode 100644 index 0000000..7903769 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_details_screen.dart @@ -0,0 +1,102 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../../../BuilderField/shared/ui/entity_details.dart'; +import '../Basicp2_viewModel/Basicp2_view_model_screen.dart'; +import 'Basicp2_update_entity_screen.dart'; + +class Basicp2DetailsScreen extends StatefulWidget { + final Map entity; + + const Basicp2DetailsScreen({ + super.key, + required this.entity, + }); + + @override + State createState() => _Basicp2DetailsScreenState(); +} + +class _Basicp2DetailsScreenState extends State { + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Basicp2ViewModelScreen(), + child: Basicp2UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + // Refresh the details screen with updated data + setState(() {}); + }); + } + + void _showDeleteDialog(Map entity) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Basicp2?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(context, listen: false); + final success = await vm.deleteEntity(entity['id']); + if (success && mounted) { + Navigator.pop(context); // Go back to list + } + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityDetails( + entity: widget.entity, + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + title: 'Basicp2', + displayFields: [ + {'key': 'about', 'label': 'about', 'type': 'textarea'}, + + {'key': 'textarea2', 'label': 'Textarea2', 'type': 'textarea'}, + + {'key': 'date_field', 'label': 'Date Field', 'type': 'date'}, + + {'key': 'date_field2', 'label': 'Date Field2', 'type': 'date'}, + + {'key': 'datetime_field', 'label': 'Datetime Field', 'type': 'datetime'}, + + {'key': 'datetime_field2', 'label': 'Datetime Field2', 'type': 'datetime'}, + + {'key': 'email_field', 'label': 'Email Field', 'type': 'email'}, + + {'key': 'email_field2', 'label': 'Email Field2', 'type': 'email'}, + + + + ], + isLoading: viewModel.isLoading, + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_entity_list_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_entity_list_screen.dart new file mode 100644 index 0000000..e84dbfe --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_entity_list_screen.dart @@ -0,0 +1,181 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_list.dart'; +import 'Basicp2_create_entity_screen.dart'; +import 'Basicp2_update_entity_screen.dart'; +import '../Basicp2_viewModel/Basicp2_view_model_screen.dart'; +import 'Basicp2_details_screen.dart';import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_to_text.dart' as stt; +import '../../../../theme/app_style.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../widgets/custom_icon_button.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../theme/app_decoration.dart'; +import 'package:multi_select_flutter/multi_select_flutter.dart'; +import '../../../../Reuseable/reusable_text_field.dart'; +import 'package:provider/provider.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/fields/realted_entity_insert_field.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class Basicp2_entity_list_screen extends StatefulWidget { + static const String routeName = '/entity-list'; + + @override + _Basicp2_entity_list_screenState createState() => _Basicp2_entity_list_screenState(); +} + +class _Basicp2_entity_list_screenState extends State { + @override + void initState() { + super.initState(); + _loadData(); + } + + void _loadData() { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + final vm = Provider.of(context, listen: false); + vm.getAllWithPagination(refresh: true); + } + }); + } + + void _navigateToCreateScreen() { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Basicp2ViewModelScreen(), + child: const Basicp2CreateEntityScreen(), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Basicp2ViewModelScreen(), + child: Basicp2UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToDetailsScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Basicp2ViewModelScreen(), + child: Basicp2DetailsScreen(entity: entity), + ), + ), + ); + } + + void _showDeleteDialog(Map entity) { + final parentContext = context; + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Basicp2?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(parentContext, listen: false); + await vm.deleteEntity(entity['id']); + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityList( + entities: viewModel.filteredList, + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + hasMoreData: viewModel.hasMoreData, + searchQuery: viewModel.searchQuery, + onSearchChanged: (query) => viewModel.searchbasicp2(query), + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + onTap: (entity) => _navigateToDetailsScreen(entity), + onRefresh: () => viewModel.refreshData(), + onLoadMore: () => viewModel.getAllWithPagination(), + title: 'Basicp2', + onAddNew: _navigateToCreateScreen, + + + + + + + + + + + + + + + + + + + displayFields: [ + {'key': 'about', 'label': 'about', 'type': 'textarea'}, + + {'key': 'textarea2', 'label': 'Textarea2', 'type': 'textarea'}, + + {'key': 'date_field', 'label': 'Date Field', 'type': 'date'}, + + {'key': 'date_field2', 'label': 'Date Field2', 'type': 'date'}, + + {'key': 'datetime_field', 'label': 'Datetime Field', 'type': 'datetime'}, + + {'key': 'datetime_field2', 'label': 'Datetime Field2', 'type': 'datetime'}, + + {'key': 'email_field', 'label': 'Email Field', 'type': 'email'}, + + {'key': 'email_field2', 'label': 'Email Field2', 'type': 'email'}, + + + + ], + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_fields.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_fields.dart new file mode 100644 index 0000000..6fe42b9 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_fields.dart @@ -0,0 +1,117 @@ +import 'package:base_project/BuilderField/shared/fields/number_field.dart'; +import 'package:base_project/BuilderField/shared/fields/password_field.dart'; +import 'package:base_project/BuilderField/shared/fields/phone_field.dart'; +import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart'; + +import '../../../../BuilderField/shared/fields/base_field.dart'; + +import '../../../../BuilderField/shared/fields/date_field.dart'; +import '../../../../BuilderField/shared/fields/datetime_field.dart'; +import '../../../../BuilderField/shared/fields/email_field.dart'; +import 'package:base_project/BuilderField/shared/fields/url_field.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/calculated_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_many_field.dart'; +import '../../../../BuilderField/shared/fields/value_list_picker_field.dart'; +import '../../../../BuilderField/shared/fields/captcha_field.dart'; +import '../../../../BuilderField/shared/fields/switch_field.dart'; +import '../../../../BuilderField/shared/fields/url_field.dart'; + +import '../../../../BuilderField/shared/fields/audio_upload_field.dart'; +import '../../../../BuilderField/shared/fields/checkbox_field.dart'; +import '../../../../BuilderField/shared/fields/file_upload_field.dart'; +import '../../../../BuilderField/shared/fields/image_upload_field.dart'; +import '../../../../BuilderField/shared/fields/radio_field.dart'; +import '../../../../BuilderField/shared/fields/video_upload_field.dart'; + +import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/data_grid_field.dart'; +import '../../../../BuilderField/shared/fields/dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/static_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/currency_field.dart'; +import '../../../../BuilderField/shared/fields/field_group_field.dart'; +import '../../../../BuilderField/shared/fields/qr_code_field.dart'; +import '../../../../BuilderField/shared/fields/barcode_field.dart'; +import '../../../../BuilderField/shared/fields/dependent_dropdown_field.dart'; + import '../Basicp2_viewModel/Basicp2_view_model_screen.dart';/// Field definitions for Basicp2 entity +/// This defines the structure and validation for Basicp2 forms +class Basicp2Fields { + /// Get field definitions for Basicp2 entity + static List getFields(BuildContext context) { + final viewModel = + Provider.of(context, listen: false); + return [ + // Basic Information +CustomTextField( + fieldKey: 'about', + label: 'about', + hint: 'Enter about', + isRequired: false, + maxLength: 1000, + ), + +CustomTextField( + fieldKey: 'textarea2', + label: 'Textarea2', + hint: 'Enter Textarea2', + isRequired: false, + maxLength: 1000, + ), + + DateField( + fieldKey: 'date_field', + label: 'Date Field', + hint: 'Select Date Field', + isRequired: false, + ), + + DateField( + fieldKey: 'date_field2', + label: 'Date Field2', + hint: 'Select Date Field2', + isRequired: false, + ), + + +DateTimeField( + fieldKey: 'datetime_field', + label: 'Datetime Field', + hint: 'Select Datetime Field', + isRequired: false, + ), + + +DateTimeField( + fieldKey: 'datetime_field2', + label: 'Datetime Field2', + hint: 'Select Datetime Field2', + isRequired: false, + ), + +EmailField( + fieldKey: 'email_field', + label: 'Email Field', + hint: 'Enter Email Field', + isRequired: false, + ), + +EmailField( + fieldKey: 'email_field2', + label: 'Email Field2', + hint: 'Enter Email Field2', + isRequired: false, + ), + + + + ]; + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_update_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_update_entity_screen.dart new file mode 100644 index 0000000..4cc9089 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_update_entity_screen.dart @@ -0,0 +1,89 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:provider/provider.dart'; +import '../Basicp2_viewModel/Basicp2_view_model_screen.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import 'Basicp2_fields.dart';import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import 'package:flutter/material.dart'; +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'dart:math'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; +import 'package:flutter/services.dart'; +class Basicp2UpdateEntityScreen extends StatefulWidget { + final Map entity; + + + Basicp2UpdateEntityScreen({required this.entity}); + + @override + _Basicp2UpdateEntityScreenState createState() => _Basicp2UpdateEntityScreenState(); +} + +class _Basicp2UpdateEntityScreenState extends State { + final _formKey = GlobalKey(); + +@override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { +// Start with all fields, then remove upload fields (generic filter by keys) + final Set hiddenKeys = { + + + + + + + + + + + + + + + + + + + }; + final fields = Basicp2Fields.getFields(context) + .where((f) => !hiddenKeys.contains(f.fieldKey)) + .toList(); return EntityUpdateScreen( + fields: fields, + initialData: widget.entity, + onSubmit: (data) => _handleSubmit(data), + title: 'Basicp2', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.updateEntity(widget.entity['id'], formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2_Repo/Basicp2_repo_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2_Repo/Basicp2_repo_screen.dart new file mode 100644 index 0000000..e43cf7d --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2_Repo/Basicp2_repo_screen.dart @@ -0,0 +1,107 @@ +import 'package:dio/dio.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; +import '../../../../resources/api_constants.dart'; +import 'package:base_project/data/response/api_response.dart'; + +class Basicp2RepoScreen { + + final String baseUrl = ApiConstants.baseUrl; + final BaseNetworkService _helper = NetworkApiService(); + final String _endpointPath = '/Basicp2/Basicp2'; + + Future>>> getEntities() async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl$_endpointPath'); + print('Response received: $response'); + List> entities = const []; + if (response is List) { + entities = response + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } else if (response is Map) { + final dynamic content = response['content']; + if (content is List) { + entities = content + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } + } + return ApiResponse.success(entities); + } catch (e) { + print(' error got $e'); + return ApiResponse.error('Failed to get all entities: $e'); + } + } + + Future>>> getAllWithPagination( + int page, int size) async { + try { + final response = await _helper.getGetApiResponse( + '$baseUrl$_endpointPath/getall/page?page=$page&size=$size'); + + if (response is Map && response['content'] is List) { + final List> entities = + (response['content'] as List).cast>().toList(); + return ApiResponse.success(entities); + } else { + return ApiResponse.error('Invalid response format'); + } + } catch (e) { + return ApiResponse.error('Failed to get all without pagination: $e'); + } + } + + Future>> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to create entity: $e'); + } + } + + Future>> updateEntity( + int entityId, Map entity) async { + try { + final response = await _helper.getPutApiResponse( + '$baseUrl$_endpointPath/$entityId', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to update entity: $e'); + } + } + + Future> deleteEntity(int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId'); + return ApiResponse.success(null); + } catch (e) { + return ApiResponse.error('Failed to delete entity: $e'); + } + } + + + + + + + + + + + + + + + + + + +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2_viewModel/Basicp2_view_model_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2_viewModel/Basicp2_view_model_screen.dart new file mode 100644 index 0000000..108a7e4 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp2/Basicp2_viewModel/Basicp2_view_model_screen.dart @@ -0,0 +1,400 @@ +import 'package:base_project/data/response/status.dart'; +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/utils/entity_field_store.dart'; +import 'package:flutter/material.dart'; +import '../Basicp2_Repo/Basicp2_repo_screen.dart'; + +class Basicp2ViewModelScreen extends ChangeNotifier{ + final Basicp2RepoScreen repo = Basicp2RepoScreen(); + + + // State variables + List> _basicp2List = []; + List> _filteredList = []; + bool _isLoading = false; + String _errorMessage = ''; + int _currentPage = 0; + int _pageSize = 10; + bool _hasMoreData = true; + String _searchQuery = ''; + + // Getters + List> get basicp2List => _basicp2List; + List> get filteredList => _filteredList; + bool get isLoading => _isLoading; + String get errorMessage => _errorMessage; + bool get hasMoreData => _hasMoreData; + String get searchQuery => _searchQuery; + + // Set loading state + void _setLoading(bool loading) { + _isLoading = loading; + notifyListeners(); + } + + // Set error message + void _setError(String error) { + _errorMessage = error; + notifyListeners(); + } + + // Clear error + void clearError() { + _errorMessage = ''; + notifyListeners(); + } + + // Get basicp2 list + Future getEntities() async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.getEntities(); + + if (response.status == Status.SUCCESS) { + _basicp2List = response.data ?? []; + _filteredList = List.from(_basicp2List); + _currentPage = 0; + _hasMoreData = true; + } else { + _setError(response.message ?? 'Failed to fetch basicp2 list'); + } + } catch (e) { + _setError('Failed to fetch basicp2 list: $e'); + } finally { + _setLoading(false); + } + } + + // Get basicp2 list with pagination + Future getAllWithPagination({bool refresh = false}) async { + if (refresh) { + _currentPage = 0; + _basicp2List.clear(); + _filteredList.clear(); + _hasMoreData = true; + } + + if (!_hasMoreData || _isLoading) return; + + _setLoading(true); + _setError(''); + + try { + final response = await repo.getAllWithPagination(_currentPage, _pageSize); + + if (response.status == Status.SUCCESS) { + final newItems = response.data ?? []; + + if (refresh) { + _basicp2List = newItems; + } else { + _basicp2List.addAll(newItems); + } + + _filteredList = List.from(_basicp2List); + _currentPage++; + + // Check if we have more data + _hasMoreData = newItems.length == _pageSize; + } else { + _setError(response.message ?? 'Failed to fetch Basicp2 list'); + } + } catch (e) { + _setError('Failed to fetch basicp2 list: $e'); + } finally { + _setLoading(false); + } + } + + + + + + + + + + + + + + + + + + + + // Create Basicp2 + Future createEntity(Map entity) async { + _setLoading(true); + _setError(''); + + try { + + + + + + + + + + + + + + + + + + + final response = await repo.createEntity(entity); + + if (response.status == Status.SUCCESS) { +// Get the response ID for image upload + + final responseId = response.data!['id'].toString(); + + + + + + + + + + + + + + + + + + + ToastMessageUtil.showToast( + message: 'basicp2 created successfully', + toastType: ToastType.success, + ); + + // Refresh the list + await getEntities(); + + + + + + + + + + + + + + + + + + + return true; + } else { + _setError(response.message ?? 'Failed to create Basicp2'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to create Basicp2', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to create basicp2: $e'); + ToastMessageUtil.showToast( + message: 'Failed to create Basicp2: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Update basicp2 + Future updateEntity(int id, Map entity) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.updateEntity(id, entity); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Basicp2 updated successfully', + toastType: ToastType.success, + ); + + // Update the item in the list + final index = _basicp2List.indexWhere((item) => item['id'] == id); + if (index != -1) { + _basicp2List[index] = response.data!; + _filteredList = List.from(_basicp2List); + notifyListeners(); + } + return true; + } else { + _setError(response.message ?? 'Failed to update Basicp2'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to update Basicp2', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to update basicp2: $e'); + ToastMessageUtil.showToast( + message: 'Failed to update Basicp2: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Delete basicp2 + Future deleteEntity(int id) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.deleteEntity(id); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Basicp2 deleted successfully', + toastType: ToastType.success, + ); + + // Remove the item from the list + _basicp2List.removeWhere((item) => item['id'] == id); + _filteredList = List.from(_basicp2List); + notifyListeners(); + return true; + } else { + _setError(response.message ?? 'Failed to delete Basicp2'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to delete Basicp2', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to delete basicp2: $e'); + ToastMessageUtil.showToast( + message: 'Failed to delete Basicp2: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Search basicp2 + void searchbasicp2(String query) { + _searchQuery = query; + + if (query.isEmpty) { + _filteredList = List.from(_basicp2List); + } else { + _filteredList = _basicp2List.where((item) { + return + + +(item['about']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['textarea2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['date_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['date_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['datetime_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['datetime_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['email_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['email_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) + + + + +; + }).toList(); + } + notifyListeners(); + } + + // Clear search + void clearSearch() { + _searchQuery = ''; + _filteredList = List.from(_basicp2List); + notifyListeners(); + } + + // Refresh data + Future refreshData() async { + await getAllWithPagination(refresh: true); + } + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_api_service.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_api_service.dart new file mode 100644 index 0000000..417a7e8 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_api_service.dart @@ -0,0 +1,116 @@ +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../resources/api_constants.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; + +class Basicp3ApiService { + final String baseUrl = ApiConstants.baseUrl; + + final BaseNetworkService _helper = NetworkApiService(); + + + + Future>> getEntities() async { + + try { + final response = await _helper.getGetApiResponse('$baseUrl/Basicp3/Basicp3'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all entities: $e'); + } + } +Future>> getAllWithPagination( + int page, int size) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/Basicp3/Basicp3/getall/page?page=$page&size=$size'); + final entities = + (response['content'] as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all without pagination: $e'); + } + } + Future> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl/Basicp3/Basicp3', entity); + + print(entity); + + // Assuming the response is a Map + Map responseData = response; + + return responseData; + } catch (e) { + throw Exception('Failed to create entity: $e'); + } + } + + + + + + + + + + + + + + + + + + + + + + + + Future updateEntity( int entityId, Map entity) async { + try { + await _helper.getPutApiResponse('$baseUrl/Basicp3/Basicp3/$entityId', + entity); print(entity); + + } catch (e) { + throw Exception('Failed to update entity: $e'); + } + } + + Future deleteEntity( int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl/Basicp3/Basicp3/$entityId'); + } catch (e) { + throw Exception('Failed to delete entity: $e'); + } + } + + + + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_create_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_create_entity_screen.dart new file mode 100644 index 0000000..1191076 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_create_entity_screen.dart @@ -0,0 +1,98 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:provider/provider.dart'; +import '../Basicp3_viewModel/Basicp3_view_model_screen.dart'; +import 'Basicp3_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import '../../../../widgets/custom_dropdown_field.dart'; +import 'dart:math'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:intl/intl.dart'; + +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:http/http.dart' as http; +import 'package:flutter/services.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart' +;import 'package:multi_select_flutter/multi_select_flutter.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:video_player/video_player.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:lottie/lottie.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import 'dart:io'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; + + + + + + + + + + + + + + + + + + + + + + +class Basicp3CreateEntityScreen extends StatefulWidget { + const Basicp3CreateEntityScreen({super.key}); + + @override + _Basicp3CreateEntityScreenState createState() => _Basicp3CreateEntityScreenState(); +} + +class _Basicp3CreateEntityScreenState extends State { + +final Map formData = {}; + final _formKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityCreateScreen( + fields: Basicp3Fields.getFields(context), + onSubmit: (data) => _handleSubmit(data), + title: 'Basicp3', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.createEntity(formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_details_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_details_screen.dart new file mode 100644 index 0000000..e1d42cf --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_details_screen.dart @@ -0,0 +1,106 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../../../BuilderField/shared/ui/entity_details.dart'; +import '../Basicp3_viewModel/Basicp3_view_model_screen.dart'; +import 'Basicp3_update_entity_screen.dart'; + +class Basicp3DetailsScreen extends StatefulWidget { + final Map entity; + + const Basicp3DetailsScreen({ + super.key, + required this.entity, + }); + + @override + State createState() => _Basicp3DetailsScreenState(); +} + +class _Basicp3DetailsScreenState extends State { + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Basicp3ViewModelScreen(), + child: Basicp3UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + // Refresh the details screen with updated data + setState(() {}); + }); + } + + void _showDeleteDialog(Map entity) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Basicp3?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(context, listen: false); + final success = await vm.deleteEntity(entity['id']); + if (success && mounted) { + Navigator.pop(context); // Go back to list + } + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityDetails( + entity: widget.entity, + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + title: 'Basicp3', + displayFields: [ + {'key': 'toggle_switch', 'label': 'Toggle Switch', 'type': 'toggle_switch'}, + + {'key': 'toggle_switch2', 'label': 'Toggle Switch2', 'type': 'toggle_switch'}, + + {'key': 'url_field', 'label': 'Url Field', 'type': 'url'}, + + {'key': 'url_field2', 'label': 'Url Field2', 'type': 'url'}, + + {'key': 'decimal_field', 'label': 'Decimal Field', 'type': 'decimal'}, + + {'key': 'decimal_field2', 'label': 'Decimal Field2', 'type': 'decimal'}, + + {'key': 'percentage_field', 'label': 'Percentage Field', 'type': 'number'}, + + {'key': 'percentage_field2', 'label': 'Percentage Field2', 'type': 'number'}, + + {'key': 'documentsequenc', 'label': 'documentsequenc', 'type': 'document_sequence'}, + + {'key': 'recaptcha', 'label': 'recaptcha', 'type': 'recaptcha'}, + + {'key': 'recaptcha2', 'label': 'recaptcha2', 'type': 'recaptcha'}, + + ], + isLoading: viewModel.isLoading, + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_entity_list_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_entity_list_screen.dart new file mode 100644 index 0000000..001255e --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_entity_list_screen.dart @@ -0,0 +1,189 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_list.dart'; +import 'Basicp3_create_entity_screen.dart'; +import 'Basicp3_update_entity_screen.dart'; +import '../Basicp3_viewModel/Basicp3_view_model_screen.dart'; +import 'Basicp3_details_screen.dart';import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_to_text.dart' as stt; +import '../../../../theme/app_style.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../widgets/custom_icon_button.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../theme/app_decoration.dart'; +import 'package:multi_select_flutter/multi_select_flutter.dart'; +import '../../../../Reuseable/reusable_text_field.dart'; +import 'package:provider/provider.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/fields/realted_entity_insert_field.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class Basicp3_entity_list_screen extends StatefulWidget { + static const String routeName = '/entity-list'; + + @override + _Basicp3_entity_list_screenState createState() => _Basicp3_entity_list_screenState(); +} + +class _Basicp3_entity_list_screenState extends State { + @override + void initState() { + super.initState(); + _loadData(); + } + + void _loadData() { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + final vm = Provider.of(context, listen: false); + vm.getAllWithPagination(refresh: true); + } + }); + } + + void _navigateToCreateScreen() { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Basicp3ViewModelScreen(), + child: const Basicp3CreateEntityScreen(), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Basicp3ViewModelScreen(), + child: Basicp3UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToDetailsScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Basicp3ViewModelScreen(), + child: Basicp3DetailsScreen(entity: entity), + ), + ), + ); + } + + void _showDeleteDialog(Map entity) { + final parentContext = context; + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Basicp3?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(parentContext, listen: false); + await vm.deleteEntity(entity['id']); + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityList( + entities: viewModel.filteredList, + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + hasMoreData: viewModel.hasMoreData, + searchQuery: viewModel.searchQuery, + onSearchChanged: (query) => viewModel.searchbasicp3(query), + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + onTap: (entity) => _navigateToDetailsScreen(entity), + onRefresh: () => viewModel.refreshData(), + onLoadMore: () => viewModel.getAllWithPagination(), + title: 'Basicp3', + onAddNew: _navigateToCreateScreen, + + + + + + + + + + + + + + + + + + + + + + + displayFields: [ + {'key': 'toggle_switch', 'label': 'Toggle Switch', 'type': 'toggle_switch'}, + + {'key': 'toggle_switch2', 'label': 'Toggle Switch2', 'type': 'toggle_switch'}, + + {'key': 'url_field', 'label': 'Url Field', 'type': 'url'}, + + {'key': 'url_field2', 'label': 'Url Field2', 'type': 'url'}, + + {'key': 'decimal_field', 'label': 'Decimal Field', 'type': 'decimal'}, + + {'key': 'decimal_field2', 'label': 'Decimal Field2', 'type': 'decimal'}, + + {'key': 'percentage_field', 'label': 'Percentage Field', 'type': 'number'}, + + {'key': 'percentage_field2', 'label': 'Percentage Field2', 'type': 'number'}, + + {'key': 'documentsequenc', 'label': 'documentsequenc', 'type': 'document_sequence'}, + + {'key': 'recaptcha', 'label': 'recaptcha', 'type': 'recaptcha'}, + + {'key': 'recaptcha2', 'label': 'recaptcha2', 'type': 'recaptcha'}, + + ], + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_fields.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_fields.dart new file mode 100644 index 0000000..84bf7cd --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_fields.dart @@ -0,0 +1,131 @@ +import 'package:base_project/BuilderField/shared/fields/number_field.dart'; +import 'package:base_project/BuilderField/shared/fields/password_field.dart'; +import 'package:base_project/BuilderField/shared/fields/phone_field.dart'; +import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart'; + +import '../../../../BuilderField/shared/fields/base_field.dart'; + +import '../../../../BuilderField/shared/fields/date_field.dart'; +import '../../../../BuilderField/shared/fields/datetime_field.dart'; +import '../../../../BuilderField/shared/fields/email_field.dart'; +import 'package:base_project/BuilderField/shared/fields/url_field.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/calculated_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_many_field.dart'; +import '../../../../BuilderField/shared/fields/value_list_picker_field.dart'; +import '../../../../BuilderField/shared/fields/captcha_field.dart'; +import '../../../../BuilderField/shared/fields/switch_field.dart'; +import '../../../../BuilderField/shared/fields/url_field.dart'; + +import '../../../../BuilderField/shared/fields/audio_upload_field.dart'; +import '../../../../BuilderField/shared/fields/checkbox_field.dart'; +import '../../../../BuilderField/shared/fields/file_upload_field.dart'; +import '../../../../BuilderField/shared/fields/image_upload_field.dart'; +import '../../../../BuilderField/shared/fields/radio_field.dart'; +import '../../../../BuilderField/shared/fields/video_upload_field.dart'; + +import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/data_grid_field.dart'; +import '../../../../BuilderField/shared/fields/dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/static_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/currency_field.dart'; +import '../../../../BuilderField/shared/fields/field_group_field.dart'; +import '../../../../BuilderField/shared/fields/qr_code_field.dart'; +import '../../../../BuilderField/shared/fields/barcode_field.dart'; +import '../../../../BuilderField/shared/fields/dependent_dropdown_field.dart'; + import '../Basicp3_viewModel/Basicp3_view_model_screen.dart';/// Field definitions for Basicp3 entity +/// This defines the structure and validation for Basicp3 forms +class Basicp3Fields { + /// Get field definitions for Basicp3 entity + static List getFields(BuildContext context) { + final viewModel = + Provider.of(context, listen: false); + return [ + // Basic Information + SwitchField( + fieldKey: 'toggle_switch', + label: 'Toggle Switch', + ), + + SwitchField( + fieldKey: 'toggle_switch2', + label: 'Toggle Switch2', + ), + + UrlField( + fieldKey: 'url_field', + label: 'Url Field', + hint: 'Enter Url Field', + ), + + UrlField( + fieldKey: 'url_field2', + label: 'Url Field2', + hint: 'Enter Url Field2', + ), + + NumberField( + fieldKey: 'decimal_field', + label: 'Decimal Field', + hint: '0.00', + isRequired: false, + decimalPlaces: 2, + ), + + NumberField( + fieldKey: 'decimal_field2', + label: 'Decimal Field2', + hint: '0.00', + isRequired: false, + decimalPlaces: 2, + ), + + // Number Fields + NumberField( + fieldKey: 'percentage_field', + label: 'Percentage Field', + hint: 'Enter Percentage Field', + isRequired: false, + min: 0, + decimalPlaces: 0, + ), + + // Number Fields + NumberField( + fieldKey: 'percentage_field2', + label: 'Percentage Field2', + hint: 'Enter Percentage Field2', + isRequired: false, + min: 0, + decimalPlaces: 0, + ), + + + + + + CaptchaField( + fieldKey: 'recaptcha', + label: 'recaptcha', + length: 6, + ), + + + + CaptchaField( + fieldKey: 'recaptcha2', + label: 'recaptcha2', + length: 6, + ), + + ]; + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_update_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_update_entity_screen.dart new file mode 100644 index 0000000..e4641d8 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_update_entity_screen.dart @@ -0,0 +1,93 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:provider/provider.dart'; +import '../Basicp3_viewModel/Basicp3_view_model_screen.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import 'Basicp3_fields.dart';import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import 'package:flutter/material.dart'; +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'dart:math'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; +import 'package:flutter/services.dart'; +class Basicp3UpdateEntityScreen extends StatefulWidget { + final Map entity; + + + Basicp3UpdateEntityScreen({required this.entity}); + + @override + _Basicp3UpdateEntityScreenState createState() => _Basicp3UpdateEntityScreenState(); +} + +class _Basicp3UpdateEntityScreenState extends State { + final _formKey = GlobalKey(); + +@override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { +// Start with all fields, then remove upload fields (generic filter by keys) + final Set hiddenKeys = { + + + + + + + + + + + + + + + + + + + + + + + }; + final fields = Basicp3Fields.getFields(context) + .where((f) => !hiddenKeys.contains(f.fieldKey)) + .toList(); return EntityUpdateScreen( + fields: fields, + initialData: widget.entity, + onSubmit: (data) => _handleSubmit(data), + title: 'Basicp3', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.updateEntity(widget.entity['id'], formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3_Repo/Basicp3_repo_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3_Repo/Basicp3_repo_screen.dart new file mode 100644 index 0000000..697d953 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3_Repo/Basicp3_repo_screen.dart @@ -0,0 +1,111 @@ +import 'package:dio/dio.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; +import '../../../../resources/api_constants.dart'; +import 'package:base_project/data/response/api_response.dart'; + +class Basicp3RepoScreen { + + final String baseUrl = ApiConstants.baseUrl; + final BaseNetworkService _helper = NetworkApiService(); + final String _endpointPath = '/Basicp3/Basicp3'; + + Future>>> getEntities() async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl$_endpointPath'); + print('Response received: $response'); + List> entities = const []; + if (response is List) { + entities = response + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } else if (response is Map) { + final dynamic content = response['content']; + if (content is List) { + entities = content + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } + } + return ApiResponse.success(entities); + } catch (e) { + print(' error got $e'); + return ApiResponse.error('Failed to get all entities: $e'); + } + } + + Future>>> getAllWithPagination( + int page, int size) async { + try { + final response = await _helper.getGetApiResponse( + '$baseUrl$_endpointPath/getall/page?page=$page&size=$size'); + + if (response is Map && response['content'] is List) { + final List> entities = + (response['content'] as List).cast>().toList(); + return ApiResponse.success(entities); + } else { + return ApiResponse.error('Invalid response format'); + } + } catch (e) { + return ApiResponse.error('Failed to get all without pagination: $e'); + } + } + + Future>> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to create entity: $e'); + } + } + + Future>> updateEntity( + int entityId, Map entity) async { + try { + final response = await _helper.getPutApiResponse( + '$baseUrl$_endpointPath/$entityId', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to update entity: $e'); + } + } + + Future> deleteEntity(int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId'); + return ApiResponse.success(null); + } catch (e) { + return ApiResponse.error('Failed to delete entity: $e'); + } + } + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3_viewModel/Basicp3_view_model_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3_viewModel/Basicp3_view_model_screen.dart new file mode 100644 index 0000000..341602c --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Basicp3/Basicp3_viewModel/Basicp3_view_model_screen.dart @@ -0,0 +1,422 @@ +import 'package:base_project/data/response/status.dart'; +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/utils/entity_field_store.dart'; +import 'package:flutter/material.dart'; +import '../Basicp3_Repo/Basicp3_repo_screen.dart'; + +class Basicp3ViewModelScreen extends ChangeNotifier{ + final Basicp3RepoScreen repo = Basicp3RepoScreen(); + + + // State variables + List> _basicp3List = []; + List> _filteredList = []; + bool _isLoading = false; + String _errorMessage = ''; + int _currentPage = 0; + int _pageSize = 10; + bool _hasMoreData = true; + String _searchQuery = ''; + + // Getters + List> get basicp3List => _basicp3List; + List> get filteredList => _filteredList; + bool get isLoading => _isLoading; + String get errorMessage => _errorMessage; + bool get hasMoreData => _hasMoreData; + String get searchQuery => _searchQuery; + + // Set loading state + void _setLoading(bool loading) { + _isLoading = loading; + notifyListeners(); + } + + // Set error message + void _setError(String error) { + _errorMessage = error; + notifyListeners(); + } + + // Clear error + void clearError() { + _errorMessage = ''; + notifyListeners(); + } + + // Get basicp3 list + Future getEntities() async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.getEntities(); + + if (response.status == Status.SUCCESS) { + _basicp3List = response.data ?? []; + _filteredList = List.from(_basicp3List); + _currentPage = 0; + _hasMoreData = true; + } else { + _setError(response.message ?? 'Failed to fetch basicp3 list'); + } + } catch (e) { + _setError('Failed to fetch basicp3 list: $e'); + } finally { + _setLoading(false); + } + } + + // Get basicp3 list with pagination + Future getAllWithPagination({bool refresh = false}) async { + if (refresh) { + _currentPage = 0; + _basicp3List.clear(); + _filteredList.clear(); + _hasMoreData = true; + } + + if (!_hasMoreData || _isLoading) return; + + _setLoading(true); + _setError(''); + + try { + final response = await repo.getAllWithPagination(_currentPage, _pageSize); + + if (response.status == Status.SUCCESS) { + final newItems = response.data ?? []; + + if (refresh) { + _basicp3List = newItems; + } else { + _basicp3List.addAll(newItems); + } + + _filteredList = List.from(_basicp3List); + _currentPage++; + + // Check if we have more data + _hasMoreData = newItems.length == _pageSize; + } else { + _setError(response.message ?? 'Failed to fetch Basicp3 list'); + } + } catch (e) { + _setError('Failed to fetch basicp3 list: $e'); + } finally { + _setLoading(false); + } + } + + + + + + + + + + + + + + + + + + + + + + + + // Create Basicp3 + Future createEntity(Map entity) async { + _setLoading(true); + _setError(''); + + try { + + + + + + + + + + + + + + + + + + + + + + + final response = await repo.createEntity(entity); + + if (response.status == Status.SUCCESS) { +// Get the response ID for image upload + + final responseId = response.data!['id'].toString(); + + + + + + + + + + + + + + + + + + + + + + + ToastMessageUtil.showToast( + message: 'basicp3 created successfully', + toastType: ToastType.success, + ); + + // Refresh the list + await getEntities(); + + + + + + + + + + + + + + + + + + + + + + + return true; + } else { + _setError(response.message ?? 'Failed to create Basicp3'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to create Basicp3', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to create basicp3: $e'); + ToastMessageUtil.showToast( + message: 'Failed to create Basicp3: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Update basicp3 + Future updateEntity(int id, Map entity) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.updateEntity(id, entity); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Basicp3 updated successfully', + toastType: ToastType.success, + ); + + // Update the item in the list + final index = _basicp3List.indexWhere((item) => item['id'] == id); + if (index != -1) { + _basicp3List[index] = response.data!; + _filteredList = List.from(_basicp3List); + notifyListeners(); + } + return true; + } else { + _setError(response.message ?? 'Failed to update Basicp3'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to update Basicp3', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to update basicp3: $e'); + ToastMessageUtil.showToast( + message: 'Failed to update Basicp3: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Delete basicp3 + Future deleteEntity(int id) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.deleteEntity(id); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Basicp3 deleted successfully', + toastType: ToastType.success, + ); + + // Remove the item from the list + _basicp3List.removeWhere((item) => item['id'] == id); + _filteredList = List.from(_basicp3List); + notifyListeners(); + return true; + } else { + _setError(response.message ?? 'Failed to delete Basicp3'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to delete Basicp3', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to delete basicp3: $e'); + ToastMessageUtil.showToast( + message: 'Failed to delete Basicp3: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Search basicp3 + void searchbasicp3(String query) { + _searchQuery = query; + + if (query.isEmpty) { + _filteredList = List.from(_basicp3List); + } else { + _filteredList = _basicp3List.where((item) { + return(item['toggle_switch']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + +(item['toggle_switch2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['url_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['url_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['decimal_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['decimal_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['percentage_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['percentage_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['documentsequenc']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) + + + + + + +; + }).toList(); + } + notifyListeners(); + } + + // Clear search + void clearSearch() { + _searchQuery = ''; + _filteredList = List.from(_basicp3List); + notifyListeners(); + } + + // Refresh data + Future refreshData() async { + await getAllWithPagination(refresh: true); + } + + + + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_api_service.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_api_service.dart new file mode 100644 index 0000000..b83e8ee --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_api_service.dart @@ -0,0 +1,108 @@ +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../resources/api_constants.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; + +class Dv2ApiService { + final String baseUrl = ApiConstants.baseUrl; + + final BaseNetworkService _helper = NetworkApiService(); + + + + Future>> getEntities() async { + + try { + final response = await _helper.getGetApiResponse('$baseUrl/Dv2/Dv2'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all entities: $e'); + } + } +Future>> getAllWithPagination( + int page, int size) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/Dv2/Dv2/getall/page?page=$page&size=$size'); + final entities = + (response['content'] as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all without pagination: $e'); + } + } + Future> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl/Dv2/Dv2', entity); + + print(entity); + + // Assuming the response is a Map + Map responseData = response; + + return responseData; + } catch (e) { + throw Exception('Failed to create entity: $e'); + } + } + + + + + + + + + + + + + + + + + + + + Future updateEntity( int entityId, Map entity) async { + try { + await _helper.getPutApiResponse('$baseUrl/Dv2/Dv2/$entityId', + entity); print(entity); + + } catch (e) { + throw Exception('Failed to update entity: $e'); + } + } + + Future deleteEntity( int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl/Dv2/Dv2/$entityId'); + } catch (e) { + throw Exception('Failed to delete entity: $e'); + } + } + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_create_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_create_entity_screen.dart new file mode 100644 index 0000000..610a708 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_create_entity_screen.dart @@ -0,0 +1,94 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:provider/provider.dart'; +import '../Dv2_viewModel/Dv2_view_model_screen.dart'; +import 'Dv2_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import '../../../../widgets/custom_dropdown_field.dart'; +import 'dart:math'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:intl/intl.dart'; + +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:http/http.dart' as http; +import 'package:flutter/services.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart' +;import 'package:multi_select_flutter/multi_select_flutter.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:video_player/video_player.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:lottie/lottie.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import 'dart:io'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; + + + + + + + + + + + + + + + + + + +class Dv2CreateEntityScreen extends StatefulWidget { + const Dv2CreateEntityScreen({super.key}); + + @override + _Dv2CreateEntityScreenState createState() => _Dv2CreateEntityScreenState(); +} + +class _Dv2CreateEntityScreenState extends State { + +final Map formData = {}; + final _formKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityCreateScreen( + fields: Dv2Fields.getFields(context), + onSubmit: (data) => _handleSubmit(data), + title: 'Dv2', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.createEntity(formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_details_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_details_screen.dart new file mode 100644 index 0000000..acc1b4e --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_details_screen.dart @@ -0,0 +1,118 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../../../BuilderField/shared/ui/entity_details.dart'; +import '../Dv2_viewModel/Dv2_view_model_screen.dart'; +import 'Dv2_update_entity_screen.dart'; + +class Dv2DetailsScreen extends StatefulWidget { + final Map entity; + + const Dv2DetailsScreen({ + super.key, + required this.entity, + }); + + @override + State createState() => _Dv2DetailsScreenState(); +} + +class _Dv2DetailsScreenState extends State { + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Dv2ViewModelScreen(), + child: Dv2UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + // Refresh the details screen with updated data + setState(() {}); + }); + } + + void _showDeleteDialog(Map entity) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Dv2?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(context, listen: false); + final success = await vm.deleteEntity(entity['id']); + if (success && mounted) { + Navigator.pop(context); // Go back to list + } + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityDetails( + entity: widget.entity, + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + title: 'Dv2', + displayFields: [ + + + {'key': 'test3', 'label': 'test3', 'type': 'field_group'}, + + + + {'key': 'name', 'label': 'name', 'type': 'field_group'}, + + + + {'key': 'last_name', 'label': 'last_name', 'type': 'field_group'}, + + + + + + {'key': 'test', 'label': 'test', 'type': 'field_group'}, + + + + {'key': 'currency', 'label': 'Currency', 'type': 'currency'}, + + {'key': 'currency2', 'label': 'Currency2', 'type': 'currency'}, + + {'key': 'qrcode_field', 'label': 'QRCode Field', 'type': 'qr_code'}, + + {'key': 'qrcode_field2', 'label': 'QRCode Field2', 'type': 'qr_code'}, + + {'key': 'barcode_field', 'label': 'BarCode Field', 'type': 'bar_code'}, + + {'key': 'barcode_field2', 'label': 'BarCode Field2', 'type': 'bar_code'}, + + {'key': 'static', 'label': 'Static', 'type': 'communication'}, + + ], + isLoading: viewModel.isLoading, + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_entity_list_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_entity_list_screen.dart new file mode 100644 index 0000000..1ac9154 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_entity_list_screen.dart @@ -0,0 +1,197 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_list.dart'; +import 'Dv2_create_entity_screen.dart'; +import 'Dv2_update_entity_screen.dart'; +import '../Dv2_viewModel/Dv2_view_model_screen.dart'; +import 'Dv2_details_screen.dart';import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_to_text.dart' as stt; +import '../../../../theme/app_style.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../widgets/custom_icon_button.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../theme/app_decoration.dart'; +import 'package:multi_select_flutter/multi_select_flutter.dart'; +import '../../../../Reuseable/reusable_text_field.dart'; +import 'package:provider/provider.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/fields/realted_entity_insert_field.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class Dv2_entity_list_screen extends StatefulWidget { + static const String routeName = '/entity-list'; + + @override + _Dv2_entity_list_screenState createState() => _Dv2_entity_list_screenState(); +} + +class _Dv2_entity_list_screenState extends State { + @override + void initState() { + super.initState(); + _loadData(); + } + + void _loadData() { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + final vm = Provider.of(context, listen: false); + vm.getAllWithPagination(refresh: true); + } + }); + } + + void _navigateToCreateScreen() { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Dv2ViewModelScreen(), + child: const Dv2CreateEntityScreen(), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Dv2ViewModelScreen(), + child: Dv2UpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToDetailsScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => Dv2ViewModelScreen(), + child: Dv2DetailsScreen(entity: entity), + ), + ), + ); + } + + void _showDeleteDialog(Map entity) { + final parentContext = context; + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Dv2?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(parentContext, listen: false); + await vm.deleteEntity(entity['id']); + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityList( + entities: viewModel.filteredList, + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + hasMoreData: viewModel.hasMoreData, + searchQuery: viewModel.searchQuery, + onSearchChanged: (query) => viewModel.searchdv2(query), + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + onTap: (entity) => _navigateToDetailsScreen(entity), + onRefresh: () => viewModel.refreshData(), + onLoadMore: () => viewModel.getAllWithPagination(), + title: 'Dv2', + onAddNew: _navigateToCreateScreen, + + + + + + + + + + + + + + + + + + + displayFields: [ + + + {'key': 'test3', 'label': 'test3', 'type': 'field_group'}, + + + + {'key': 'name', 'label': 'name', 'type': 'field_group'}, + + + + {'key': 'last_name', 'label': 'last_name', 'type': 'field_group'}, + + + + + + {'key': 'test', 'label': 'test', 'type': 'field_group'}, + + + + {'key': 'currency', 'label': 'Currency', 'type': 'currency'}, + + {'key': 'currency2', 'label': 'Currency2', 'type': 'currency'}, + + {'key': 'qrcode_field', 'label': 'QRCode Field', 'type': 'qr_code'}, + + {'key': 'qrcode_field2', 'label': 'QRCode Field2', 'type': 'qr_code'}, + + {'key': 'barcode_field', 'label': 'BarCode Field', 'type': 'bar_code'}, + + {'key': 'barcode_field2', 'label': 'BarCode Field2', 'type': 'bar_code'}, + + {'key': 'static', 'label': 'Static', 'type': 'communication'}, + + ], + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_fields.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_fields.dart new file mode 100644 index 0000000..5e1cb33 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_fields.dart @@ -0,0 +1,149 @@ +import 'package:base_project/BuilderField/shared/fields/number_field.dart'; +import 'package:base_project/BuilderField/shared/fields/password_field.dart'; +import 'package:base_project/BuilderField/shared/fields/phone_field.dart'; +import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart'; + +import '../../../../BuilderField/shared/fields/base_field.dart'; + +import '../../../../BuilderField/shared/fields/date_field.dart'; +import '../../../../BuilderField/shared/fields/datetime_field.dart'; +import '../../../../BuilderField/shared/fields/email_field.dart'; +import 'package:base_project/BuilderField/shared/fields/url_field.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/calculated_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_many_field.dart'; +import '../../../../BuilderField/shared/fields/value_list_picker_field.dart'; +import '../../../../BuilderField/shared/fields/captcha_field.dart'; +import '../../../../BuilderField/shared/fields/switch_field.dart'; +import '../../../../BuilderField/shared/fields/url_field.dart'; + +import '../../../../BuilderField/shared/fields/audio_upload_field.dart'; +import '../../../../BuilderField/shared/fields/checkbox_field.dart'; +import '../../../../BuilderField/shared/fields/file_upload_field.dart'; +import '../../../../BuilderField/shared/fields/image_upload_field.dart'; +import '../../../../BuilderField/shared/fields/radio_field.dart'; +import '../../../../BuilderField/shared/fields/video_upload_field.dart'; + +import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/data_grid_field.dart'; +import '../../../../BuilderField/shared/fields/dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/static_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/currency_field.dart'; +import '../../../../BuilderField/shared/fields/field_group_field.dart'; +import '../../../../BuilderField/shared/fields/qr_code_field.dart'; +import '../../../../BuilderField/shared/fields/barcode_field.dart'; +import '../../../../BuilderField/shared/fields/dependent_dropdown_field.dart'; + import '../Dv2_viewModel/Dv2_view_model_screen.dart';/// Field definitions for Dv2 entity +/// This defines the structure and validation for Dv2 forms +class Dv2Fields { + /// Get field definitions for Dv2 entity + static List getFields(BuildContext context) { + final viewModel = + Provider.of(context, listen: false); + return [ + // Basic Information + FieldGroupField( + fieldKey: 'address', + label: 'Address', + hint: 'Enter Address', + subFields: [ + + + GroupSubField(path: 'test3', label: 'test3', isRequired: true), + + + + GroupSubField(path: 'name', label: 'name', isRequired: true), + + + + GroupSubField(path: 'last_name', label: 'last_name', isRequired: true), + + + + ], + ), + + FieldGroupField( + fieldKey: 'per_address', + label: 'per address', + hint: 'Enter per address', + subFields: [ + + + GroupSubField(path: 'test', label: 'test', isRequired: true), + + + + ], + ), + + +CurrencyField( + fieldKey: 'currency', + label: 'Currency', + hint: 'Enter Currency', + isRequired: false, + currencySymbol: '₹', + ), + + +CurrencyField( + fieldKey: 'currency2', + label: 'Currency2', + hint: 'Enter Currency2', + isRequired: false, + currencySymbol: '₹', + ), + + + QRCodeField( + fieldKey: 'qrcode_field', + label: 'QRCode Field', + hint: 'Scan or enter QRCode Field', + scanner: viewModel.scanQrqrcode_field, + ), + + + QRCodeField( + fieldKey: 'qrcode_field2', + label: 'QRCode Field2', + hint: 'Scan or enter QRCode Field2', + scanner: viewModel.scanQrqrcode_field2, + ), + + + BarcodeField( + fieldKey: 'barcode_field', + label: 'BarCode Field', + hint: 'Scan or enter BarCode Field', + scanner: viewModel.scanBarbarcode_field, + ), + + + BarcodeField( + fieldKey: 'barcode_field2', + label: 'BarCode Field2', + hint: 'Scan or enter BarCode Field2', + scanner: viewModel.scanBarbarcode_field2, + ), + + CustomTextField( + fieldKey: 'static', + label: 'Static', + hint: 'Enter Static', + isRequired: true, + maxLength: 50, + ), + + ]; + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_update_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_update_entity_screen.dart new file mode 100644 index 0000000..4f20f03 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2View/Dv2_update_entity_screen.dart @@ -0,0 +1,89 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:provider/provider.dart'; +import '../Dv2_viewModel/Dv2_view_model_screen.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import 'Dv2_fields.dart';import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import 'package:flutter/material.dart'; +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'dart:math'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; +import 'package:flutter/services.dart'; +class Dv2UpdateEntityScreen extends StatefulWidget { + final Map entity; + + + Dv2UpdateEntityScreen({required this.entity}); + + @override + _Dv2UpdateEntityScreenState createState() => _Dv2UpdateEntityScreenState(); +} + +class _Dv2UpdateEntityScreenState extends State { + final _formKey = GlobalKey(); + +@override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { +// Start with all fields, then remove upload fields (generic filter by keys) + final Set hiddenKeys = { + + + + + + + + + + + + + + + + + + + }; + final fields = Dv2Fields.getFields(context) + .where((f) => !hiddenKeys.contains(f.fieldKey)) + .toList(); return EntityUpdateScreen( + fields: fields, + initialData: widget.entity, + onSubmit: (data) => _handleSubmit(data), + title: 'Dv2', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.updateEntity(widget.entity['id'], formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2_Repo/Dv2_repo_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2_Repo/Dv2_repo_screen.dart new file mode 100644 index 0000000..c1cb2cc --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2_Repo/Dv2_repo_screen.dart @@ -0,0 +1,107 @@ +import 'package:dio/dio.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; +import '../../../../resources/api_constants.dart'; +import 'package:base_project/data/response/api_response.dart'; + +class Dv2RepoScreen { + + final String baseUrl = ApiConstants.baseUrl; + final BaseNetworkService _helper = NetworkApiService(); + final String _endpointPath = '/Dv2/Dv2'; + + Future>>> getEntities() async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl$_endpointPath'); + print('Response received: $response'); + List> entities = const []; + if (response is List) { + entities = response + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } else if (response is Map) { + final dynamic content = response['content']; + if (content is List) { + entities = content + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } + } + return ApiResponse.success(entities); + } catch (e) { + print(' error got $e'); + return ApiResponse.error('Failed to get all entities: $e'); + } + } + + Future>>> getAllWithPagination( + int page, int size) async { + try { + final response = await _helper.getGetApiResponse( + '$baseUrl$_endpointPath/getall/page?page=$page&size=$size'); + + if (response is Map && response['content'] is List) { + final List> entities = + (response['content'] as List).cast>().toList(); + return ApiResponse.success(entities); + } else { + return ApiResponse.error('Invalid response format'); + } + } catch (e) { + return ApiResponse.error('Failed to get all without pagination: $e'); + } + } + + Future>> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to create entity: $e'); + } + } + + Future>> updateEntity( + int entityId, Map entity) async { + try { + final response = await _helper.getPutApiResponse( + '$baseUrl$_endpointPath/$entityId', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to update entity: $e'); + } + } + + Future> deleteEntity(int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId'); + return ApiResponse.success(null); + } catch (e) { + return ApiResponse.error('Failed to delete entity: $e'); + } + } + + + + + + + + + + + + + + + + + + +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2_viewModel/Dv2_view_model_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2_viewModel/Dv2_view_model_screen.dart new file mode 100644 index 0000000..39ee747 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Dv2/Dv2_viewModel/Dv2_view_model_screen.dart @@ -0,0 +1,434 @@ +import 'package:base_project/data/response/status.dart'; +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/utils/entity_field_store.dart'; +import 'package:flutter/material.dart'; +import '../Dv2_Repo/Dv2_repo_screen.dart'; + +class Dv2ViewModelScreen extends ChangeNotifier{ + final Dv2RepoScreen repo = Dv2RepoScreen(); + + + // State variables + List> _dv2List = []; + List> _filteredList = []; + bool _isLoading = false; + String _errorMessage = ''; + int _currentPage = 0; + int _pageSize = 10; + bool _hasMoreData = true; + String _searchQuery = ''; + + // Getters + List> get dv2List => _dv2List; + List> get filteredList => _filteredList; + bool get isLoading => _isLoading; + String get errorMessage => _errorMessage; + bool get hasMoreData => _hasMoreData; + String get searchQuery => _searchQuery; + + // Set loading state + void _setLoading(bool loading) { + _isLoading = loading; + notifyListeners(); + } + + // Set error message + void _setError(String error) { + _errorMessage = error; + notifyListeners(); + } + + // Clear error + void clearError() { + _errorMessage = ''; + notifyListeners(); + } + + // Get dv2 list + Future getEntities() async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.getEntities(); + + if (response.status == Status.SUCCESS) { + _dv2List = response.data ?? []; + _filteredList = List.from(_dv2List); + _currentPage = 0; + _hasMoreData = true; + } else { + _setError(response.message ?? 'Failed to fetch dv2 list'); + } + } catch (e) { + _setError('Failed to fetch dv2 list: $e'); + } finally { + _setLoading(false); + } + } + + // Get dv2 list with pagination + Future getAllWithPagination({bool refresh = false}) async { + if (refresh) { + _currentPage = 0; + _dv2List.clear(); + _filteredList.clear(); + _hasMoreData = true; + } + + if (!_hasMoreData || _isLoading) return; + + _setLoading(true); + _setError(''); + + try { + final response = await repo.getAllWithPagination(_currentPage, _pageSize); + + if (response.status == Status.SUCCESS) { + final newItems = response.data ?? []; + + if (refresh) { + _dv2List = newItems; + } else { + _dv2List.addAll(newItems); + } + + _filteredList = List.from(_dv2List); + _currentPage++; + + // Check if we have more data + _hasMoreData = newItems.length == _pageSize; + } else { + _setError(response.message ?? 'Failed to fetch Dv2 list'); + } + } catch (e) { + _setError('Failed to fetch dv2 list: $e'); + } finally { + _setLoading(false); + } + } + + + + + + + + + + + + + + + + + + + + // Create Dv2 + Future createEntity(Map entity) async { + _setLoading(true); + _setError(''); + + try { + + + + + + + + + + + + + + + + + + + final response = await repo.createEntity(entity); + + if (response.status == Status.SUCCESS) { +// Get the response ID for image upload + + final responseId = response.data!['id'].toString(); + + + + + + + + + + + + + + + + + + + ToastMessageUtil.showToast( + message: 'dv2 created successfully', + toastType: ToastType.success, + ); + + // Refresh the list + await getEntities(); + + + + + + + + + + + + + + + + + + + return true; + } else { + _setError(response.message ?? 'Failed to create Dv2'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to create Dv2', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to create dv2: $e'); + ToastMessageUtil.showToast( + message: 'Failed to create Dv2: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Update dv2 + Future updateEntity(int id, Map entity) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.updateEntity(id, entity); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Dv2 updated successfully', + toastType: ToastType.success, + ); + + // Update the item in the list + final index = _dv2List.indexWhere((item) => item['id'] == id); + if (index != -1) { + _dv2List[index] = response.data!; + _filteredList = List.from(_dv2List); + notifyListeners(); + } + return true; + } else { + _setError(response.message ?? 'Failed to update Dv2'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to update Dv2', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to update dv2: $e'); + ToastMessageUtil.showToast( + message: 'Failed to update Dv2: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Delete dv2 + Future deleteEntity(int id) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.deleteEntity(id); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Dv2 deleted successfully', + toastType: ToastType.success, + ); + + // Remove the item from the list + _dv2List.removeWhere((item) => item['id'] == id); + _filteredList = List.from(_dv2List); + notifyListeners(); + return true; + } else { + _setError(response.message ?? 'Failed to delete Dv2'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to delete Dv2', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to delete dv2: $e'); + ToastMessageUtil.showToast( + message: 'Failed to delete Dv2: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Search dv2 + void searchdv2(String query) { + _searchQuery = query; + + if (query.isEmpty) { + _filteredList = List.from(_dv2List); + } else { + _filteredList = _dv2List.where((item) { + return + + + + +(item['address']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + + + +(item['address']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + + + +(item['address']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + + + + + +(item['per_address']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + + + +(item['currency']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['currency2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['qrcode_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['qrcode_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['barcode_field']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['barcode_field2']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) + + + + +; + }).toList(); + } + notifyListeners(); + } + + // Clear search + void clearSearch() { + _searchQuery = ''; + _filteredList = List.from(_dv2List); + notifyListeners(); + } + + // Refresh data + Future refreshData() async { + await getAllWithPagination(refresh: true); + } + + + + + + + + +Future scanQrqrcode_field() async { + return null; + } + +Future scanQrqrcode_field2() async { + return null; + } + + + Future scanBarbarcode_field() async { + return null; + } + + + Future scanBarbarcode_field2() async { + return null; + } + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_api_service.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_api_service.dart new file mode 100644 index 0000000..560ea14 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_api_service.dart @@ -0,0 +1,80 @@ +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../resources/api_constants.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; + +class SupportApiService { + final String baseUrl = ApiConstants.baseUrl; + + final BaseNetworkService _helper = NetworkApiService(); + + + + Future>> getEntities() async { + + try { + final response = await _helper.getGetApiResponse('$baseUrl/Support/Support'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all entities: $e'); + } + } +Future>> getAllWithPagination( + int page, int size) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/Support/Support/getall/page?page=$page&size=$size'); + final entities = + (response['content'] as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all without pagination: $e'); + } + } + Future> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl/Support/Support', entity); + + print(entity); + + // Assuming the response is a Map + Map responseData = response; + + return responseData; + } catch (e) { + throw Exception('Failed to create entity: $e'); + } + } + + + + + + Future updateEntity( int entityId, Map entity) async { + try { + await _helper.getPutApiResponse('$baseUrl/Support/Support/$entityId', + entity); print(entity); + + } catch (e) { + throw Exception('Failed to update entity: $e'); + } + } + + Future deleteEntity( int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl/Support/Support/$entityId'); + } catch (e) { + throw Exception('Failed to delete entity: $e'); + } + } + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_create_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_create_entity_screen.dart new file mode 100644 index 0000000..28e1244 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_create_entity_screen.dart @@ -0,0 +1,80 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:provider/provider.dart'; +import '../Support_viewModel/Support_view_model_screen.dart'; +import 'Support_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import '../../../../widgets/custom_dropdown_field.dart'; +import 'dart:math'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:intl/intl.dart'; + +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:http/http.dart' as http; +import 'package:flutter/services.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart' +;import 'package:multi_select_flutter/multi_select_flutter.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:video_player/video_player.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:lottie/lottie.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import 'dart:io'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; + + + + +class SupportCreateEntityScreen extends StatefulWidget { + const SupportCreateEntityScreen({super.key}); + + @override + _SupportCreateEntityScreenState createState() => _SupportCreateEntityScreenState(); +} + +class _SupportCreateEntityScreenState extends State { + +final Map formData = {}; + final _formKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityCreateScreen( + fields: SupportFields.getFields(context), + onSubmit: (data) => _handleSubmit(data), + title: 'Support', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.createEntity(formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_details_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_details_screen.dart new file mode 100644 index 0000000..3e96df8 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_details_screen.dart @@ -0,0 +1,88 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../../../BuilderField/shared/ui/entity_details.dart'; +import '../Support_viewModel/Support_view_model_screen.dart'; +import 'Support_update_entity_screen.dart'; + +class SupportDetailsScreen extends StatefulWidget { + final Map entity; + + const SupportDetailsScreen({ + super.key, + required this.entity, + }); + + @override + State createState() => _SupportDetailsScreenState(); +} + +class _SupportDetailsScreenState extends State { + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => SupportViewModelScreen(), + child: SupportUpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + // Refresh the details screen with updated data + setState(() {}); + }); + } + + void _showDeleteDialog(Map entity) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Support?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(context, listen: false); + final success = await vm.deleteEntity(entity['id']); + if (success && mounted) { + Navigator.pop(context); // Go back to list + } + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityDetails( + entity: widget.entity, + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + title: 'Support', + displayFields: [ + {'key': 'name', 'label': 'Name', 'type': 'text'}, + + {'key': 'description', 'label': 'Description', 'type': 'textarea'}, + + ], + isLoading: viewModel.isLoading, + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_entity_list_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_entity_list_screen.dart new file mode 100644 index 0000000..aed5c6d --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_entity_list_screen.dart @@ -0,0 +1,153 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_list.dart'; +import 'Support_create_entity_screen.dart'; +import 'Support_update_entity_screen.dart'; +import '../Support_viewModel/Support_view_model_screen.dart'; +import 'Support_details_screen.dart';import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_to_text.dart' as stt; +import '../../../../theme/app_style.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../widgets/custom_icon_button.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../theme/app_decoration.dart'; +import 'package:multi_select_flutter/multi_select_flutter.dart'; +import '../../../../Reuseable/reusable_text_field.dart'; +import 'package:provider/provider.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/fields/realted_entity_insert_field.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class Support_entity_list_screen extends StatefulWidget { + static const String routeName = '/entity-list'; + + @override + _Support_entity_list_screenState createState() => _Support_entity_list_screenState(); +} + +class _Support_entity_list_screenState extends State { + @override + void initState() { + super.initState(); + _loadData(); + } + + void _loadData() { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + final vm = Provider.of(context, listen: false); + vm.getAllWithPagination(refresh: true); + } + }); + } + + void _navigateToCreateScreen() { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => SupportViewModelScreen(), + child: const SupportCreateEntityScreen(), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => SupportViewModelScreen(), + child: SupportUpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToDetailsScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => SupportViewModelScreen(), + child: SupportDetailsScreen(entity: entity), + ), + ), + ); + } + + void _showDeleteDialog(Map entity) { + final parentContext = context; + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Support?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(parentContext, listen: false); + await vm.deleteEntity(entity['id']); + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityList( + entities: viewModel.filteredList, + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + hasMoreData: viewModel.hasMoreData, + searchQuery: viewModel.searchQuery, + onSearchChanged: (query) => viewModel.searchsupport(query), + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + onTap: (entity) => _navigateToDetailsScreen(entity), + onRefresh: () => viewModel.refreshData(), + onLoadMore: () => viewModel.getAllWithPagination(), + title: 'Support', + onAddNew: _navigateToCreateScreen, + + + + + displayFields: [ + {'key': 'name', 'label': 'Name', 'type': 'text'}, + + {'key': 'description', 'label': 'Description', 'type': 'textarea'}, + + ], + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_fields.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_fields.dart new file mode 100644 index 0000000..023d52d --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_fields.dart @@ -0,0 +1,71 @@ +import 'package:base_project/BuilderField/shared/fields/number_field.dart'; +import 'package:base_project/BuilderField/shared/fields/password_field.dart'; +import 'package:base_project/BuilderField/shared/fields/phone_field.dart'; +import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart'; + +import '../../../../BuilderField/shared/fields/base_field.dart'; + +import '../../../../BuilderField/shared/fields/date_field.dart'; +import '../../../../BuilderField/shared/fields/datetime_field.dart'; +import '../../../../BuilderField/shared/fields/email_field.dart'; +import 'package:base_project/BuilderField/shared/fields/url_field.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/calculated_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_many_field.dart'; +import '../../../../BuilderField/shared/fields/value_list_picker_field.dart'; +import '../../../../BuilderField/shared/fields/captcha_field.dart'; +import '../../../../BuilderField/shared/fields/switch_field.dart'; +import '../../../../BuilderField/shared/fields/url_field.dart'; + +import '../../../../BuilderField/shared/fields/audio_upload_field.dart'; +import '../../../../BuilderField/shared/fields/checkbox_field.dart'; +import '../../../../BuilderField/shared/fields/file_upload_field.dart'; +import '../../../../BuilderField/shared/fields/image_upload_field.dart'; +import '../../../../BuilderField/shared/fields/radio_field.dart'; +import '../../../../BuilderField/shared/fields/video_upload_field.dart'; + +import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/data_grid_field.dart'; +import '../../../../BuilderField/shared/fields/dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/static_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/currency_field.dart'; +import '../../../../BuilderField/shared/fields/field_group_field.dart'; +import '../../../../BuilderField/shared/fields/qr_code_field.dart'; +import '../../../../BuilderField/shared/fields/barcode_field.dart'; +import '../../../../BuilderField/shared/fields/dependent_dropdown_field.dart'; + import '../Support_viewModel/Support_view_model_screen.dart';/// Field definitions for Support entity +/// This defines the structure and validation for Support forms +class SupportFields { + /// Get field definitions for Support entity + static List getFields(BuildContext context) { + final viewModel = + Provider.of(context, listen: false); + return [ + // Basic Information + CustomTextField( + fieldKey: 'name', + label: 'Name', + hint: 'Enter Name', + isRequired: true, + maxLength: 50, + ), + +CustomTextField( + fieldKey: 'description', + label: 'Description', + hint: 'Enter Description', + isRequired: false, + maxLength: 1000, + ), + + ]; + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_update_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_update_entity_screen.dart new file mode 100644 index 0000000..6e3490e --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/SupportView/Support_update_entity_screen.dart @@ -0,0 +1,75 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:provider/provider.dart'; +import '../Support_viewModel/Support_view_model_screen.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import 'Support_fields.dart';import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import 'package:flutter/material.dart'; +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'dart:math'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; +import 'package:flutter/services.dart'; +class SupportUpdateEntityScreen extends StatefulWidget { + final Map entity; + + + SupportUpdateEntityScreen({required this.entity}); + + @override + _SupportUpdateEntityScreenState createState() => _SupportUpdateEntityScreenState(); +} + +class _SupportUpdateEntityScreenState extends State { + final _formKey = GlobalKey(); + +@override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { +// Start with all fields, then remove upload fields (generic filter by keys) + final Set hiddenKeys = { + + + + + }; + final fields = SupportFields.getFields(context) + .where((f) => !hiddenKeys.contains(f.fieldKey)) + .toList(); return EntityUpdateScreen( + fields: fields, + initialData: widget.entity, + onSubmit: (data) => _handleSubmit(data), + title: 'Support', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.updateEntity(widget.entity['id'], formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/Support_Repo/Support_repo_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/Support_Repo/Support_repo_screen.dart new file mode 100644 index 0000000..f2259f6 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/Support_Repo/Support_repo_screen.dart @@ -0,0 +1,93 @@ +import 'package:dio/dio.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; +import '../../../../resources/api_constants.dart'; +import 'package:base_project/data/response/api_response.dart'; + +class SupportRepoScreen { + + final String baseUrl = ApiConstants.baseUrl; + final BaseNetworkService _helper = NetworkApiService(); + final String _endpointPath = '/Support/Support'; + + Future>>> getEntities() async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl$_endpointPath'); + print('Response received: $response'); + List> entities = const []; + if (response is List) { + entities = response + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } else if (response is Map) { + final dynamic content = response['content']; + if (content is List) { + entities = content + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } + } + return ApiResponse.success(entities); + } catch (e) { + print(' error got $e'); + return ApiResponse.error('Failed to get all entities: $e'); + } + } + + Future>>> getAllWithPagination( + int page, int size) async { + try { + final response = await _helper.getGetApiResponse( + '$baseUrl$_endpointPath/getall/page?page=$page&size=$size'); + + if (response is Map && response['content'] is List) { + final List> entities = + (response['content'] as List).cast>().toList(); + return ApiResponse.success(entities); + } else { + return ApiResponse.error('Invalid response format'); + } + } catch (e) { + return ApiResponse.error('Failed to get all without pagination: $e'); + } + } + + Future>> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to create entity: $e'); + } + } + + Future>> updateEntity( + int entityId, Map entity) async { + try { + final response = await _helper.getPutApiResponse( + '$baseUrl$_endpointPath/$entityId', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to update entity: $e'); + } + } + + Future> deleteEntity(int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId'); + return ApiResponse.success(null); + } catch (e) { + return ApiResponse.error('Failed to delete entity: $e'); + } + } + + + + +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/Support_viewModel/Support_view_model_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/Support_viewModel/Support_view_model_screen.dart new file mode 100644 index 0000000..320b5e6 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/angulardatatype/Support/Support_viewModel/Support_view_model_screen.dart @@ -0,0 +1,292 @@ +import 'package:base_project/data/response/status.dart'; +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/utils/entity_field_store.dart'; +import 'package:flutter/material.dart'; +import '../Support_Repo/Support_repo_screen.dart'; + +class SupportViewModelScreen extends ChangeNotifier{ + final SupportRepoScreen repo = SupportRepoScreen(); + + + // State variables + List> _supportList = []; + List> _filteredList = []; + bool _isLoading = false; + String _errorMessage = ''; + int _currentPage = 0; + int _pageSize = 10; + bool _hasMoreData = true; + String _searchQuery = ''; + + // Getters + List> get supportList => _supportList; + List> get filteredList => _filteredList; + bool get isLoading => _isLoading; + String get errorMessage => _errorMessage; + bool get hasMoreData => _hasMoreData; + String get searchQuery => _searchQuery; + + // Set loading state + void _setLoading(bool loading) { + _isLoading = loading; + notifyListeners(); + } + + // Set error message + void _setError(String error) { + _errorMessage = error; + notifyListeners(); + } + + // Clear error + void clearError() { + _errorMessage = ''; + notifyListeners(); + } + + // Get support list + Future getEntities() async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.getEntities(); + + if (response.status == Status.SUCCESS) { + _supportList = response.data ?? []; + _filteredList = List.from(_supportList); + _currentPage = 0; + _hasMoreData = true; + } else { + _setError(response.message ?? 'Failed to fetch support list'); + } + } catch (e) { + _setError('Failed to fetch support list: $e'); + } finally { + _setLoading(false); + } + } + + // Get support list with pagination + Future getAllWithPagination({bool refresh = false}) async { + if (refresh) { + _currentPage = 0; + _supportList.clear(); + _filteredList.clear(); + _hasMoreData = true; + } + + if (!_hasMoreData || _isLoading) return; + + _setLoading(true); + _setError(''); + + try { + final response = await repo.getAllWithPagination(_currentPage, _pageSize); + + if (response.status == Status.SUCCESS) { + final newItems = response.data ?? []; + + if (refresh) { + _supportList = newItems; + } else { + _supportList.addAll(newItems); + } + + _filteredList = List.from(_supportList); + _currentPage++; + + // Check if we have more data + _hasMoreData = newItems.length == _pageSize; + } else { + _setError(response.message ?? 'Failed to fetch Support list'); + } + } catch (e) { + _setError('Failed to fetch support list: $e'); + } finally { + _setLoading(false); + } + } + + + + + + // Create Support + Future createEntity(Map entity) async { + _setLoading(true); + _setError(''); + + try { + + + + + final response = await repo.createEntity(entity); + + if (response.status == Status.SUCCESS) { +// Get the response ID for image upload + + final responseId = response.data!['id'].toString(); + + + + + ToastMessageUtil.showToast( + message: 'support created successfully', + toastType: ToastType.success, + ); + + // Refresh the list + await getEntities(); + + + + + return true; + } else { + _setError(response.message ?? 'Failed to create Support'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to create Support', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to create support: $e'); + ToastMessageUtil.showToast( + message: 'Failed to create Support: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Update support + Future updateEntity(int id, Map entity) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.updateEntity(id, entity); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Support updated successfully', + toastType: ToastType.success, + ); + + // Update the item in the list + final index = _supportList.indexWhere((item) => item['id'] == id); + if (index != -1) { + _supportList[index] = response.data!; + _filteredList = List.from(_supportList); + notifyListeners(); + } + return true; + } else { + _setError(response.message ?? 'Failed to update Support'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to update Support', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to update support: $e'); + ToastMessageUtil.showToast( + message: 'Failed to update Support: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Delete support + Future deleteEntity(int id) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.deleteEntity(id); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Support deleted successfully', + toastType: ToastType.success, + ); + + // Remove the item from the list + _supportList.removeWhere((item) => item['id'] == id); + _filteredList = List.from(_supportList); + notifyListeners(); + return true; + } else { + _setError(response.message ?? 'Failed to delete Support'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to delete Support', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to delete support: $e'); + ToastMessageUtil.showToast( + message: 'Failed to delete Support: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Search support + void searchsupport(String query) { + _searchQuery = query; + + if (query.isEmpty) { + _filteredList = List.from(_supportList); + } else { + _filteredList = _supportList.where((item) { + return + + +(item['name']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['description']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) + + +; + }).toList(); + } + notifyListeners(); + } + + // Clear search + void clearSearch() { + _searchQuery = ''; + _filteredList = List.from(_supportList); + notifyListeners(); + } + + // Refresh data + Future refreshData() async { + await getAllWithPagination(refresh: true); + } + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_api_service.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_api_service.dart new file mode 100644 index 0000000..6be6e71 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_api_service.dart @@ -0,0 +1,84 @@ +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../resources/api_constants.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; + +class ChildformApiService { + final String baseUrl = ApiConstants.baseUrl; + + final BaseNetworkService _helper = NetworkApiService(); + + + + Future>> getEntities() async { + + try { + final response = await _helper.getGetApiResponse('$baseUrl/Childform/Childform'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all entities: $e'); + } + } +Future>> getAllWithPagination( + int page, int size) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/Childform/Childform/getall/page?page=$page&size=$size'); + final entities = + (response['content'] as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all without pagination: $e'); + } + } + Future> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl/Childform/Childform', entity); + + print(entity); + + // Assuming the response is a Map + Map responseData = response; + + return responseData; + } catch (e) { + throw Exception('Failed to create entity: $e'); + } + } + + + + + + + + Future updateEntity( int entityId, Map entity) async { + try { + await _helper.getPutApiResponse('$baseUrl/Childform/Childform/$entityId', + entity); print(entity); + + } catch (e) { + throw Exception('Failed to update entity: $e'); + } + } + + Future deleteEntity( int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl/Childform/Childform/$entityId'); + } catch (e) { + throw Exception('Failed to delete entity: $e'); + } + } + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_create_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_create_entity_screen.dart new file mode 100644 index 0000000..809379a --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_create_entity_screen.dart @@ -0,0 +1,82 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:provider/provider.dart'; +import '../Childform_viewModel/Childform_view_model_screen.dart'; +import 'Childform_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import '../../../../widgets/custom_dropdown_field.dart'; +import 'dart:math'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:intl/intl.dart'; + +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:http/http.dart' as http; +import 'package:flutter/services.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart' +;import 'package:multi_select_flutter/multi_select_flutter.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:video_player/video_player.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:lottie/lottie.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import 'dart:io'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; + + + + + + +class ChildformCreateEntityScreen extends StatefulWidget { + const ChildformCreateEntityScreen({super.key}); + + @override + _ChildformCreateEntityScreenState createState() => _ChildformCreateEntityScreenState(); +} + +class _ChildformCreateEntityScreenState extends State { + +final Map formData = {}; + final _formKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityCreateScreen( + fields: ChildformFields.getFields(context), + onSubmit: (data) => _handleSubmit(data), + title: 'Childform', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.createEntity(formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_details_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_details_screen.dart new file mode 100644 index 0000000..d9e3d85 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_details_screen.dart @@ -0,0 +1,90 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../../../BuilderField/shared/ui/entity_details.dart'; +import '../Childform_viewModel/Childform_view_model_screen.dart'; +import 'Childform_update_entity_screen.dart'; + +class ChildformDetailsScreen extends StatefulWidget { + final Map entity; + + const ChildformDetailsScreen({ + super.key, + required this.entity, + }); + + @override + State createState() => _ChildformDetailsScreenState(); +} + +class _ChildformDetailsScreenState extends State { + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => ChildformViewModelScreen(), + child: ChildformUpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + // Refresh the details screen with updated data + setState(() {}); + }); + } + + void _showDeleteDialog(Map entity) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Childform?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(context, listen: false); + final success = await vm.deleteEntity(entity['id']); + if (success && mounted) { + Navigator.pop(context); // Go back to list + } + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityDetails( + entity: widget.entity, + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + title: 'Childform', + displayFields: [ + {'key': 'name', 'label': 'Name', 'type': 'text'}, + + {'key': 'description', 'label': 'Description', 'type': 'textarea'}, + + {'key': 'active', 'label': 'Active', 'type': 'toggle_switch'}, + + ], + isLoading: viewModel.isLoading, + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_entity_list_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_entity_list_screen.dart new file mode 100644 index 0000000..794b62c --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_entity_list_screen.dart @@ -0,0 +1,157 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_list.dart'; +import 'Childform_create_entity_screen.dart'; +import 'Childform_update_entity_screen.dart'; +import '../Childform_viewModel/Childform_view_model_screen.dart'; +import 'Childform_details_screen.dart';import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_to_text.dart' as stt; +import '../../../../theme/app_style.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../widgets/custom_icon_button.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../theme/app_decoration.dart'; +import 'package:multi_select_flutter/multi_select_flutter.dart'; +import '../../../../Reuseable/reusable_text_field.dart'; +import 'package:provider/provider.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/fields/realted_entity_insert_field.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class Childform_entity_list_screen extends StatefulWidget { + static const String routeName = '/entity-list'; + + @override + _Childform_entity_list_screenState createState() => _Childform_entity_list_screenState(); +} + +class _Childform_entity_list_screenState extends State { + @override + void initState() { + super.initState(); + _loadData(); + } + + void _loadData() { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + final vm = Provider.of(context, listen: false); + vm.getAllWithPagination(refresh: true); + } + }); + } + + void _navigateToCreateScreen() { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => ChildformViewModelScreen(), + child: const ChildformCreateEntityScreen(), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => ChildformViewModelScreen(), + child: ChildformUpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToDetailsScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => ChildformViewModelScreen(), + child: ChildformDetailsScreen(entity: entity), + ), + ), + ); + } + + void _showDeleteDialog(Map entity) { + final parentContext = context; + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Childform?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(parentContext, listen: false); + await vm.deleteEntity(entity['id']); + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityList( + entities: viewModel.filteredList, + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + hasMoreData: viewModel.hasMoreData, + searchQuery: viewModel.searchQuery, + onSearchChanged: (query) => viewModel.searchchildform(query), + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + onTap: (entity) => _navigateToDetailsScreen(entity), + onRefresh: () => viewModel.refreshData(), + onLoadMore: () => viewModel.getAllWithPagination(), + title: 'Childform', + onAddNew: _navigateToCreateScreen, + + + + + + + displayFields: [ + {'key': 'name', 'label': 'Name', 'type': 'text'}, + + {'key': 'description', 'label': 'Description', 'type': 'textarea'}, + + {'key': 'active', 'label': 'Active', 'type': 'toggle_switch'}, + + ], + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_fields.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_fields.dart new file mode 100644 index 0000000..5c4a09f --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_fields.dart @@ -0,0 +1,76 @@ +import 'package:base_project/BuilderField/shared/fields/number_field.dart'; +import 'package:base_project/BuilderField/shared/fields/password_field.dart'; +import 'package:base_project/BuilderField/shared/fields/phone_field.dart'; +import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart'; + +import '../../../../BuilderField/shared/fields/base_field.dart'; + +import '../../../../BuilderField/shared/fields/date_field.dart'; +import '../../../../BuilderField/shared/fields/datetime_field.dart'; +import '../../../../BuilderField/shared/fields/email_field.dart'; +import 'package:base_project/BuilderField/shared/fields/url_field.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/calculated_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_many_field.dart'; +import '../../../../BuilderField/shared/fields/value_list_picker_field.dart'; +import '../../../../BuilderField/shared/fields/captcha_field.dart'; +import '../../../../BuilderField/shared/fields/switch_field.dart'; +import '../../../../BuilderField/shared/fields/url_field.dart'; + +import '../../../../BuilderField/shared/fields/audio_upload_field.dart'; +import '../../../../BuilderField/shared/fields/checkbox_field.dart'; +import '../../../../BuilderField/shared/fields/file_upload_field.dart'; +import '../../../../BuilderField/shared/fields/image_upload_field.dart'; +import '../../../../BuilderField/shared/fields/radio_field.dart'; +import '../../../../BuilderField/shared/fields/video_upload_field.dart'; + +import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/data_grid_field.dart'; +import '../../../../BuilderField/shared/fields/dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/static_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/currency_field.dart'; +import '../../../../BuilderField/shared/fields/field_group_field.dart'; +import '../../../../BuilderField/shared/fields/qr_code_field.dart'; +import '../../../../BuilderField/shared/fields/barcode_field.dart'; +import '../../../../BuilderField/shared/fields/dependent_dropdown_field.dart'; + import '../Childform_viewModel/Childform_view_model_screen.dart';/// Field definitions for Childform entity +/// This defines the structure and validation for Childform forms +class ChildformFields { + /// Get field definitions for Childform entity + static List getFields(BuildContext context) { + final viewModel = + Provider.of(context, listen: false); + return [ + // Basic Information + CustomTextField( + fieldKey: 'name', + label: 'Name', + hint: 'Enter Name', + isRequired: true, + maxLength: 50, + ), + +CustomTextField( + fieldKey: 'description', + label: 'Description', + hint: 'Enter Description', + isRequired: false, + maxLength: 1000, + ), + + SwitchField( + fieldKey: 'active', + label: 'Active', + ), + + ]; + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_update_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_update_entity_screen.dart new file mode 100644 index 0000000..93e869e --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/ChildformView/Childform_update_entity_screen.dart @@ -0,0 +1,77 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:provider/provider.dart'; +import '../Childform_viewModel/Childform_view_model_screen.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import 'Childform_fields.dart';import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import 'package:flutter/material.dart'; +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'dart:math'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; +import 'package:flutter/services.dart'; +class ChildformUpdateEntityScreen extends StatefulWidget { + final Map entity; + + + ChildformUpdateEntityScreen({required this.entity}); + + @override + _ChildformUpdateEntityScreenState createState() => _ChildformUpdateEntityScreenState(); +} + +class _ChildformUpdateEntityScreenState extends State { + final _formKey = GlobalKey(); + +@override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { +// Start with all fields, then remove upload fields (generic filter by keys) + final Set hiddenKeys = { + + + + + + + }; + final fields = ChildformFields.getFields(context) + .where((f) => !hiddenKeys.contains(f.fieldKey)) + .toList(); return EntityUpdateScreen( + fields: fields, + initialData: widget.entity, + onSubmit: (data) => _handleSubmit(data), + title: 'Childform', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.updateEntity(widget.entity['id'], formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/Childform_Repo/Childform_repo_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/Childform_Repo/Childform_repo_screen.dart new file mode 100644 index 0000000..e2edd9b --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/Childform_Repo/Childform_repo_screen.dart @@ -0,0 +1,95 @@ +import 'package:dio/dio.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; +import '../../../../resources/api_constants.dart'; +import 'package:base_project/data/response/api_response.dart'; + +class ChildformRepoScreen { + + final String baseUrl = ApiConstants.baseUrl; + final BaseNetworkService _helper = NetworkApiService(); + final String _endpointPath = '/Childform/Childform'; + + Future>>> getEntities() async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl$_endpointPath'); + print('Response received: $response'); + List> entities = const []; + if (response is List) { + entities = response + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } else if (response is Map) { + final dynamic content = response['content']; + if (content is List) { + entities = content + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } + } + return ApiResponse.success(entities); + } catch (e) { + print(' error got $e'); + return ApiResponse.error('Failed to get all entities: $e'); + } + } + + Future>>> getAllWithPagination( + int page, int size) async { + try { + final response = await _helper.getGetApiResponse( + '$baseUrl$_endpointPath/getall/page?page=$page&size=$size'); + + if (response is Map && response['content'] is List) { + final List> entities = + (response['content'] as List).cast>().toList(); + return ApiResponse.success(entities); + } else { + return ApiResponse.error('Invalid response format'); + } + } catch (e) { + return ApiResponse.error('Failed to get all without pagination: $e'); + } + } + + Future>> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to create entity: $e'); + } + } + + Future>> updateEntity( + int entityId, Map entity) async { + try { + final response = await _helper.getPutApiResponse( + '$baseUrl$_endpointPath/$entityId', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to update entity: $e'); + } + } + + Future> deleteEntity(int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId'); + return ApiResponse.success(null); + } catch (e) { + return ApiResponse.error('Failed to delete entity: $e'); + } + } + + + + + + +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/Childform_viewModel/Childform_view_model_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/Childform_viewModel/Childform_view_model_screen.dart new file mode 100644 index 0000000..79ffa28 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/stpkg/Childform/Childform_viewModel/Childform_view_model_screen.dart @@ -0,0 +1,305 @@ +import 'package:base_project/data/response/status.dart'; +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/utils/entity_field_store.dart'; +import 'package:flutter/material.dart'; +import '../Childform_Repo/Childform_repo_screen.dart'; + +class ChildformViewModelScreen extends ChangeNotifier{ + final ChildformRepoScreen repo = ChildformRepoScreen(); + + + // State variables + List> _childformList = []; + List> _filteredList = []; + bool _isLoading = false; + String _errorMessage = ''; + int _currentPage = 0; + int _pageSize = 10; + bool _hasMoreData = true; + String _searchQuery = ''; + + // Getters + List> get childformList => _childformList; + List> get filteredList => _filteredList; + bool get isLoading => _isLoading; + String get errorMessage => _errorMessage; + bool get hasMoreData => _hasMoreData; + String get searchQuery => _searchQuery; + + // Set loading state + void _setLoading(bool loading) { + _isLoading = loading; + notifyListeners(); + } + + // Set error message + void _setError(String error) { + _errorMessage = error; + notifyListeners(); + } + + // Clear error + void clearError() { + _errorMessage = ''; + notifyListeners(); + } + + // Get childform list + Future getEntities() async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.getEntities(); + + if (response.status == Status.SUCCESS) { + _childformList = response.data ?? []; + _filteredList = List.from(_childformList); + _currentPage = 0; + _hasMoreData = true; + } else { + _setError(response.message ?? 'Failed to fetch childform list'); + } + } catch (e) { + _setError('Failed to fetch childform list: $e'); + } finally { + _setLoading(false); + } + } + + // Get childform list with pagination + Future getAllWithPagination({bool refresh = false}) async { + if (refresh) { + _currentPage = 0; + _childformList.clear(); + _filteredList.clear(); + _hasMoreData = true; + } + + if (!_hasMoreData || _isLoading) return; + + _setLoading(true); + _setError(''); + + try { + final response = await repo.getAllWithPagination(_currentPage, _pageSize); + + if (response.status == Status.SUCCESS) { + final newItems = response.data ?? []; + + if (refresh) { + _childformList = newItems; + } else { + _childformList.addAll(newItems); + } + + _filteredList = List.from(_childformList); + _currentPage++; + + // Check if we have more data + _hasMoreData = newItems.length == _pageSize; + } else { + _setError(response.message ?? 'Failed to fetch Childform list'); + } + } catch (e) { + _setError('Failed to fetch childform list: $e'); + } finally { + _setLoading(false); + } + } + + + + + + + + // Create Childform + Future createEntity(Map entity) async { + _setLoading(true); + _setError(''); + + try { + + + + + + + final response = await repo.createEntity(entity); + + if (response.status == Status.SUCCESS) { +// Get the response ID for image upload + + final responseId = response.data!['id'].toString(); + + + + + + + ToastMessageUtil.showToast( + message: 'childform created successfully', + toastType: ToastType.success, + ); + + // Refresh the list + await getEntities(); + + + + + + + return true; + } else { + _setError(response.message ?? 'Failed to create Childform'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to create Childform', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to create childform: $e'); + ToastMessageUtil.showToast( + message: 'Failed to create Childform: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Update childform + Future updateEntity(int id, Map entity) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.updateEntity(id, entity); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Childform updated successfully', + toastType: ToastType.success, + ); + + // Update the item in the list + final index = _childformList.indexWhere((item) => item['id'] == id); + if (index != -1) { + _childformList[index] = response.data!; + _filteredList = List.from(_childformList); + notifyListeners(); + } + return true; + } else { + _setError(response.message ?? 'Failed to update Childform'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to update Childform', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to update childform: $e'); + ToastMessageUtil.showToast( + message: 'Failed to update Childform: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Delete childform + Future deleteEntity(int id) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.deleteEntity(id); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Childform deleted successfully', + toastType: ToastType.success, + ); + + // Remove the item from the list + _childformList.removeWhere((item) => item['id'] == id); + _filteredList = List.from(_childformList); + notifyListeners(); + return true; + } else { + _setError(response.message ?? 'Failed to delete Childform'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to delete Childform', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to delete childform: $e'); + ToastMessageUtil.showToast( + message: 'Failed to delete Childform: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Search childform + void searchchildform(String query) { + _searchQuery = query; + + if (query.isEmpty) { + _filteredList = List.from(_childformList); + } else { + _filteredList = _childformList.where((item) { + return + + +(item['name']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['description']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + +(item['active']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) + + +; + }).toList(); + } + notifyListeners(); + } + + // Clear search + void clearSearch() { + _searchQuery = ''; + _filteredList = List.from(_childformList); + notifyListeners(); + } + + // Refresh data + Future refreshData() async { + await getAllWithPagination(refresh: true); + } + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_api_service.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_api_service.dart new file mode 100644 index 0000000..96a5ddc --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_api_service.dart @@ -0,0 +1,84 @@ +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../resources/api_constants.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; + +class CountryApiService { + final String baseUrl = ApiConstants.baseUrl; + + final BaseNetworkService _helper = NetworkApiService(); + + + + Future>> getEntities() async { + + try { + final response = await _helper.getGetApiResponse('$baseUrl/Country/Country'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all entities: $e'); + } + } +Future>> getAllWithPagination( + int page, int size) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/Country/Country/getall/page?page=$page&size=$size'); + final entities = + (response['content'] as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all without pagination: $e'); + } + } + Future> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl/Country/Country', entity); + + print(entity); + + // Assuming the response is a Map + Map responseData = response; + + return responseData; + } catch (e) { + throw Exception('Failed to create entity: $e'); + } + } + + + + + + + + Future updateEntity( int entityId, Map entity) async { + try { + await _helper.getPutApiResponse('$baseUrl/Country/Country/$entityId', + entity); print(entity); + + } catch (e) { + throw Exception('Failed to update entity: $e'); + } + } + + Future deleteEntity( int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl/Country/Country/$entityId'); + } catch (e) { + throw Exception('Failed to delete entity: $e'); + } + } + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_create_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_create_entity_screen.dart new file mode 100644 index 0000000..a7482d4 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_create_entity_screen.dart @@ -0,0 +1,82 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:provider/provider.dart'; +import '../Country_viewModel/Country_view_model_screen.dart'; +import 'Country_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import '../../../../widgets/custom_dropdown_field.dart'; +import 'dart:math'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:intl/intl.dart'; + +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:http/http.dart' as http; +import 'package:flutter/services.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart' +;import 'package:multi_select_flutter/multi_select_flutter.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:video_player/video_player.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:lottie/lottie.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import 'dart:io'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; + + + + + + +class CountryCreateEntityScreen extends StatefulWidget { + const CountryCreateEntityScreen({super.key}); + + @override + _CountryCreateEntityScreenState createState() => _CountryCreateEntityScreenState(); +} + +class _CountryCreateEntityScreenState extends State { + +final Map formData = {}; + final _formKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityCreateScreen( + fields: CountryFields.getFields(context), + onSubmit: (data) => _handleSubmit(data), + title: 'Country', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.createEntity(formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_details_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_details_screen.dart new file mode 100644 index 0000000..63437bd --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_details_screen.dart @@ -0,0 +1,90 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../../../BuilderField/shared/ui/entity_details.dart'; +import '../Country_viewModel/Country_view_model_screen.dart'; +import 'Country_update_entity_screen.dart'; + +class CountryDetailsScreen extends StatefulWidget { + final Map entity; + + const CountryDetailsScreen({ + super.key, + required this.entity, + }); + + @override + State createState() => _CountryDetailsScreenState(); +} + +class _CountryDetailsScreenState extends State { + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => CountryViewModelScreen(), + child: CountryUpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + // Refresh the details screen with updated data + setState(() {}); + }); + } + + void _showDeleteDialog(Map entity) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Country?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(context, listen: false); + final success = await vm.deleteEntity(entity['id']); + if (success && mounted) { + Navigator.pop(context); // Go back to list + } + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityDetails( + entity: widget.entity, + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + title: 'Country', + displayFields: [ + {'key': 'name', 'label': 'Name', 'type': 'text'}, + + {'key': 'description', 'label': 'Description', 'type': 'textarea'}, + + {'key': 'active', 'label': 'Active', 'type': 'toggle_switch'}, + + ], + isLoading: viewModel.isLoading, + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_entity_list_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_entity_list_screen.dart new file mode 100644 index 0000000..57a0ced --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_entity_list_screen.dart @@ -0,0 +1,157 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_list.dart'; +import 'Country_create_entity_screen.dart'; +import 'Country_update_entity_screen.dart'; +import '../Country_viewModel/Country_view_model_screen.dart'; +import 'Country_details_screen.dart';import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_to_text.dart' as stt; +import '../../../../theme/app_style.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../widgets/custom_icon_button.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../theme/app_decoration.dart'; +import 'package:multi_select_flutter/multi_select_flutter.dart'; +import '../../../../Reuseable/reusable_text_field.dart'; +import 'package:provider/provider.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/fields/realted_entity_insert_field.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class Country_entity_list_screen extends StatefulWidget { + static const String routeName = '/entity-list'; + + @override + _Country_entity_list_screenState createState() => _Country_entity_list_screenState(); +} + +class _Country_entity_list_screenState extends State { + @override + void initState() { + super.initState(); + _loadData(); + } + + void _loadData() { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + final vm = Provider.of(context, listen: false); + vm.getAllWithPagination(refresh: true); + } + }); + } + + void _navigateToCreateScreen() { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => CountryViewModelScreen(), + child: const CountryCreateEntityScreen(), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => CountryViewModelScreen(), + child: CountryUpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToDetailsScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => CountryViewModelScreen(), + child: CountryDetailsScreen(entity: entity), + ), + ), + ); + } + + void _showDeleteDialog(Map entity) { + final parentContext = context; + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this Country?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(parentContext, listen: false); + await vm.deleteEntity(entity['id']); + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityList( + entities: viewModel.filteredList, + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + hasMoreData: viewModel.hasMoreData, + searchQuery: viewModel.searchQuery, + onSearchChanged: (query) => viewModel.searchcountry(query), + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + onTap: (entity) => _navigateToDetailsScreen(entity), + onRefresh: () => viewModel.refreshData(), + onLoadMore: () => viewModel.getAllWithPagination(), + title: 'Country', + onAddNew: _navigateToCreateScreen, + + + + + + + displayFields: [ + {'key': 'name', 'label': 'Name', 'type': 'text'}, + + {'key': 'description', 'label': 'Description', 'type': 'textarea'}, + + {'key': 'active', 'label': 'Active', 'type': 'toggle_switch'}, + + ], + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_fields.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_fields.dart new file mode 100644 index 0000000..012f2a0 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_fields.dart @@ -0,0 +1,76 @@ +import 'package:base_project/BuilderField/shared/fields/number_field.dart'; +import 'package:base_project/BuilderField/shared/fields/password_field.dart'; +import 'package:base_project/BuilderField/shared/fields/phone_field.dart'; +import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart'; + +import '../../../../BuilderField/shared/fields/base_field.dart'; + +import '../../../../BuilderField/shared/fields/date_field.dart'; +import '../../../../BuilderField/shared/fields/datetime_field.dart'; +import '../../../../BuilderField/shared/fields/email_field.dart'; +import 'package:base_project/BuilderField/shared/fields/url_field.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/calculated_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_many_field.dart'; +import '../../../../BuilderField/shared/fields/value_list_picker_field.dart'; +import '../../../../BuilderField/shared/fields/captcha_field.dart'; +import '../../../../BuilderField/shared/fields/switch_field.dart'; +import '../../../../BuilderField/shared/fields/url_field.dart'; + +import '../../../../BuilderField/shared/fields/audio_upload_field.dart'; +import '../../../../BuilderField/shared/fields/checkbox_field.dart'; +import '../../../../BuilderField/shared/fields/file_upload_field.dart'; +import '../../../../BuilderField/shared/fields/image_upload_field.dart'; +import '../../../../BuilderField/shared/fields/radio_field.dart'; +import '../../../../BuilderField/shared/fields/video_upload_field.dart'; + +import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/data_grid_field.dart'; +import '../../../../BuilderField/shared/fields/dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/static_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/currency_field.dart'; +import '../../../../BuilderField/shared/fields/field_group_field.dart'; +import '../../../../BuilderField/shared/fields/qr_code_field.dart'; +import '../../../../BuilderField/shared/fields/barcode_field.dart'; +import '../../../../BuilderField/shared/fields/dependent_dropdown_field.dart'; + import '../Country_viewModel/Country_view_model_screen.dart';/// Field definitions for Country entity +/// This defines the structure and validation for Country forms +class CountryFields { + /// Get field definitions for Country entity + static List getFields(BuildContext context) { + final viewModel = + Provider.of(context, listen: false); + return [ + // Basic Information + CustomTextField( + fieldKey: 'name', + label: 'Name', + hint: 'Enter Name', + isRequired: true, + maxLength: 50, + ), + +CustomTextField( + fieldKey: 'description', + label: 'Description', + hint: 'Enter Description', + isRequired: false, + maxLength: 1000, + ), + + SwitchField( + fieldKey: 'active', + label: 'Active', + ), + + ]; + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_update_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_update_entity_screen.dart new file mode 100644 index 0000000..e93c8a4 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/CountryView/Country_update_entity_screen.dart @@ -0,0 +1,77 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:provider/provider.dart'; +import '../Country_viewModel/Country_view_model_screen.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import 'Country_fields.dart';import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import 'package:flutter/material.dart'; +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'dart:math'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; +import 'package:flutter/services.dart'; +class CountryUpdateEntityScreen extends StatefulWidget { + final Map entity; + + + CountryUpdateEntityScreen({required this.entity}); + + @override + _CountryUpdateEntityScreenState createState() => _CountryUpdateEntityScreenState(); +} + +class _CountryUpdateEntityScreenState extends State { + final _formKey = GlobalKey(); + +@override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { +// Start with all fields, then remove upload fields (generic filter by keys) + final Set hiddenKeys = { + + + + + + + }; + final fields = CountryFields.getFields(context) + .where((f) => !hiddenKeys.contains(f.fieldKey)) + .toList(); return EntityUpdateScreen( + fields: fields, + initialData: widget.entity, + onSubmit: (data) => _handleSubmit(data), + title: 'Country', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.updateEntity(widget.entity['id'], formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/Country_Repo/Country_repo_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/Country_Repo/Country_repo_screen.dart new file mode 100644 index 0000000..22cd5c8 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/Country_Repo/Country_repo_screen.dart @@ -0,0 +1,95 @@ +import 'package:dio/dio.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; +import '../../../../resources/api_constants.dart'; +import 'package:base_project/data/response/api_response.dart'; + +class CountryRepoScreen { + + final String baseUrl = ApiConstants.baseUrl; + final BaseNetworkService _helper = NetworkApiService(); + final String _endpointPath = '/Country/Country'; + + Future>>> getEntities() async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl$_endpointPath'); + print('Response received: $response'); + List> entities = const []; + if (response is List) { + entities = response + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } else if (response is Map) { + final dynamic content = response['content']; + if (content is List) { + entities = content + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } + } + return ApiResponse.success(entities); + } catch (e) { + print(' error got $e'); + return ApiResponse.error('Failed to get all entities: $e'); + } + } + + Future>>> getAllWithPagination( + int page, int size) async { + try { + final response = await _helper.getGetApiResponse( + '$baseUrl$_endpointPath/getall/page?page=$page&size=$size'); + + if (response is Map && response['content'] is List) { + final List> entities = + (response['content'] as List).cast>().toList(); + return ApiResponse.success(entities); + } else { + return ApiResponse.error('Invalid response format'); + } + } catch (e) { + return ApiResponse.error('Failed to get all without pagination: $e'); + } + } + + Future>> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to create entity: $e'); + } + } + + Future>> updateEntity( + int entityId, Map entity) async { + try { + final response = await _helper.getPutApiResponse( + '$baseUrl$_endpointPath/$entityId', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to update entity: $e'); + } + } + + Future> deleteEntity(int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId'); + return ApiResponse.success(null); + } catch (e) { + return ApiResponse.error('Failed to delete entity: $e'); + } + } + + + + + + +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/Country_viewModel/Country_view_model_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/Country_viewModel/Country_view_model_screen.dart new file mode 100644 index 0000000..d194717 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/Country/Country_viewModel/Country_view_model_screen.dart @@ -0,0 +1,305 @@ +import 'package:base_project/data/response/status.dart'; +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/utils/entity_field_store.dart'; +import 'package:flutter/material.dart'; +import '../Country_Repo/Country_repo_screen.dart'; + +class CountryViewModelScreen extends ChangeNotifier{ + final CountryRepoScreen repo = CountryRepoScreen(); + + + // State variables + List> _countryList = []; + List> _filteredList = []; + bool _isLoading = false; + String _errorMessage = ''; + int _currentPage = 0; + int _pageSize = 10; + bool _hasMoreData = true; + String _searchQuery = ''; + + // Getters + List> get countryList => _countryList; + List> get filteredList => _filteredList; + bool get isLoading => _isLoading; + String get errorMessage => _errorMessage; + bool get hasMoreData => _hasMoreData; + String get searchQuery => _searchQuery; + + // Set loading state + void _setLoading(bool loading) { + _isLoading = loading; + notifyListeners(); + } + + // Set error message + void _setError(String error) { + _errorMessage = error; + notifyListeners(); + } + + // Clear error + void clearError() { + _errorMessage = ''; + notifyListeners(); + } + + // Get country list + Future getEntities() async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.getEntities(); + + if (response.status == Status.SUCCESS) { + _countryList = response.data ?? []; + _filteredList = List.from(_countryList); + _currentPage = 0; + _hasMoreData = true; + } else { + _setError(response.message ?? 'Failed to fetch country list'); + } + } catch (e) { + _setError('Failed to fetch country list: $e'); + } finally { + _setLoading(false); + } + } + + // Get country list with pagination + Future getAllWithPagination({bool refresh = false}) async { + if (refresh) { + _currentPage = 0; + _countryList.clear(); + _filteredList.clear(); + _hasMoreData = true; + } + + if (!_hasMoreData || _isLoading) return; + + _setLoading(true); + _setError(''); + + try { + final response = await repo.getAllWithPagination(_currentPage, _pageSize); + + if (response.status == Status.SUCCESS) { + final newItems = response.data ?? []; + + if (refresh) { + _countryList = newItems; + } else { + _countryList.addAll(newItems); + } + + _filteredList = List.from(_countryList); + _currentPage++; + + // Check if we have more data + _hasMoreData = newItems.length == _pageSize; + } else { + _setError(response.message ?? 'Failed to fetch Country list'); + } + } catch (e) { + _setError('Failed to fetch country list: $e'); + } finally { + _setLoading(false); + } + } + + + + + + + + // Create Country + Future createEntity(Map entity) async { + _setLoading(true); + _setError(''); + + try { + + + + + + + final response = await repo.createEntity(entity); + + if (response.status == Status.SUCCESS) { +// Get the response ID for image upload + + final responseId = response.data!['id'].toString(); + + + + + + + ToastMessageUtil.showToast( + message: 'country created successfully', + toastType: ToastType.success, + ); + + // Refresh the list + await getEntities(); + + + + + + + return true; + } else { + _setError(response.message ?? 'Failed to create Country'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to create Country', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to create country: $e'); + ToastMessageUtil.showToast( + message: 'Failed to create Country: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Update country + Future updateEntity(int id, Map entity) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.updateEntity(id, entity); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Country updated successfully', + toastType: ToastType.success, + ); + + // Update the item in the list + final index = _countryList.indexWhere((item) => item['id'] == id); + if (index != -1) { + _countryList[index] = response.data!; + _filteredList = List.from(_countryList); + notifyListeners(); + } + return true; + } else { + _setError(response.message ?? 'Failed to update Country'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to update Country', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to update country: $e'); + ToastMessageUtil.showToast( + message: 'Failed to update Country: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Delete country + Future deleteEntity(int id) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.deleteEntity(id); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'Country deleted successfully', + toastType: ToastType.success, + ); + + // Remove the item from the list + _countryList.removeWhere((item) => item['id'] == id); + _filteredList = List.from(_countryList); + notifyListeners(); + return true; + } else { + _setError(response.message ?? 'Failed to delete Country'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to delete Country', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to delete country: $e'); + ToastMessageUtil.showToast( + message: 'Failed to delete Country: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Search country + void searchcountry(String query) { + _searchQuery = query; + + if (query.isEmpty) { + _filteredList = List.from(_countryList); + } else { + _filteredList = _countryList.where((item) { + return + + +(item['name']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['description']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + +(item['active']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) + + +; + }).toList(); + } + notifyListeners(); + } + + // Clear search + void clearSearch() { + _searchQuery = ''; + _filteredList = List.from(_countryList); + notifyListeners(); + } + + // Refresh data + Future refreshData() async { + await getAllWithPagination(refresh: true); + } + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_api_service.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_api_service.dart new file mode 100644 index 0000000..25231d2 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_api_service.dart @@ -0,0 +1,88 @@ +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../resources/api_constants.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; + +class DistrictApiService { + final String baseUrl = ApiConstants.baseUrl; + + final BaseNetworkService _helper = NetworkApiService(); + + + + Future>> getEntities() async { + + try { + final response = await _helper.getGetApiResponse('$baseUrl/District/District'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all entities: $e'); + } + } +Future>> getAllWithPagination( + int page, int size) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/District/District/getall/page?page=$page&size=$size'); + final entities = + (response['content'] as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all without pagination: $e'); + } + } + Future> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl/District/District', entity); + + print(entity); + + // Assuming the response is a Map + Map responseData = response; + + return responseData; + } catch (e) { + throw Exception('Failed to create entity: $e'); + } + } + + + + + + + + + + Future updateEntity( int entityId, Map entity) async { + try { + await _helper.getPutApiResponse('$baseUrl/District/District/$entityId', + entity); print(entity); + + } catch (e) { + throw Exception('Failed to update entity: $e'); + } + } + + Future deleteEntity( int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl/District/District/$entityId'); + } catch (e) { + throw Exception('Failed to delete entity: $e'); + } + } + + + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_create_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_create_entity_screen.dart new file mode 100644 index 0000000..2075ffc --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_create_entity_screen.dart @@ -0,0 +1,84 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:provider/provider.dart'; +import '../District_viewModel/District_view_model_screen.dart'; +import 'District_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import '../../../../widgets/custom_dropdown_field.dart'; +import 'dart:math'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:intl/intl.dart'; + +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:http/http.dart' as http; +import 'package:flutter/services.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart' +;import 'package:multi_select_flutter/multi_select_flutter.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:video_player/video_player.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:lottie/lottie.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import 'dart:io'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; + + + + + + + + +class DistrictCreateEntityScreen extends StatefulWidget { + const DistrictCreateEntityScreen({super.key}); + + @override + _DistrictCreateEntityScreenState createState() => _DistrictCreateEntityScreenState(); +} + +class _DistrictCreateEntityScreenState extends State { + +final Map formData = {}; + final _formKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityCreateScreen( + fields: DistrictFields.getFields(context), + onSubmit: (data) => _handleSubmit(data), + title: 'District', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.createEntity(formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_details_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_details_screen.dart new file mode 100644 index 0000000..7f777bc --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_details_screen.dart @@ -0,0 +1,92 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../../../BuilderField/shared/ui/entity_details.dart'; +import '../District_viewModel/District_view_model_screen.dart'; +import 'District_update_entity_screen.dart'; + +class DistrictDetailsScreen extends StatefulWidget { + final Map entity; + + const DistrictDetailsScreen({ + super.key, + required this.entity, + }); + + @override + State createState() => _DistrictDetailsScreenState(); +} + +class _DistrictDetailsScreenState extends State { + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => DistrictViewModelScreen(), + child: DistrictUpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + // Refresh the details screen with updated data + setState(() {}); + }); + } + + void _showDeleteDialog(Map entity) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this District?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(context, listen: false); + final success = await vm.deleteEntity(entity['id']); + if (success && mounted) { + Navigator.pop(context); // Go back to list + } + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityDetails( + entity: widget.entity, + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + title: 'District', + displayFields: [ + {'key': 'district_name', 'label': 'district name', 'type': 'text'}, + + {'key': 'description', 'label': 'Description', 'type': 'textarea'}, + + {'key': 'active', 'label': 'Active', 'type': 'toggle_switch'}, + + {'key': 'state_name', 'label': 'state name', 'type': 'text'}, + + ], + isLoading: viewModel.isLoading, + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_entity_list_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_entity_list_screen.dart new file mode 100644 index 0000000..bfce20d --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_entity_list_screen.dart @@ -0,0 +1,161 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_list.dart'; +import 'District_create_entity_screen.dart'; +import 'District_update_entity_screen.dart'; +import '../District_viewModel/District_view_model_screen.dart'; +import 'District_details_screen.dart';import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_to_text.dart' as stt; +import '../../../../theme/app_style.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../widgets/custom_icon_button.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../theme/app_decoration.dart'; +import 'package:multi_select_flutter/multi_select_flutter.dart'; +import '../../../../Reuseable/reusable_text_field.dart'; +import 'package:provider/provider.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/fields/realted_entity_insert_field.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class District_entity_list_screen extends StatefulWidget { + static const String routeName = '/entity-list'; + + @override + _District_entity_list_screenState createState() => _District_entity_list_screenState(); +} + +class _District_entity_list_screenState extends State { + @override + void initState() { + super.initState(); + _loadData(); + } + + void _loadData() { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + final vm = Provider.of(context, listen: false); + vm.getAllWithPagination(refresh: true); + } + }); + } + + void _navigateToCreateScreen() { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => DistrictViewModelScreen(), + child: const DistrictCreateEntityScreen(), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => DistrictViewModelScreen(), + child: DistrictUpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToDetailsScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => DistrictViewModelScreen(), + child: DistrictDetailsScreen(entity: entity), + ), + ), + ); + } + + void _showDeleteDialog(Map entity) { + final parentContext = context; + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this District?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(parentContext, listen: false); + await vm.deleteEntity(entity['id']); + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityList( + entities: viewModel.filteredList, + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + hasMoreData: viewModel.hasMoreData, + searchQuery: viewModel.searchQuery, + onSearchChanged: (query) => viewModel.searchdistrict(query), + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + onTap: (entity) => _navigateToDetailsScreen(entity), + onRefresh: () => viewModel.refreshData(), + onLoadMore: () => viewModel.getAllWithPagination(), + title: 'District', + onAddNew: _navigateToCreateScreen, + + + + + + + + + displayFields: [ + {'key': 'district_name', 'label': 'district name', 'type': 'text'}, + + {'key': 'description', 'label': 'Description', 'type': 'textarea'}, + + {'key': 'active', 'label': 'Active', 'type': 'toggle_switch'}, + + {'key': 'state_name', 'label': 'state name', 'type': 'text'}, + + ], + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_fields.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_fields.dart new file mode 100644 index 0000000..b30b6d7 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_fields.dart @@ -0,0 +1,84 @@ +import 'package:base_project/BuilderField/shared/fields/number_field.dart'; +import 'package:base_project/BuilderField/shared/fields/password_field.dart'; +import 'package:base_project/BuilderField/shared/fields/phone_field.dart'; +import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart'; + +import '../../../../BuilderField/shared/fields/base_field.dart'; + +import '../../../../BuilderField/shared/fields/date_field.dart'; +import '../../../../BuilderField/shared/fields/datetime_field.dart'; +import '../../../../BuilderField/shared/fields/email_field.dart'; +import 'package:base_project/BuilderField/shared/fields/url_field.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/calculated_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_many_field.dart'; +import '../../../../BuilderField/shared/fields/value_list_picker_field.dart'; +import '../../../../BuilderField/shared/fields/captcha_field.dart'; +import '../../../../BuilderField/shared/fields/switch_field.dart'; +import '../../../../BuilderField/shared/fields/url_field.dart'; + +import '../../../../BuilderField/shared/fields/audio_upload_field.dart'; +import '../../../../BuilderField/shared/fields/checkbox_field.dart'; +import '../../../../BuilderField/shared/fields/file_upload_field.dart'; +import '../../../../BuilderField/shared/fields/image_upload_field.dart'; +import '../../../../BuilderField/shared/fields/radio_field.dart'; +import '../../../../BuilderField/shared/fields/video_upload_field.dart'; + +import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/data_grid_field.dart'; +import '../../../../BuilderField/shared/fields/dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/static_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/currency_field.dart'; +import '../../../../BuilderField/shared/fields/field_group_field.dart'; +import '../../../../BuilderField/shared/fields/qr_code_field.dart'; +import '../../../../BuilderField/shared/fields/barcode_field.dart'; +import '../../../../BuilderField/shared/fields/dependent_dropdown_field.dart'; + import '../District_viewModel/District_view_model_screen.dart';/// Field definitions for District entity +/// This defines the structure and validation for District forms +class DistrictFields { + /// Get field definitions for District entity + static List getFields(BuildContext context) { + final viewModel = + Provider.of(context, listen: false); + return [ + // Basic Information + CustomTextField( + fieldKey: 'district_name', + label: 'district name', + hint: 'Enter district name', + isRequired: true, + maxLength: 50, + ), + +CustomTextField( + fieldKey: 'description', + label: 'Description', + hint: 'Enter Description', + isRequired: false, + maxLength: 1000, + ), + + SwitchField( + fieldKey: 'active', + label: 'Active', + ), + + CustomTextField( + fieldKey: 'state_name', + label: 'state name', + hint: 'Enter state name', + isRequired: true, + maxLength: 50, + ), + + ]; + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_update_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_update_entity_screen.dart new file mode 100644 index 0000000..9c18a9f --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/DistrictView/District_update_entity_screen.dart @@ -0,0 +1,79 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:provider/provider.dart'; +import '../District_viewModel/District_view_model_screen.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import 'District_fields.dart';import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import 'package:flutter/material.dart'; +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'dart:math'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; +import 'package:flutter/services.dart'; +class DistrictUpdateEntityScreen extends StatefulWidget { + final Map entity; + + + DistrictUpdateEntityScreen({required this.entity}); + + @override + _DistrictUpdateEntityScreenState createState() => _DistrictUpdateEntityScreenState(); +} + +class _DistrictUpdateEntityScreenState extends State { + final _formKey = GlobalKey(); + +@override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { +// Start with all fields, then remove upload fields (generic filter by keys) + final Set hiddenKeys = { + + + + + + + + + }; + final fields = DistrictFields.getFields(context) + .where((f) => !hiddenKeys.contains(f.fieldKey)) + .toList(); return EntityUpdateScreen( + fields: fields, + initialData: widget.entity, + onSubmit: (data) => _handleSubmit(data), + title: 'District', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.updateEntity(widget.entity['id'], formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/District_Repo/District_repo_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/District_Repo/District_repo_screen.dart new file mode 100644 index 0000000..82bc64b --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/District_Repo/District_repo_screen.dart @@ -0,0 +1,97 @@ +import 'package:dio/dio.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; +import '../../../../resources/api_constants.dart'; +import 'package:base_project/data/response/api_response.dart'; + +class DistrictRepoScreen { + + final String baseUrl = ApiConstants.baseUrl; + final BaseNetworkService _helper = NetworkApiService(); + final String _endpointPath = '/District/District'; + + Future>>> getEntities() async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl$_endpointPath'); + print('Response received: $response'); + List> entities = const []; + if (response is List) { + entities = response + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } else if (response is Map) { + final dynamic content = response['content']; + if (content is List) { + entities = content + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } + } + return ApiResponse.success(entities); + } catch (e) { + print(' error got $e'); + return ApiResponse.error('Failed to get all entities: $e'); + } + } + + Future>>> getAllWithPagination( + int page, int size) async { + try { + final response = await _helper.getGetApiResponse( + '$baseUrl$_endpointPath/getall/page?page=$page&size=$size'); + + if (response is Map && response['content'] is List) { + final List> entities = + (response['content'] as List).cast>().toList(); + return ApiResponse.success(entities); + } else { + return ApiResponse.error('Invalid response format'); + } + } catch (e) { + return ApiResponse.error('Failed to get all without pagination: $e'); + } + } + + Future>> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to create entity: $e'); + } + } + + Future>> updateEntity( + int entityId, Map entity) async { + try { + final response = await _helper.getPutApiResponse( + '$baseUrl$_endpointPath/$entityId', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to update entity: $e'); + } + } + + Future> deleteEntity(int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId'); + return ApiResponse.success(null); + } catch (e) { + return ApiResponse.error('Failed to delete entity: $e'); + } + } + + + + + + + + +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/District_viewModel/District_view_model_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/District_viewModel/District_view_model_screen.dart new file mode 100644 index 0000000..5fcd48b --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/District/District_viewModel/District_view_model_screen.dart @@ -0,0 +1,321 @@ +import 'package:base_project/data/response/status.dart'; +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/utils/entity_field_store.dart'; +import 'package:flutter/material.dart'; +import '../District_Repo/District_repo_screen.dart'; + +class DistrictViewModelScreen extends ChangeNotifier{ + final DistrictRepoScreen repo = DistrictRepoScreen(); + + + // State variables + List> _districtList = []; + List> _filteredList = []; + bool _isLoading = false; + String _errorMessage = ''; + int _currentPage = 0; + int _pageSize = 10; + bool _hasMoreData = true; + String _searchQuery = ''; + + // Getters + List> get districtList => _districtList; + List> get filteredList => _filteredList; + bool get isLoading => _isLoading; + String get errorMessage => _errorMessage; + bool get hasMoreData => _hasMoreData; + String get searchQuery => _searchQuery; + + // Set loading state + void _setLoading(bool loading) { + _isLoading = loading; + notifyListeners(); + } + + // Set error message + void _setError(String error) { + _errorMessage = error; + notifyListeners(); + } + + // Clear error + void clearError() { + _errorMessage = ''; + notifyListeners(); + } + + // Get district list + Future getEntities() async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.getEntities(); + + if (response.status == Status.SUCCESS) { + _districtList = response.data ?? []; + _filteredList = List.from(_districtList); + _currentPage = 0; + _hasMoreData = true; + } else { + _setError(response.message ?? 'Failed to fetch district list'); + } + } catch (e) { + _setError('Failed to fetch district list: $e'); + } finally { + _setLoading(false); + } + } + + // Get district list with pagination + Future getAllWithPagination({bool refresh = false}) async { + if (refresh) { + _currentPage = 0; + _districtList.clear(); + _filteredList.clear(); + _hasMoreData = true; + } + + if (!_hasMoreData || _isLoading) return; + + _setLoading(true); + _setError(''); + + try { + final response = await repo.getAllWithPagination(_currentPage, _pageSize); + + if (response.status == Status.SUCCESS) { + final newItems = response.data ?? []; + + if (refresh) { + _districtList = newItems; + } else { + _districtList.addAll(newItems); + } + + _filteredList = List.from(_districtList); + _currentPage++; + + // Check if we have more data + _hasMoreData = newItems.length == _pageSize; + } else { + _setError(response.message ?? 'Failed to fetch District list'); + } + } catch (e) { + _setError('Failed to fetch district list: $e'); + } finally { + _setLoading(false); + } + } + + + + + + + + + + // Create District + Future createEntity(Map entity) async { + _setLoading(true); + _setError(''); + + try { + + + + + + + + + final response = await repo.createEntity(entity); + + if (response.status == Status.SUCCESS) { +// Get the response ID for image upload + + final responseId = response.data!['id'].toString(); + + + + + + + + + ToastMessageUtil.showToast( + message: 'district created successfully', + toastType: ToastType.success, + ); + + // Refresh the list + await getEntities(); + + + + + + + + + return true; + } else { + _setError(response.message ?? 'Failed to create District'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to create District', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to create district: $e'); + ToastMessageUtil.showToast( + message: 'Failed to create District: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Update district + Future updateEntity(int id, Map entity) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.updateEntity(id, entity); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'District updated successfully', + toastType: ToastType.success, + ); + + // Update the item in the list + final index = _districtList.indexWhere((item) => item['id'] == id); + if (index != -1) { + _districtList[index] = response.data!; + _filteredList = List.from(_districtList); + notifyListeners(); + } + return true; + } else { + _setError(response.message ?? 'Failed to update District'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to update District', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to update district: $e'); + ToastMessageUtil.showToast( + message: 'Failed to update District: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Delete district + Future deleteEntity(int id) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.deleteEntity(id); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'District deleted successfully', + toastType: ToastType.success, + ); + + // Remove the item from the list + _districtList.removeWhere((item) => item['id'] == id); + _filteredList = List.from(_districtList); + notifyListeners(); + return true; + } else { + _setError(response.message ?? 'Failed to delete District'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to delete District', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to delete district: $e'); + ToastMessageUtil.showToast( + message: 'Failed to delete District: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Search district + void searchdistrict(String query) { + _searchQuery = query; + + if (query.isEmpty) { + _filteredList = List.from(_districtList); + } else { + _filteredList = _districtList.where((item) { + return + + +(item['district_name']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['description']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + +(item['active']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['state_name']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) + + +; + }).toList(); + } + notifyListeners(); + } + + // Clear search + void clearSearch() { + _searchQuery = ''; + _filteredList = List.from(_districtList); + notifyListeners(); + } + + // Refresh data + Future refreshData() async { + await getAllWithPagination(refresh: true); + } + + + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_api_service.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_api_service.dart new file mode 100644 index 0000000..5240a64 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_api_service.dart @@ -0,0 +1,88 @@ +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../resources/api_constants.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; + +class StateApiService { + final String baseUrl = ApiConstants.baseUrl; + + final BaseNetworkService _helper = NetworkApiService(); + + + + Future>> getEntities() async { + + try { + final response = await _helper.getGetApiResponse('$baseUrl/State/State'); + final entities = (response as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all entities: $e'); + } + } +Future>> getAllWithPagination( + int page, int size) async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl/State/State/getall/page?page=$page&size=$size'); + final entities = + (response['content'] as List).cast>(); + return entities; + } catch (e) { + throw Exception('Failed to get all without pagination: $e'); + } + } + Future> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl/State/State', entity); + + print(entity); + + // Assuming the response is a Map + Map responseData = response; + + return responseData; + } catch (e) { + throw Exception('Failed to create entity: $e'); + } + } + + + + + + + + + + Future updateEntity( int entityId, Map entity) async { + try { + await _helper.getPutApiResponse('$baseUrl/State/State/$entityId', + entity); print(entity); + + } catch (e) { + throw Exception('Failed to update entity: $e'); + } + } + + Future deleteEntity( int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl/State/State/$entityId'); + } catch (e) { + throw Exception('Failed to delete entity: $e'); + } + } + + + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_create_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_create_entity_screen.dart new file mode 100644 index 0000000..8ced668 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_create_entity_screen.dart @@ -0,0 +1,84 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:provider/provider.dart'; +import '../State_viewModel/State_view_model_screen.dart'; +import 'State_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import '../../../../widgets/custom_dropdown_field.dart'; +import 'dart:math'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:intl/intl.dart'; + +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:http/http.dart' as http; +import 'package:flutter/services.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart' +;import 'package:multi_select_flutter/multi_select_flutter.dart'; +import 'package:just_audio/just_audio.dart'; +import 'package:video_player/video_player.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:lottie/lottie.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import 'dart:io'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; + + + + + + + + +class StateCreateEntityScreen extends StatefulWidget { + const StateCreateEntityScreen({super.key}); + + @override + _StateCreateEntityScreenState createState() => _StateCreateEntityScreenState(); +} + +class _StateCreateEntityScreenState extends State { + +final Map formData = {}; + final _formKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityCreateScreen( + fields: StateFields.getFields(context), + onSubmit: (data) => _handleSubmit(data), + title: 'State', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.createEntity(formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_details_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_details_screen.dart new file mode 100644 index 0000000..510be79 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_details_screen.dart @@ -0,0 +1,92 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import '../../../../BuilderField/shared/ui/entity_details.dart'; +import '../State_viewModel/State_view_model_screen.dart'; +import 'State_update_entity_screen.dart'; + +class StateDetailsScreen extends StatefulWidget { + final Map entity; + + const StateDetailsScreen({ + super.key, + required this.entity, + }); + + @override + State createState() => _StateDetailsScreenState(); +} + +class _StateDetailsScreenState extends State { + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => StateViewModelScreen(), + child: StateUpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + // Refresh the details screen with updated data + setState(() {}); + }); + } + + void _showDeleteDialog(Map entity) { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this State?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(context, listen: false); + final success = await vm.deleteEntity(entity['id']); + if (success && mounted) { + Navigator.pop(context); // Go back to list + } + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityDetails( + entity: widget.entity, + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + title: 'State', + displayFields: [ + {'key': 'state_name', 'label': 'state name', 'type': 'text'}, + + {'key': 'description', 'label': 'Description', 'type': 'textarea'}, + + {'key': 'active', 'label': 'Active', 'type': 'toggle_switch'}, + + {'key': 'country_name', 'label': 'country name', 'type': 'text'}, + + ], + isLoading: viewModel.isLoading, + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_entity_list_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_entity_list_screen.dart new file mode 100644 index 0000000..5dc972e --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_entity_list_screen.dart @@ -0,0 +1,161 @@ +// ignore_for_file: use_build_context_synchronously +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_list.dart'; +import 'State_create_entity_screen.dart'; +import 'State_update_entity_screen.dart'; +import '../State_viewModel/State_view_model_screen.dart'; +import 'State_details_screen.dart';import 'package:flutter/services.dart'; +import 'package:speech_to_text/speech_to_text.dart' as stt; +import '../../../../theme/app_style.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../widgets/custom_icon_button.dart'; +import '../../../../utils/image_constant.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import '../../../../theme/app_decoration.dart'; +import 'package:multi_select_flutter/multi_select_flutter.dart'; +import '../../../../Reuseable/reusable_text_field.dart'; +import 'package:provider/provider.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/fields/realted_entity_insert_field.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class State_entity_list_screen extends StatefulWidget { + static const String routeName = '/entity-list'; + + @override + _State_entity_list_screenState createState() => _State_entity_list_screenState(); +} + +class _State_entity_list_screenState extends State { + @override + void initState() { + super.initState(); + _loadData(); + } + + void _loadData() { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + final vm = Provider.of(context, listen: false); + vm.getAllWithPagination(refresh: true); + } + }); + } + + void _navigateToCreateScreen() { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => StateViewModelScreen(), + child: const StateCreateEntityScreen(), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToUpdateScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => StateViewModelScreen(), + child: StateUpdateEntityScreen(entity: entity), + ), + ), + ).then((_) { + final vm = Provider.of(context, listen: false); + vm.refreshData(); + }); + } + + void _navigateToDetailsScreen(Map entity) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => StateViewModelScreen(), + child: StateDetailsScreen(entity: entity), + ), + ), + ); + } + + void _showDeleteDialog(Map entity) { + final parentContext = context; + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Confirm Deletion'), + content: const Text('Are you sure you want to delete this State?'), + actions: [ + TextButton( + child: const Text('Cancel'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + TextButton( + child: const Text('Delete'), + onPressed: () async { + Navigator.of(context).pop(); + final vm = + Provider.of(parentContext, listen: false); + await vm.deleteEntity(entity['id']); + }, + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { + return EntityList( + entities: viewModel.filteredList, + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + hasMoreData: viewModel.hasMoreData, + searchQuery: viewModel.searchQuery, + onSearchChanged: (query) => viewModel.searchstate(query), + onEdit: (entity) => _navigateToUpdateScreen(entity), + onDelete: (entity) => _showDeleteDialog(entity), + onTap: (entity) => _navigateToDetailsScreen(entity), + onRefresh: () => viewModel.refreshData(), + onLoadMore: () => viewModel.getAllWithPagination(), + title: 'State', + onAddNew: _navigateToCreateScreen, + + + + + + + + + displayFields: [ + {'key': 'state_name', 'label': 'state name', 'type': 'text'}, + + {'key': 'description', 'label': 'Description', 'type': 'textarea'}, + + {'key': 'active', 'label': 'Active', 'type': 'toggle_switch'}, + + {'key': 'country_name', 'label': 'country name', 'type': 'text'}, + + ], + ); + }, + ); + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_fields.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_fields.dart new file mode 100644 index 0000000..ee23353 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_fields.dart @@ -0,0 +1,84 @@ +import 'package:base_project/BuilderField/shared/fields/number_field.dart'; +import 'package:base_project/BuilderField/shared/fields/password_field.dart'; +import 'package:base_project/BuilderField/shared/fields/phone_field.dart'; +import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart'; + +import '../../../../BuilderField/shared/fields/base_field.dart'; + +import '../../../../BuilderField/shared/fields/date_field.dart'; +import '../../../../BuilderField/shared/fields/datetime_field.dart'; +import '../../../../BuilderField/shared/fields/email_field.dart'; +import 'package:base_project/BuilderField/shared/fields/url_field.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/calculated_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_many_field.dart'; +import '../../../../BuilderField/shared/fields/value_list_picker_field.dart'; +import '../../../../BuilderField/shared/fields/captcha_field.dart'; +import '../../../../BuilderField/shared/fields/switch_field.dart'; +import '../../../../BuilderField/shared/fields/url_field.dart'; + +import '../../../../BuilderField/shared/fields/audio_upload_field.dart'; +import '../../../../BuilderField/shared/fields/checkbox_field.dart'; +import '../../../../BuilderField/shared/fields/file_upload_field.dart'; +import '../../../../BuilderField/shared/fields/image_upload_field.dart'; +import '../../../../BuilderField/shared/fields/radio_field.dart'; +import '../../../../BuilderField/shared/fields/video_upload_field.dart'; + +import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart'; +import '../../../../BuilderField/shared/fields/data_grid_field.dart'; +import '../../../../BuilderField/shared/fields/dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart'; +import '../../../../BuilderField/shared/fields/static_multiselect_field.dart'; +import '../../../../BuilderField/shared/fields/currency_field.dart'; +import '../../../../BuilderField/shared/fields/field_group_field.dart'; +import '../../../../BuilderField/shared/fields/qr_code_field.dart'; +import '../../../../BuilderField/shared/fields/barcode_field.dart'; +import '../../../../BuilderField/shared/fields/dependent_dropdown_field.dart'; + import '../State_viewModel/State_view_model_screen.dart';/// Field definitions for State entity +/// This defines the structure and validation for State forms +class StateFields { + /// Get field definitions for State entity + static List getFields(BuildContext context) { + final viewModel = + Provider.of(context, listen: false); + return [ + // Basic Information + CustomTextField( + fieldKey: 'state_name', + label: 'state name', + hint: 'Enter state name', + isRequired: true, + maxLength: 50, + ), + +CustomTextField( + fieldKey: 'description', + label: 'Description', + hint: 'Enter Description', + isRequired: false, + maxLength: 1000, + ), + + SwitchField( + fieldKey: 'active', + label: 'Active', + ), + + CustomTextField( + fieldKey: 'country_name', + label: 'country name', + hint: 'Enter country name', + isRequired: true, + maxLength: 50, + ), + + ]; + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_update_entity_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_update_entity_screen.dart new file mode 100644 index 0000000..e2efad2 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/StateView/State_update_entity_screen.dart @@ -0,0 +1,79 @@ +// ignore_for_file: use_build_context_synchronously +import 'dart:convert'; +import 'package:provider/provider.dart'; +import '../State_viewModel/State_view_model_screen.dart'; +import 'package:base_project/BuilderField/shared/ui/entity_screens.dart'; +import 'State_fields.dart';import '../../../../utils/image_constant.dart'; +import '../../../../utils/size_utils.dart'; +import '../../../../theme/app_style.dart'; +import '../../../../widgets/app_bar/appbar_image.dart'; +import '../../../../widgets/app_bar/appbar_title.dart'; +import '../../../../widgets/app_bar/custom_app_bar.dart'; +import 'package:barcode_widget/barcode_widget.dart'; +import 'package:fluttertoast/fluttertoast.dart'; +import '../../../../widgets/custom_button.dart'; +import '../../../../widgets/custom_text_form_field.dart'; +import 'package:flutter/material.dart'; +import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:qr_flutter/qr_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'dart:math'; +import '../../../../Reuseable/reusable_text_field.dart'; +import '../../../../Reuseable/reusable_date_picker_field.dart'; +import '../../../../Reuseable/reusable_date_time_picker_field.dart'; +import '../../../../Reuseable/reusable_dropdown_field.dart'; +import 'package:flutter/services.dart'; +class StateUpdateEntityScreen extends StatefulWidget { + final Map entity; + + + StateUpdateEntityScreen({required this.entity}); + + @override + _StateUpdateEntityScreenState createState() => _StateUpdateEntityScreenState(); +} + +class _StateUpdateEntityScreenState extends State { + final _formKey = GlobalKey(); + +@override + Widget build(BuildContext context) { + return Consumer( + builder: (context, viewModel, child) { +// Start with all fields, then remove upload fields (generic filter by keys) + final Set hiddenKeys = { + + + + + + + + + }; + final fields = StateFields.getFields(context) + .where((f) => !hiddenKeys.contains(f.fieldKey)) + .toList(); return EntityUpdateScreen( + fields: fields, + initialData: widget.entity, + onSubmit: (data) => _handleSubmit(data), + title: 'State', + isLoading: viewModel.isLoading, + errorMessage: + viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null, + ); + }, + ); + } + + Future _handleSubmit(Map formData) async { + final provider = + Provider.of(context, listen: false); + final success = await provider.updateEntity(widget.entity['id'], formData); + + if (success && mounted) { + Navigator.pop(context); + } + } +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/State_Repo/State_repo_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/State_Repo/State_repo_screen.dart new file mode 100644 index 0000000..05c802f --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/State_Repo/State_repo_screen.dart @@ -0,0 +1,97 @@ +import 'package:dio/dio.dart'; +import '../../../../data/network/base_network_service.dart'; +import '../../../../data/network/network_api_service.dart'; +import '../../../../resources/api_constants.dart'; +import 'package:base_project/data/response/api_response.dart'; + +class StateRepoScreen { + + final String baseUrl = ApiConstants.baseUrl; + final BaseNetworkService _helper = NetworkApiService(); + final String _endpointPath = '/State/State'; + + Future>>> getEntities() async { + try { + final response = + await _helper.getGetApiResponse('$baseUrl$_endpointPath'); + print('Response received: $response'); + List> entities = const []; + if (response is List) { + entities = response + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } else if (response is Map) { + final dynamic content = response['content']; + if (content is List) { + entities = content + .whereType() + .map((e) => Map.from(e as Map)) + .toList(); + } + } + return ApiResponse.success(entities); + } catch (e) { + print(' error got $e'); + return ApiResponse.error('Failed to get all entities: $e'); + } + } + + Future>>> getAllWithPagination( + int page, int size) async { + try { + final response = await _helper.getGetApiResponse( + '$baseUrl$_endpointPath/getall/page?page=$page&size=$size'); + + if (response is Map && response['content'] is List) { + final List> entities = + (response['content'] as List).cast>().toList(); + return ApiResponse.success(entities); + } else { + return ApiResponse.error('Invalid response format'); + } + } catch (e) { + return ApiResponse.error('Failed to get all without pagination: $e'); + } + } + + Future>> createEntity( + Map entity) async { + try { + print("in post api$entity"); + final response = + await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to create entity: $e'); + } + } + + Future>> updateEntity( + int entityId, Map entity) async { + try { + final response = await _helper.getPutApiResponse( + '$baseUrl$_endpointPath/$entityId', entity); + return ApiResponse.success(response as Map); + } catch (e) { + return ApiResponse.error('Failed to update entity: $e'); + } + } + + Future> deleteEntity(int entityId) async { + try { + await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId'); + return ApiResponse.success(null); + } catch (e) { + return ApiResponse.error('Failed to delete entity: $e'); + } + } + + + + + + + + +} diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/State_viewModel/State_view_model_screen.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/State_viewModel/State_view_model_screen.dart new file mode 100644 index 0000000..fe19292 --- /dev/null +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/Entity/testdata/State/State_viewModel/State_view_model_screen.dart @@ -0,0 +1,321 @@ +import 'package:base_project/data/response/status.dart'; +import 'dart:typed_data'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import '../../../../utils/toast_messages/toast_message_util.dart'; +import '../../../../BuilderField/shared/utils/entity_field_store.dart'; +import 'package:flutter/material.dart'; +import '../State_Repo/State_repo_screen.dart'; + +class StateViewModelScreen extends ChangeNotifier{ + final StateRepoScreen repo = StateRepoScreen(); + + + // State variables + List> _stateList = []; + List> _filteredList = []; + bool _isLoading = false; + String _errorMessage = ''; + int _currentPage = 0; + int _pageSize = 10; + bool _hasMoreData = true; + String _searchQuery = ''; + + // Getters + List> get stateList => _stateList; + List> get filteredList => _filteredList; + bool get isLoading => _isLoading; + String get errorMessage => _errorMessage; + bool get hasMoreData => _hasMoreData; + String get searchQuery => _searchQuery; + + // Set loading state + void _setLoading(bool loading) { + _isLoading = loading; + notifyListeners(); + } + + // Set error message + void _setError(String error) { + _errorMessage = error; + notifyListeners(); + } + + // Clear error + void clearError() { + _errorMessage = ''; + notifyListeners(); + } + + // Get state list + Future getEntities() async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.getEntities(); + + if (response.status == Status.SUCCESS) { + _stateList = response.data ?? []; + _filteredList = List.from(_stateList); + _currentPage = 0; + _hasMoreData = true; + } else { + _setError(response.message ?? 'Failed to fetch state list'); + } + } catch (e) { + _setError('Failed to fetch state list: $e'); + } finally { + _setLoading(false); + } + } + + // Get state list with pagination + Future getAllWithPagination({bool refresh = false}) async { + if (refresh) { + _currentPage = 0; + _stateList.clear(); + _filteredList.clear(); + _hasMoreData = true; + } + + if (!_hasMoreData || _isLoading) return; + + _setLoading(true); + _setError(''); + + try { + final response = await repo.getAllWithPagination(_currentPage, _pageSize); + + if (response.status == Status.SUCCESS) { + final newItems = response.data ?? []; + + if (refresh) { + _stateList = newItems; + } else { + _stateList.addAll(newItems); + } + + _filteredList = List.from(_stateList); + _currentPage++; + + // Check if we have more data + _hasMoreData = newItems.length == _pageSize; + } else { + _setError(response.message ?? 'Failed to fetch State list'); + } + } catch (e) { + _setError('Failed to fetch state list: $e'); + } finally { + _setLoading(false); + } + } + + + + + + + + + + // Create State + Future createEntity(Map entity) async { + _setLoading(true); + _setError(''); + + try { + + + + + + + + + final response = await repo.createEntity(entity); + + if (response.status == Status.SUCCESS) { +// Get the response ID for image upload + + final responseId = response.data!['id'].toString(); + + + + + + + + + ToastMessageUtil.showToast( + message: 'state created successfully', + toastType: ToastType.success, + ); + + // Refresh the list + await getEntities(); + + + + + + + + + return true; + } else { + _setError(response.message ?? 'Failed to create State'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to create State', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to create state: $e'); + ToastMessageUtil.showToast( + message: 'Failed to create State: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Update state + Future updateEntity(int id, Map entity) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.updateEntity(id, entity); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'State updated successfully', + toastType: ToastType.success, + ); + + // Update the item in the list + final index = _stateList.indexWhere((item) => item['id'] == id); + if (index != -1) { + _stateList[index] = response.data!; + _filteredList = List.from(_stateList); + notifyListeners(); + } + return true; + } else { + _setError(response.message ?? 'Failed to update State'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to update State', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to update state: $e'); + ToastMessageUtil.showToast( + message: 'Failed to update State: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Delete state + Future deleteEntity(int id) async { + _setLoading(true); + _setError(''); + + try { + final response = await repo.deleteEntity(id); + + if (response.status == Status.SUCCESS) { + ToastMessageUtil.showToast( + message: 'State deleted successfully', + toastType: ToastType.success, + ); + + // Remove the item from the list + _stateList.removeWhere((item) => item['id'] == id); + _filteredList = List.from(_stateList); + notifyListeners(); + return true; + } else { + _setError(response.message ?? 'Failed to delete State'); + ToastMessageUtil.showToast( + message: response.message ?? 'Failed to delete State', + toastType: ToastType.error, + ); + return false; + } + } catch (e) { + _setError('Failed to delete state: $e'); + ToastMessageUtil.showToast( + message: 'Failed to delete State: $e', + toastType: ToastType.error, + ); + return false; + } finally { + _setLoading(false); + } + } + + // Search state + void searchstate(String query) { + _searchQuery = query; + + if (query.isEmpty) { + _filteredList = List.from(_stateList); + } else { + _filteredList = _stateList.where((item) { + return + + +(item['state_name']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['description']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + +(item['active']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) || + + + + + +(item['country_name']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) + + +; + }).toList(); + } + notifyListeners(); + } + + // Clear search + void clearSearch() { + _searchQuery = ''; + _filteredList = List.from(_stateList); + notifyListeners(); + } + + // Refresh data + Future refreshData() async { + await getAllWithPagination(refresh: true); + } + + + + + + + + +} \ No newline at end of file diff --git a/test10april-demot1-f/authsec_flutter_new/base_project/lib/view/dashboard/home.dart b/test10april-demot1-f/authsec_flutter_new/base_project/lib/view/dashboard/home.dart index f640e18..2387db9 100644 --- a/test10april-demot1-f/authsec_flutter_new/base_project/lib/view/dashboard/home.dart +++ b/test10april-demot1-f/authsec_flutter_new/base_project/lib/view/dashboard/home.dart @@ -1,3 +1,54 @@ +import '../../Entity/stpkg/Childform/ChildformView/Childform_entity_list_screen.dart'; +import '../../Entity/stpkg/Childform/Childform_viewModel/Childform_view_model_screen.dart'; + +import '../../Entity/testdata/District/DistrictView/District_entity_list_screen.dart'; +import '../../Entity/testdata/District/District_viewModel/District_view_model_screen.dart'; + +import '../../Entity/testdata/State/StateView/State_entity_list_screen.dart'; +import '../../Entity/testdata/State/State_viewModel/State_view_model_screen.dart'; + +import '../../Entity/testdata/Country/CountryView/Country_entity_list_screen.dart'; +import '../../Entity/testdata/Country/Country_viewModel/Country_view_model_screen.dart'; + +import '../../Entity/angulardatatype/Ad9/Ad9View/Ad9_entity_list_screen.dart'; +import '../../Entity/angulardatatype/Ad9/Ad9_viewModel/Ad9_view_model_screen.dart'; + +import '../../Entity/angulardatatype/Ad8/Ad8View/Ad8_entity_list_screen.dart'; +import '../../Entity/angulardatatype/Ad8/Ad8_viewModel/Ad8_view_model_screen.dart'; + +import '../../Entity/angulardatatype/Ad7/Ad7View/Ad7_entity_list_screen.dart'; +import '../../Entity/angulardatatype/Ad7/Ad7_viewModel/Ad7_view_model_screen.dart'; + +import '../../Entity/angulardatatype/Ad6/Ad6View/Ad6_entity_list_screen.dart'; +import '../../Entity/angulardatatype/Ad6/Ad6_viewModel/Ad6_view_model_screen.dart'; + +import '../../Entity/angulardatatype/Adv5/Adv5View/Adv5_entity_list_screen.dart'; +import '../../Entity/angulardatatype/Adv5/Adv5_viewModel/Adv5_view_model_screen.dart'; + +import '../../Entity/angulardatatype/Adv4/Adv4View/Adv4_entity_list_screen.dart'; +import '../../Entity/angulardatatype/Adv4/Adv4_viewModel/Adv4_view_model_screen.dart'; + +import '../../Entity/angulardatatype/Support/SupportView/Support_entity_list_screen.dart'; +import '../../Entity/angulardatatype/Support/Support_viewModel/Support_view_model_screen.dart'; + +import '../../Entity/angulardatatype/Adv3/Adv3View/Adv3_entity_list_screen.dart'; +import '../../Entity/angulardatatype/Adv3/Adv3_viewModel/Adv3_view_model_screen.dart'; + +import '../../Entity/angulardatatype/Dv2/Dv2View/Dv2_entity_list_screen.dart'; +import '../../Entity/angulardatatype/Dv2/Dv2_viewModel/Dv2_view_model_screen.dart'; + +import '../../Entity/angulardatatype/Adv1/Adv1View/Adv1_entity_list_screen.dart'; +import '../../Entity/angulardatatype/Adv1/Adv1_viewModel/Adv1_view_model_screen.dart'; + +import '../../Entity/angulardatatype/Basicp3/Basicp3View/Basicp3_entity_list_screen.dart'; +import '../../Entity/angulardatatype/Basicp3/Basicp3_viewModel/Basicp3_view_model_screen.dart'; + +import '../../Entity/angulardatatype/Basicp2/Basicp2View/Basicp2_entity_list_screen.dart'; +import '../../Entity/angulardatatype/Basicp2/Basicp2_viewModel/Basicp2_view_model_screen.dart'; + +import '../../Entity/angulardatatype/Basicp1/Basicp1View/Basicp1_entity_list_screen.dart'; +import '../../Entity/angulardatatype/Basicp1/Basicp1_viewModel/Basicp1_view_model_screen.dart'; + import 'package:base_project/core/constants/ui_constants.dart'; import 'package:base_project/core/theme/color_scheme.dart'; import 'package:base_project/routes/route_names.dart'; @@ -11,595 +62,884 @@ import 'package:base_project/view_model/system_params/system_params_view_model.d import 'package:flutter/material.dart'; class HomeView extends StatefulWidget { - const HomeView({super.key}); +const HomeView({super.key}); - @override - State createState() => _HomeViewState(); +@override +State createState() => _HomeViewState(); } class _HomeViewState extends State with TickerProviderStateMixin { - // Animation Controllers - late AnimationController _pageAnimationController; - late AnimationController _cardsAnimationController; - late AnimationController _actionsAnimationController; +// Animation Controllers +late AnimationController _pageAnimationController; +late AnimationController _cardsAnimationController; +late AnimationController _actionsAnimationController; - // Animations - late Animation _pageFadeAnimation; - late Animation _pageSlideAnimation; - late Animation _cardsScaleAnimation; - late Animation _actionsScaleAnimation; +// Animations +late Animation _pageFadeAnimation; +late Animation _pageSlideAnimation; +late Animation _cardsScaleAnimation; +late Animation _actionsScaleAnimation; - // Dashboard stats (replace with real API data) - List> _dashboardStats = []; +// Dashboard stats (replace with real API data) +List> _dashboardStats = []; - final List> _quickActions = [ - { - 'label': 'Profile', - 'icon': Icons.person, - 'onTap': () {}, - 'backgroundColor': null, // Use theme default - }, - { - 'label': 'Settings', - 'icon': Icons.settings, - 'onTap': () {}, - 'backgroundColor': null, - }, - { - 'label': 'Security', - 'icon': Icons.security, - 'onTap': () {}, - 'backgroundColor': null, - }, - { - 'label': 'Reports', - 'icon': Icons.analytics, - 'onTap': () {}, - 'backgroundColor': null, - }, - ]; +final List> _quickActions = [ +{ +'label': 'Profile', +'icon': Icons.person, +'onTap': () {}, +'backgroundColor': null, // Use theme default +}, +{ +'label': 'Settings', +'icon': Icons.settings, +'onTap': () {}, +'backgroundColor': null, +}, +{ +'label': 'Security', +'icon': Icons.security, +'onTap': () {}, +'backgroundColor': null, +}, +{ +'label': 'Reports', +'icon': Icons.analytics, +'onTap': () {}, +'backgroundColor': null, +}, +]; - final List _drawerItems = [ - DrawerItem( - icon: Icons.person, - title: 'Profile', - subtitle: 'Manage your account', - onTap: (context) { - Navigator.pushNamed(context, RouteNames.profileView); - }, - ), - DrawerItem( - icon: Icons.system_security_update, - title: 'System Parameters', - subtitle: 'Configure system settings', - onTap: (context) { - Navigator.pushNamed(context, RouteNames.systemParamsView); - }, - ), - DrawerItem( - icon: Icons.password, - title: 'Change Password', - subtitle: 'Update your password', - onTap: (context) { - Navigator.pushNamed(context, RouteNames.changePasswordView); - }, +final List _drawerItems = [ +DrawerItem( +icon: Icons.person, +title: 'Profile', +subtitle: 'Manage your account', +onTap: (context) { +Navigator.pushNamed(context, RouteNames.profileView); +}, +), +DrawerItem( +icon: Icons.system_security_update, +title: 'System Parameters', +subtitle: 'Configure system settings', +onTap: (context) { +Navigator.pushNamed(context, RouteNames.systemParamsView); +}, +), +DrawerItem( +icon: Icons.password, +title: 'Change Password', +subtitle: 'Update your password', +onTap: (context) { +Navigator.pushNamed(context, RouteNames.changePasswordView); +}, +), + +// NEW ITEMS + +// NEW MENU + DrawerItem( + icon: Icons.data_object, + title: 'Childform Management', + subtitle: 'Manage Childform entities', + onTap: (context) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChangeNotifierProvider( + create: (context) => ChildformViewModelScreen(), + child: Childform_entity_list_screen(), + ), + ), + ); + }, ), - // NEW ITEMS +DrawerItem( +icon: Icons.data_object, +title: 'District Management', +subtitle: 'Manage District entities', +onTap: (context) { +Navigator.push( +context, +MaterialPageRoute( +builder: (context) => ChangeNotifierProvider( +create: (context) => DistrictViewModelScreen(), +child: District_entity_list_screen(), +), +), +); +}, +), - // NEW MENU - ]; +DrawerItem( +icon: Icons.data_object, +title: 'State Management', +subtitle: 'Manage State entities', +onTap: (context) { +Navigator.push( +context, +MaterialPageRoute( +builder: (context) => ChangeNotifierProvider( +create: (context) => StateViewModelScreen(), +child: State_entity_list_screen(), +), +), +); +}, +), - @override - void initState() { - super.initState(); - _initializeAnimations(); - _startPageAnimation(); - _loadDashboardData(); - } +DrawerItem( +icon: Icons.data_object, +title: 'Country Management', +subtitle: 'Manage Country entities', +onTap: (context) { +Navigator.push( +context, +MaterialPageRoute( +builder: (context) => ChangeNotifierProvider( +create: (context) => CountryViewModelScreen(), +child: Country_entity_list_screen(), +), +), +); +}, +), - void _initializeAnimations() { - // Page Animation Controller - _pageAnimationController = AnimationController( - duration: UIConstants.durationSlow, - vsync: this, - ); +DrawerItem( +icon: Icons.data_object, +title: 'Ad9 Management', +subtitle: 'Manage Ad9 entities', +onTap: (context) { +Navigator.push( +context, +MaterialPageRoute( +builder: (context) => ChangeNotifierProvider( +create: (context) => Ad9ViewModelScreen(), +child: Ad9_entity_list_screen(), +), +), +); +}, +), - // Cards Animation Controller - _cardsAnimationController = AnimationController( - duration: UIConstants.durationNormal, - vsync: this, - ); +DrawerItem( +icon: Icons.data_object, +title: 'Ad8 Management', +subtitle: 'Manage Ad8 entities', +onTap: (context) { +Navigator.push( +context, +MaterialPageRoute( +builder: (context) => ChangeNotifierProvider( +create: (context) => Ad8ViewModelScreen(), +child: Ad8_entity_list_screen(), +), +), +); +}, +), - // Actions Animation Controller - _actionsAnimationController = AnimationController( - duration: UIConstants.durationNormal, - vsync: this, - ); +DrawerItem( +icon: Icons.data_object, +title: 'Ad7 Management', +subtitle: 'Manage Ad7 entities', +onTap: (context) { +Navigator.push( +context, +MaterialPageRoute( +builder: (context) => ChangeNotifierProvider( +create: (context) => Ad7ViewModelScreen(), +child: Ad7_entity_list_screen(), +), +), +); +}, +), - // Page Animations - _pageFadeAnimation = Tween(begin: 0.0, end: 1.0).animate( - CurvedAnimation( - parent: _pageAnimationController, - curve: UIConstants.curveNormal, - ), - ); +DrawerItem( +icon: Icons.data_object, +title: 'Ad6 Management', +subtitle: 'Manage Ad6 entities', +onTap: (context) { +Navigator.push( +context, +MaterialPageRoute( +builder: (context) => ChangeNotifierProvider( +create: (context) => Ad6ViewModelScreen(), +child: Ad6_entity_list_screen(), +), +), +); +}, +), - _pageSlideAnimation = - Tween(begin: const Offset(0, 0.3), end: Offset.zero).animate( - CurvedAnimation( - parent: _pageAnimationController, - curve: UIConstants.curveNormal, - ), - ); +DrawerItem( +icon: Icons.data_object, +title: 'Adv5 Management', +subtitle: 'Manage Adv5 entities', +onTap: (context) { +Navigator.push( +context, +MaterialPageRoute( +builder: (context) => ChangeNotifierProvider( +create: (context) => Adv5ViewModelScreen(), +child: Adv5_entity_list_screen(), +), +), +); +}, +), - // Cards Animations - _cardsScaleAnimation = Tween(begin: 0.8, end: 1.0).animate( - CurvedAnimation( - parent: _cardsAnimationController, - curve: UIConstants.curveElastic, - ), - ); +DrawerItem( +icon: Icons.data_object, +title: 'Adv4 Management', +subtitle: 'Manage Adv4 entities', +onTap: (context) { +Navigator.push( +context, +MaterialPageRoute( +builder: (context) => ChangeNotifierProvider( +create: (context) => Adv4ViewModelScreen(), +child: Adv4_entity_list_screen(), +), +), +); +}, +), - // Actions Animations - _actionsScaleAnimation = Tween(begin: 0.8, end: 1.0).animate( - CurvedAnimation( - parent: _actionsAnimationController, - curve: UIConstants.curveElastic, - ), - ); - } +DrawerItem( +icon: Icons.data_object, +title: 'Support Management', +subtitle: 'Manage Support entities', +onTap: (context) { +Navigator.push( +context, +MaterialPageRoute( +builder: (context) => ChangeNotifierProvider( +create: (context) => SupportViewModelScreen(), +child: Support_entity_list_screen(), +), +), +); +}, +), - void _startPageAnimation() async { - await Future.delayed(const Duration(milliseconds: 300)); - _pageAnimationController.forward(); +DrawerItem( +icon: Icons.data_object, +title: 'Adv3 Management', +subtitle: 'Manage Adv3 entities', +onTap: (context) { +Navigator.push( +context, +MaterialPageRoute( +builder: (context) => ChangeNotifierProvider( +create: (context) => Adv3ViewModelScreen(), +child: Adv3_entity_list_screen(), +), +), +); +}, +), - await Future.delayed(const Duration(milliseconds: 400)); - _cardsAnimationController.forward(); +DrawerItem( +icon: Icons.data_object, +title: 'Dv2 Management', +subtitle: 'Manage Dv2 entities', +onTap: (context) { +Navigator.push( +context, +MaterialPageRoute( +builder: (context) => ChangeNotifierProvider( +create: (context) => Dv2ViewModelScreen(), +child: Dv2_entity_list_screen(), +), +), +); +}, +), - await Future.delayed(const Duration(milliseconds: 300)); - _actionsAnimationController.forward(); - } +DrawerItem( +icon: Icons.data_object, +title: 'Adv1 Management', +subtitle: 'Manage Adv1 entities', +onTap: (context) { +Navigator.push( +context, +MaterialPageRoute( +builder: (context) => ChangeNotifierProvider( +create: (context) => Adv1ViewModelScreen(), +child: Adv1_entity_list_screen(), +), +), +); +}, +), - Future _loadDashboardData() async { - // TODO: replace with actual API calls, e.g., via a DashboardViewModel - // Simulate network delay - await Future.delayed(const Duration(milliseconds: 400)); +DrawerItem( +icon: Icons.data_object, +title: 'Basicp3 Management', +subtitle: 'Manage Basicp3 entities', +onTap: (context) { +Navigator.push( +context, +MaterialPageRoute( +builder: (context) => ChangeNotifierProvider( +create: (context) => Basicp3ViewModelScreen(), +child: Basicp3_entity_list_screen(), +), +), +); +}, +), - setState(() { - _dashboardStats = [ - { - 'title': 'Total Users', - 'subtitle': 'Active accounts', - 'numericValue': 1234, - 'valueSuffix': '', - 'icon': Icons.people, - 'type': DashboardCardType.primary, - 'onTap': () {}, - }, - { - 'title': 'System Uptime', - 'subtitle': 'All systems operational', - 'numericValue': 99.9, - 'valueSuffix': '%', - 'icon': Icons.check_circle, - 'type': DashboardCardType.success, - 'onTap': () {}, - }, - { - 'title': 'Security Alerts', - 'subtitle': 'Last 24 hours', - 'numericValue': 2, - 'valueSuffix': '', - 'icon': Icons.security, - 'type': DashboardCardType.info, - 'onTap': () {}, - }, - { - 'title': 'Avg. Response Time', - 'subtitle': 'System performance', - 'numericValue': 2.3, - 'valueSuffix': 's', - 'icon': Icons.speed, - 'type': DashboardCardType.secondary, - 'onTap': () {}, - }, - ]; - }); - } +DrawerItem( +icon: Icons.data_object, +title: 'Basicp2 Management', +subtitle: 'Manage Basicp2 entities', +onTap: (context) { +Navigator.push( +context, +MaterialPageRoute( +builder: (context) => ChangeNotifierProvider( +create: (context) => Basicp2ViewModelScreen(), +child: Basicp2_entity_list_screen(), +), +), +); +}, +), - @override - void dispose() { - _pageAnimationController.dispose(); - _cardsAnimationController.dispose(); - _actionsAnimationController.dispose(); - super.dispose(); - } +DrawerItem( +icon: Icons.data_object, +title: 'Basicp1 Management', +subtitle: 'Manage Basicp1 entities', +onTap: (context) { +Navigator.push( +context, +MaterialPageRoute( +builder: (context) => ChangeNotifierProvider( +create: (context) => Basicp1ViewModelScreen(), +child: Basicp1_entity_list_screen(), +), +), +); +}, +), - @override - Widget build(BuildContext context) { - final theme = Theme.of(context); - final colorScheme = theme.colorScheme; - final size = MediaQuery.of(context).size; - final userName = UserManager().userName; +]; - return Scaffold( - backgroundColor: colorScheme.background, - appBar: ModernAppBar( - title: 'Dashboard', - centerTitle: false, - showLogoInTitle: true, - logoImage: _getDashboardLogoImage(colorScheme), - userAvatar: null, - userAvatarImage: _getDashboardLogoImage(colorScheme), - userName: userName, - onProfilePressed: () { - Navigator.pushNamed(context, RouteNames.profileView); - }, - ), - drawer: ModernDrawer(items: _drawerItems), - body: Container( - decoration: BoxDecoration( - gradient: LinearGradient( - begin: Alignment.topLeft, - end: Alignment.bottomRight, - colors: [ - colorScheme.background, - colorScheme.surfaceVariant.withOpacity(0.1), - colorScheme.primaryContainer.withOpacity(0.05), - ], - ), - ), - child: SafeArea( - child: SingleChildScrollView( - padding: UIConstants.getResponsivePadding( - context, - mobile: const EdgeInsets.all(UIConstants.spacing24), - tablet: const EdgeInsets.all(UIConstants.spacing32), - desktop: const EdgeInsets.all(UIConstants.spacing40), - ), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - // Welcome Section - _buildWelcomeSection(theme, colorScheme, userName), - - SizedBox( - height: UIConstants.getResponsiveSpacing( - context, - mobile: UIConstants.spacing32, - tablet: UIConstants.spacing40, - desktop: UIConstants.spacing48, - ), - ), - - // Dashboard Stats - _buildDashboardStats(theme, colorScheme), - - SizedBox( - height: UIConstants.getResponsiveSpacing( - context, - mobile: UIConstants.spacing40, - tablet: UIConstants.spacing56, - desktop: UIConstants.spacing72, - ), - ), - - // Quick Actions - _buildQuickActions(theme, colorScheme), - - SizedBox( - height: UIConstants.getResponsiveSpacing( - context, - mobile: UIConstants.spacing40, - tablet: UIConstants.spacing56, - desktop: UIConstants.spacing72, - ), - ), - - // Recent Activity Section - _buildRecentActivity(theme, colorScheme), - ], - ), - ), - ), - ), - ); - } - - ImageProvider? _getDashboardLogoImage(ColorScheme cs) { - // Prefer dynamic logo from system parameters if present - try { - final sysVm = Provider.of(context, listen: true); - if (sysVm.profileImageBytes != null && - sysVm.profileImageBytes!.isNotEmpty) { - return MemoryImage(sysVm.profileImageBytes!); - } - } catch (_) { - // Provider not available – fall through to default asset - } - - // Default asset logo - return const AssetImage('assets/images/image_not_found.png'); - } - - Widget _buildWelcomeSection( - ThemeData theme, - ColorScheme colorScheme, - String? userName, - ) { - return AnimatedBuilder( - animation: _pageAnimationController, - builder: (context, child) { - return FadeTransition( - opacity: _pageFadeAnimation, - child: SlideTransition( - position: _pageSlideAnimation, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - 'Welcome back, ${userName ?? 'User'}! 👋', - style: theme.textTheme.headlineMedium?.copyWith( - color: colorScheme.onBackground, - fontWeight: FontWeight.w700, - ), - maxLines: 1, - overflow: TextOverflow.ellipsis, - ), - const SizedBox(height: UIConstants.spacing8), - Text( - 'Here\'s what\'s happening with your system today', - style: theme.textTheme.bodyLarge?.copyWith( - color: colorScheme.onSurfaceVariant, - ), - maxLines: 2, - overflow: TextOverflow.ellipsis, - ), - ], - ), - ), - ); - }, - ); - } - - // Removed in-body logo: AppBar now displays the logo. - - Widget _buildDashboardStats(ThemeData theme, ColorScheme colorScheme) { - return AnimatedBuilder( - animation: _cardsAnimationController, - builder: (context, child) { - return Transform.scale( - scale: _cardsScaleAnimation.value, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - 'System Overview', - style: theme.textTheme.titleLarge?.copyWith( - color: colorScheme.onBackground, - fontWeight: FontWeight.w600, - ), - ), - const SizedBox(height: UIConstants.spacing24), - - // Responsive Grid - LayoutBuilder( - builder: (context, constraints) { - final crossAxisCount = UIConstants.isMobile(context) - ? 2 - : UIConstants.isTablet(context) - ? 3 - : 4; - - // Use fixed mainAxisExtent per breakpoint to avoid overflow - final double mainAxisExtent = UIConstants.isMobile(context) - ? 130 - : (UIConstants.isTablet(context) ? 160 : 180); - - return GridView.builder( - shrinkWrap: true, - physics: const NeverScrollableScrollPhysics(), - gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: crossAxisCount, - crossAxisSpacing: UIConstants.spacing16, - mainAxisSpacing: UIConstants.spacing16, - mainAxisExtent: mainAxisExtent, - ), - itemCount: _dashboardStats.length, - itemBuilder: (context, index) { - final stat = _dashboardStats[index]; - return DashboardCard( - title: stat['title'], - subtitle: stat['subtitle'], - value: stat['value'], - numericValue: stat['numericValue'], - valueSuffix: stat['valueSuffix'], - animationDuration: UIConstants.durationNormal, - icon: stat['icon'], - type: stat['type'], - onTap: stat['onTap'], - ); - }, - ); - }, - ), - ], - ), - ); - }, - ); - } - - Widget _buildQuickActions(ThemeData theme, ColorScheme colorScheme) { - return AnimatedBuilder( - animation: _actionsAnimationController, - builder: (context, child) { - return Transform.scale( - scale: _actionsScaleAnimation.value, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - 'Quick Actions', - style: theme.textTheme.titleLarge?.copyWith( - color: colorScheme.onBackground, - fontWeight: FontWeight.w600, - ), - ), - const SizedBox(height: UIConstants.spacing24), - - // Responsive Grid - LayoutBuilder( - builder: (context, constraints) { - final crossAxisCount = UIConstants.isMobile(context) - ? 2 - : UIConstants.isTablet(context) - ? 4 - : 6; - - return GridView.builder( - shrinkWrap: true, - physics: const NeverScrollableScrollPhysics(), - gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: crossAxisCount, - crossAxisSpacing: UIConstants.spacing16, - mainAxisSpacing: UIConstants.spacing16, - childAspectRatio: 1.0, - ), - itemCount: _quickActions.length, - itemBuilder: (context, index) { - final action = _quickActions[index]; - return QuickActionButton( - label: action['label'], - icon: action['icon'], - onTap: action['onTap'], - backgroundColor: action['backgroundColor'], - size: UIConstants.logoSizeMedium, - ); - }, - ); - }, - ), - ], - ), - ); - }, - ); - } - - Widget _buildRecentActivity(ThemeData theme, ColorScheme colorScheme) { - return Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - 'Recent Activity', - style: theme.textTheme.titleLarge?.copyWith( - color: colorScheme.onBackground, - fontWeight: FontWeight.w600, - ), - ), - const SizedBox(height: UIConstants.spacing24), - Container( - padding: UIConstants.cardPaddingMedium, - decoration: BoxDecoration( - color: colorScheme.surface, - borderRadius: BorderRadius.circular(UIConstants.radius16), - boxShadow: [ - BoxShadow( - color: colorScheme.shadow.withOpacity(0.1), - blurRadius: 8, - offset: const Offset(0, 2), - ), - ], - ), - child: Column( - children: [ - _buildActivityItem( - theme, - colorScheme, - Icons.security, - 'Security scan completed', - 'System security check finished successfully', - '2 minutes ago', - AppColorScheme.success, - ), - const Divider(height: UIConstants.spacing24), - _buildActivityItem( - theme, - colorScheme, - Icons.update, - 'System updated', - 'Latest security patches installed', - '1 hour ago', - AppColorScheme.info, - ), - const Divider(height: UIConstants.spacing24), - _buildActivityItem( - theme, - colorScheme, - Icons.backup, - 'Backup completed', - 'Daily backup process finished', - '3 hours ago', - colorScheme.primary, - ), - ], - ), - ), - ], - ); - } - - Widget _buildActivityItem( - ThemeData theme, - ColorScheme colorScheme, - IconData icon, - String title, - String subtitle, - String time, - Color iconColor, - ) { - return Row( - children: [ - Container( - padding: const EdgeInsets.all(UIConstants.spacing8), - decoration: BoxDecoration( - color: iconColor.withOpacity(0.1), - borderRadius: BorderRadius.circular(UIConstants.radius8), - ), - child: Icon(icon, color: iconColor, size: UIConstants.iconSizeMedium), - ), - const SizedBox(width: UIConstants.spacing16), - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - title, - style: theme.textTheme.titleMedium?.copyWith( - color: colorScheme.onSurface, - fontWeight: FontWeight.w600, - ), - ), - const SizedBox(height: UIConstants.spacing4), - Text( - subtitle, - style: theme.textTheme.bodyMedium?.copyWith( - color: colorScheme.onSurfaceVariant, - ), - ), - ], - ), - ), - Text( - time, - style: theme.textTheme.bodySmall?.copyWith( - color: colorScheme.onSurfaceVariant, - ), - ), - ], - ); - } +@override +void initState() { +super.initState(); +_initializeAnimations(); +_startPageAnimation(); +_loadDashboardData(); } + +void _initializeAnimations() { +// Page Animation Controller +_pageAnimationController = AnimationController( +duration: UIConstants.durationSlow, +vsync: this, +); + +// Cards Animation Controller +_cardsAnimationController = AnimationController( +duration: UIConstants.durationNormal, +vsync: this, +); + +// Actions Animation Controller +_actionsAnimationController = AnimationController( +duration: UIConstants.durationNormal, +vsync: this, +); + +// Page Animations +_pageFadeAnimation = Tween(begin: 0.0, end: 1.0).animate( +CurvedAnimation( +parent: _pageAnimationController, +curve: UIConstants.curveNormal, +), +); + +_pageSlideAnimation = +Tween(begin: const Offset(0, 0.3), end: Offset.zero).animate( +CurvedAnimation( +parent: _pageAnimationController, +curve: UIConstants.curveNormal, +), +); + +// Cards Animations +_cardsScaleAnimation = Tween(begin: 0.8, end: 1.0).animate( +CurvedAnimation( +parent: _cardsAnimationController, +curve: UIConstants.curveElastic, +), +); + +// Actions Animations +_actionsScaleAnimation = Tween(begin: 0.8, end: 1.0).animate( +CurvedAnimation( +parent: _actionsAnimationController, +curve: UIConstants.curveElastic, +), +); +} + +void _startPageAnimation() async { +await Future.delayed(const Duration(milliseconds: 300)); +_pageAnimationController.forward(); + +await Future.delayed(const Duration(milliseconds: 400)); +_cardsAnimationController.forward(); + +await Future.delayed(const Duration(milliseconds: 300)); +_actionsAnimationController.forward(); +} + +Future _loadDashboardData() async { +// TODO: replace with actual API calls, e.g., via a DashboardViewModel +// Simulate network delay +await Future.delayed(const Duration(milliseconds: 400)); + +setState(() { +_dashboardStats = [ +{ +'title': 'Total Users', +'subtitle': 'Active accounts', +'numericValue': 1234, +'valueSuffix': '', +'icon': Icons.people, +'type': DashboardCardType.primary, +'onTap': () {}, +}, +{ +'title': 'System Uptime', +'subtitle': 'All systems operational', +'numericValue': 99.9, +'valueSuffix': '%', +'icon': Icons.check_circle, +'type': DashboardCardType.success, +'onTap': () {}, +}, +{ +'title': 'Security Alerts', +'subtitle': 'Last 24 hours', +'numericValue': 2, +'valueSuffix': '', +'icon': Icons.security, +'type': DashboardCardType.info, +'onTap': () {}, +}, +{ +'title': 'Avg. Response Time', +'subtitle': 'System performance', +'numericValue': 2.3, +'valueSuffix': 's', +'icon': Icons.speed, +'type': DashboardCardType.secondary, +'onTap': () {}, +}, +]; +}); +} + +@override +void dispose() { +_pageAnimationController.dispose(); +_cardsAnimationController.dispose(); +_actionsAnimationController.dispose(); +super.dispose(); +} + +@override +Widget build(BuildContext context) { +final theme = Theme.of(context); +final colorScheme = theme.colorScheme; +final size = MediaQuery.of(context).size; +final userName = UserManager().userName; + +return Scaffold( +backgroundColor: colorScheme.background, +appBar: ModernAppBar( +title: 'Dashboard', +centerTitle: false, +showLogoInTitle: true, +logoImage: _getDashboardLogoImage(colorScheme), +userAvatar: null, +userAvatarImage: _getDashboardLogoImage(colorScheme), +userName: userName, +onProfilePressed: () { +Navigator.pushNamed(context, RouteNames.profileView); +}, +), +drawer: ModernDrawer(items: _drawerItems), +body: Container( +decoration: BoxDecoration( +gradient: LinearGradient( +begin: Alignment.topLeft, +end: Alignment.bottomRight, +colors: [ +colorScheme.background, +colorScheme.surfaceVariant.withOpacity(0.1), +colorScheme.primaryContainer.withOpacity(0.05), +], +), +), +child: SafeArea( +child: SingleChildScrollView( +padding: UIConstants.getResponsivePadding( +context, +mobile: const EdgeInsets.all(UIConstants.spacing24), +tablet: const EdgeInsets.all(UIConstants.spacing32), +desktop: const EdgeInsets.all(UIConstants.spacing40), +), +child: Column( +crossAxisAlignment: CrossAxisAlignment.start, +children: [ +// Welcome Section +_buildWelcomeSection(theme, colorScheme, userName), + +SizedBox( +height: UIConstants.getResponsiveSpacing( +context, +mobile: UIConstants.spacing32, +tablet: UIConstants.spacing40, +desktop: UIConstants.spacing48, +), +), + +// Dashboard Stats +_buildDashboardStats(theme, colorScheme), + +SizedBox( +height: UIConstants.getResponsiveSpacing( +context, +mobile: UIConstants.spacing40, +tablet: UIConstants.spacing56, +desktop: UIConstants.spacing72, +), +), + +// Quick Actions +_buildQuickActions(theme, colorScheme), + +SizedBox( +height: UIConstants.getResponsiveSpacing( +context, +mobile: UIConstants.spacing40, +tablet: UIConstants.spacing56, +desktop: UIConstants.spacing72, +), +), + +// Recent Activity Section +_buildRecentActivity(theme, colorScheme), +], +), +), +), +), +); +} + +ImageProvider? _getDashboardLogoImage(ColorScheme cs) { +// Prefer dynamic logo from system parameters if present +try { +final sysVm = Provider.of(context, listen: true); +if (sysVm.profileImageBytes != null && +sysVm.profileImageBytes!.isNotEmpty) { +return MemoryImage(sysVm.profileImageBytes!); +} +} catch (_) { +// Provider not available – fall through to default asset +} + +// Default asset logo +return const AssetImage('assets/images/image_not_found.png'); +} + +Widget _buildWelcomeSection( +ThemeData theme, +ColorScheme colorScheme, +String? userName, +) { +return AnimatedBuilder( +animation: _pageAnimationController, +builder: (context, child) { +return FadeTransition( +opacity: _pageFadeAnimation, +child: SlideTransition( +position: _pageSlideAnimation, +child: Column( +crossAxisAlignment: CrossAxisAlignment.start, +children: [ +Text( +'Welcome back, ${userName ?? 'User'}! 👋', +style: theme.textTheme.headlineMedium?.copyWith( +color: colorScheme.onBackground, +fontWeight: FontWeight.w700, +), +maxLines: 1, +overflow: TextOverflow.ellipsis, +), +const SizedBox(height: UIConstants.spacing8), +Text( +'Here\'s what\'s happening with your system today', +style: theme.textTheme.bodyLarge?.copyWith( +color: colorScheme.onSurfaceVariant, +), +maxLines: 2, +overflow: TextOverflow.ellipsis, +), +], +), +), +); +}, +); +} + +// Removed in-body logo: AppBar now displays the logo. + +Widget _buildDashboardStats(ThemeData theme, ColorScheme colorScheme) { +return AnimatedBuilder( +animation: _cardsAnimationController, +builder: (context, child) { +return Transform.scale( +scale: _cardsScaleAnimation.value, +child: Column( +crossAxisAlignment: CrossAxisAlignment.start, +children: [ +Text( +'System Overview', +style: theme.textTheme.titleLarge?.copyWith( +color: colorScheme.onBackground, +fontWeight: FontWeight.w600, +), +), +const SizedBox(height: UIConstants.spacing24), + +// Responsive Grid +LayoutBuilder( +builder: (context, constraints) { +final crossAxisCount = UIConstants.isMobile(context) +? 2 +: UIConstants.isTablet(context) +? 3 +: 4; + +// Use fixed mainAxisExtent per breakpoint to avoid overflow +final double mainAxisExtent = UIConstants.isMobile(context) +? 130 +: (UIConstants.isTablet(context) ? 160 : 180); + +return GridView.builder( +shrinkWrap: true, +physics: const NeverScrollableScrollPhysics(), +gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( +crossAxisCount: crossAxisCount, +crossAxisSpacing: UIConstants.spacing16, +mainAxisSpacing: UIConstants.spacing16, +mainAxisExtent: mainAxisExtent, +), +itemCount: _dashboardStats.length, +itemBuilder: (context, index) { +final stat = _dashboardStats[index]; +return DashboardCard( +title: stat['title'], +subtitle: stat['subtitle'], +value: stat['value'], +numericValue: stat['numericValue'], +valueSuffix: stat['valueSuffix'], +animationDuration: UIConstants.durationNormal, +icon: stat['icon'], +type: stat['type'], +onTap: stat['onTap'], +); +}, +); +}, +), +], +), +); +}, +); +} + +Widget _buildQuickActions(ThemeData theme, ColorScheme colorScheme) { +return AnimatedBuilder( +animation: _actionsAnimationController, +builder: (context, child) { +return Transform.scale( +scale: _actionsScaleAnimation.value, +child: Column( +crossAxisAlignment: CrossAxisAlignment.start, +children: [ +Text( +'Quick Actions', +style: theme.textTheme.titleLarge?.copyWith( +color: colorScheme.onBackground, +fontWeight: FontWeight.w600, +), +), +const SizedBox(height: UIConstants.spacing24), + +// Responsive Grid +LayoutBuilder( +builder: (context, constraints) { +final crossAxisCount = UIConstants.isMobile(context) +? 2 +: UIConstants.isTablet(context) +? 4 +: 6; + +return GridView.builder( +shrinkWrap: true, +physics: const NeverScrollableScrollPhysics(), +gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( +crossAxisCount: crossAxisCount, +crossAxisSpacing: UIConstants.spacing16, +mainAxisSpacing: UIConstants.spacing16, +childAspectRatio: 1.0, +), +itemCount: _quickActions.length, +itemBuilder: (context, index) { +final action = _quickActions[index]; +return QuickActionButton( +label: action['label'], +icon: action['icon'], +onTap: action['onTap'], +backgroundColor: action['backgroundColor'], +size: UIConstants.logoSizeMedium, +); +}, +); +}, +), +], +), +); +}, +); +} + +Widget _buildRecentActivity(ThemeData theme, ColorScheme colorScheme) { +return Column( +crossAxisAlignment: CrossAxisAlignment.start, +children: [ +Text( +'Recent Activity', +style: theme.textTheme.titleLarge?.copyWith( +color: colorScheme.onBackground, +fontWeight: FontWeight.w600, +), +), +const SizedBox(height: UIConstants.spacing24), +Container( +padding: UIConstants.cardPaddingMedium, +decoration: BoxDecoration( +color: colorScheme.surface, +borderRadius: BorderRadius.circular(UIConstants.radius16), +boxShadow: [ +BoxShadow( +color: colorScheme.shadow.withOpacity(0.1), +blurRadius: 8, +offset: const Offset(0, 2), +), +], +), +child: Column( +children: [ +_buildActivityItem( +theme, +colorScheme, +Icons.security, +'Security scan completed', +'System security check finished successfully', +'2 minutes ago', +AppColorScheme.success, +), +const Divider(height: UIConstants.spacing24), +_buildActivityItem( +theme, +colorScheme, +Icons.update, +'System updated', +'Latest security patches installed', +'1 hour ago', +AppColorScheme.info, +), +const Divider(height: UIConstants.spacing24), +_buildActivityItem( +theme, +colorScheme, +Icons.backup, +'Backup completed', +'Daily backup process finished', +'3 hours ago', +colorScheme.primary, +), +], +), +), +], +); +} + +Widget _buildActivityItem( +ThemeData theme, +ColorScheme colorScheme, +IconData icon, +String title, +String subtitle, +String time, +Color iconColor, +) { +return Row( +children: [ +Container( +padding: const EdgeInsets.all(UIConstants.spacing8), +decoration: BoxDecoration( +color: iconColor.withOpacity(0.1), +borderRadius: BorderRadius.circular(UIConstants.radius8), +), +child: Icon(icon, color: iconColor, size: UIConstants.iconSizeMedium), +), +const SizedBox(width: UIConstants.spacing16), +Expanded( +child: Column( +crossAxisAlignment: CrossAxisAlignment.start, +children: [ +Text( +title, +style: theme.textTheme.titleMedium?.copyWith( +color: colorScheme.onSurface, +fontWeight: FontWeight.w600, +), +), +const SizedBox(height: UIConstants.spacing4), +Text( +subtitle, +style: theme.textTheme.bodyMedium?.copyWith( +color: colorScheme.onSurfaceVariant, +), +), +], +), +), +Text( +time, +style: theme.textTheme.bodySmall?.copyWith( +color: colorScheme.onSurfaceVariant, +), +), +], +); +} +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/Builders/Services/BuilderService.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/Builders/Services/BuilderService.java index 2ae85df..3306491 100644 --- a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/Builders/Services/BuilderService.java +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/Builders/Services/BuilderService.java @@ -80,6 +80,57 @@ public class BuilderService { // } // ADD OTHER SERVICE +addCustomMenu( "Childform","Childform", "Transcations"); + + +addCustomMenu( "District","District", "Transcations"); + + +addCustomMenu( "State","State", "Transcations"); + + +addCustomMenu( "Country","Country", "Transcations"); + + +addCustomMenu( "Ad9","Ad9", "Transcations"); + + +addCustomMenu( "Ad8","Ad8", "Transcations"); + + +addCustomMenu( "Ad7","Ad7", "Transcations"); + + +addCustomMenu( "Ad6","Ad6", "Transcations"); + + +addCustomMenu( "Adv5","Adv5", "Transcations"); + + +addCustomMenu( "Adv4","Adv4", "Transcations"); + + +addCustomMenu( "Support","Support", "Transcations"); + + +addCustomMenu( "Adv3","Adv3", "Transcations"); + + +addCustomMenu( "Dv2","Dv2", "Transcations"); + + +addCustomMenu( "Adv1","Adv1", "Transcations"); + + +addCustomMenu( "Basicp3","Basicp3", "Transcations"); + + +addCustomMenu( "Basicp2","Basicp2", "Transcations"); + + +addCustomMenu( "Basicp1","Basicp1", "Transcations"); + + System.out.println("dashboard and menu inserted..."); diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Ad6Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Ad6Controller.java new file mode 100644 index 0000000..efeb618 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Ad6Controller.java @@ -0,0 +1,115 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Ad6; +import com.realnet.angulardatatype.Services.Ad6Service ; + + + + + + + + + + +@RequestMapping(value = "/Ad6") + @CrossOrigin("*") +@RestController +public class Ad6Controller { + @Autowired + private Ad6Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + @PostMapping("/Ad6") + public Ad6 Savedata(@RequestBody Ad6 data) { + Ad6 save = Service.Savedata(data) ; + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Ad6/{id}") + public Ad6 update(@RequestBody Ad6 data,@PathVariable Integer id ) { + Ad6 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Ad6/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Ad6") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Ad6") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Ad6/{id}") + public Ad6 getdetailsbyId(@PathVariable Integer id ) { + Ad6 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Ad6/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Ad7Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Ad7Controller.java new file mode 100644 index 0000000..e9045ed --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Ad7Controller.java @@ -0,0 +1,113 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Ad7; +import com.realnet.angulardatatype.Services.Ad7Service ; + + +import com.realnet.angulardatatype.Entity.Basicp3; + + +import com.realnet.angulardatatype.Entity.Support; + + +@RequestMapping(value = "/Ad7") + @CrossOrigin("*") +@RestController +public class Ad7Controller { + @Autowired + private Ad7Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + @PostMapping("/Ad7") + public Ad7 Savedata(@RequestBody Ad7 data) { + Ad7 save = Service.Savedata(data) ; + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Ad7/{id}") + public Ad7 update(@RequestBody Ad7 data,@PathVariable Integer id ) { + Ad7 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Ad7/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Ad7") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Ad7") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Ad7/{id}") + public Ad7 getdetailsbyId(@PathVariable Integer id ) { + Ad7 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Ad7/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + @PostMapping("/Ad7/Basicp3_insert") + public Basicp3 insertBasicp3(@RequestBody Basicp3 data) { + Basicp3 insertaction = Service.insertBasicp3(data); + return insertaction; + } + + + + @PostMapping("/Ad7/Support_insert") + public Support insertSupport(@RequestBody Support data) { + Support insertaction = Service.insertSupport(data); + return insertaction; + } + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Ad8Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Ad8Controller.java new file mode 100644 index 0000000..b8a4690 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Ad8Controller.java @@ -0,0 +1,131 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Ad8; +import com.realnet.angulardatatype.Services.Ad8Service ; + + +import com.realnet.angulardatatype.Entity.Support; + + +import com.realnet.stpkg.Entity.Childform; + + + + + + +@RequestMapping(value = "/Ad8") + @CrossOrigin("*") +@RestController +public class Ad8Controller { + @Autowired + private Ad8Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + @PostMapping("/Ad8") + public Ad8 Savedata(@RequestBody Ad8 data) { + Ad8 save = Service.Savedata(data) ; + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Ad8/{id}") + public Ad8 update(@RequestBody Ad8 data,@PathVariable Integer id ) { + Ad8 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Ad8/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Ad8") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Ad8") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Ad8/{id}") + public Ad8 getdetailsbyId(@PathVariable Integer id ) { + Ad8 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Ad8/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + +@PutMapping("/Ad8/Support_update/{id}") + public ResponseEntity updateSupport(@PathVariable Integer id, @RequestBody Support data) { + ResponseEntity update = Service.updateSupport(id, data); + System.out.println(update + " updateed"); + return update; + } + + + +@PutMapping("/Ad8/Childform_update/{id}") + public ResponseEntity updateChildform(@PathVariable Integer id, @RequestBody Childform data) { + ResponseEntity update = Service.updateChildform(id, data); + System.out.println(update + " updateed"); + return update; + } + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Ad9Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Ad9Controller.java new file mode 100644 index 0000000..b361ba0 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Ad9Controller.java @@ -0,0 +1,91 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Ad9; +import com.realnet.angulardatatype.Services.Ad9Service ; + + + + +@RequestMapping(value = "/Ad9") + @CrossOrigin("*") +@RestController +public class Ad9Controller { + @Autowired + private Ad9Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + @PostMapping("/Ad9") + public Ad9 Savedata(@RequestBody Ad9 data) { + Ad9 save = Service.Savedata(data) ; + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Ad9/{id}") + public Ad9 update(@RequestBody Ad9 data,@PathVariable Integer id ) { + Ad9 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Ad9/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Ad9") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Ad9") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Ad9/{id}") + public Ad9 getdetailsbyId(@PathVariable Integer id ) { + Ad9 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Ad9/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Adv1Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Adv1Controller.java new file mode 100644 index 0000000..bd75017 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Adv1Controller.java @@ -0,0 +1,171 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Adv1; +import com.realnet.angulardatatype.Services.Adv1Service ; + + + + + + + + + + + + + + + + + + + + + + + + +@RequestMapping(value = "/Adv1") + @CrossOrigin("*") +@RestController +public class Adv1Controller { + @Autowired + private Adv1Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + + + + + + + + + + + + + + + @PostMapping("/Adv1") + public Adv1 Savedata(@RequestBody Adv1 data) { + Adv1 save = Service.Savedata(data) ; + + + + + + + + + + + + + + + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Adv1/{id}") + public Adv1 update(@RequestBody Adv1 data,@PathVariable Integer id ) { + Adv1 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Adv1/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Adv1") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Adv1") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Adv1/{id}") + public Adv1 getdetailsbyId(@PathVariable Integer id ) { + Adv1 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Adv1/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Adv3Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Adv3Controller.java new file mode 100644 index 0000000..126655b --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Adv3Controller.java @@ -0,0 +1,163 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Adv3; +import com.realnet.angulardatatype.Services.Adv3Service ; + + + + + + + + + + + + + + + + + + + + + + +@RequestMapping(value = "/Adv3") + @CrossOrigin("*") +@RestController +public class Adv3Controller { + @Autowired + private Adv3Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + + + + + + + + + + + + + @PostMapping("/Adv3") + public Adv3 Savedata(@RequestBody Adv3 data) { + Adv3 save = Service.Savedata(data) ; + + + + + + + + + + + + + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Adv3/{id}") + public Adv3 update(@RequestBody Adv3 data,@PathVariable Integer id ) { + Adv3 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Adv3/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Adv3") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Adv3") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Adv3/{id}") + public Adv3 getdetailsbyId(@PathVariable Integer id ) { + Adv3 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Adv3/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Adv4Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Adv4Controller.java new file mode 100644 index 0000000..9548212 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Adv4Controller.java @@ -0,0 +1,123 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Adv4; +import com.realnet.angulardatatype.Services.Adv4Service ; + + + + + + + + + + + + +@RequestMapping(value = "/Adv4") + @CrossOrigin("*") +@RestController +public class Adv4Controller { + @Autowired + private Adv4Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + + + @PostMapping("/Adv4") + public Adv4 Savedata(@RequestBody Adv4 data) { + Adv4 save = Service.Savedata(data) ; + + + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Adv4/{id}") + public Adv4 update(@RequestBody Adv4 data,@PathVariable Integer id ) { + Adv4 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Adv4/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Adv4") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Adv4") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Adv4/{id}") + public Adv4 getdetailsbyId(@PathVariable Integer id ) { + Adv4 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Adv4/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Adv5Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Adv5Controller.java new file mode 100644 index 0000000..44efce2 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Adv5Controller.java @@ -0,0 +1,147 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Adv5; +import com.realnet.angulardatatype.Services.Adv5Service ; + + + + + + + + + + + + + + + + + + +@RequestMapping(value = "/Adv5") + @CrossOrigin("*") +@RestController +public class Adv5Controller { + @Autowired + private Adv5Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + + + + + + + + + @PostMapping("/Adv5") + public Adv5 Savedata(@RequestBody Adv5 data) { + Adv5 save = Service.Savedata(data) ; + + + + + + + + + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Adv5/{id}") + public Adv5 update(@RequestBody Adv5 data,@PathVariable Integer id ) { + Adv5 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Adv5/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Adv5") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Adv5") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Adv5/{id}") + public Adv5 getdetailsbyId(@PathVariable Integer id ) { + Adv5 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Adv5/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Basicp1Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Basicp1Controller.java new file mode 100644 index 0000000..2be35e3 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Basicp1Controller.java @@ -0,0 +1,171 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Basicp1; +import com.realnet.angulardatatype.Services.Basicp1Service ; + + + + + + + + + + + + + + + + + + + + + + + + +@RequestMapping(value = "/Basicp1") + @CrossOrigin("*") +@RestController +public class Basicp1Controller { + @Autowired + private Basicp1Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + + + + + + + + + + + + + + + @PostMapping("/Basicp1") + public Basicp1 Savedata(@RequestBody Basicp1 data) { + Basicp1 save = Service.Savedata(data) ; + + + + + + + + + + + + + + + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Basicp1/{id}") + public Basicp1 update(@RequestBody Basicp1 data,@PathVariable Integer id ) { + Basicp1 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Basicp1/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Basicp1") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Basicp1") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Basicp1/{id}") + public Basicp1 getdetailsbyId(@PathVariable Integer id ) { + Basicp1 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Basicp1/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Basicp2Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Basicp2Controller.java new file mode 100644 index 0000000..0ed5536 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Basicp2Controller.java @@ -0,0 +1,147 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Basicp2; +import com.realnet.angulardatatype.Services.Basicp2Service ; + + + + + + + + + + + + + + + + + + +@RequestMapping(value = "/Basicp2") + @CrossOrigin("*") +@RestController +public class Basicp2Controller { + @Autowired + private Basicp2Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + + + + + + + + + @PostMapping("/Basicp2") + public Basicp2 Savedata(@RequestBody Basicp2 data) { + Basicp2 save = Service.Savedata(data) ; + + + + + + + + + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Basicp2/{id}") + public Basicp2 update(@RequestBody Basicp2 data,@PathVariable Integer id ) { + Basicp2 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Basicp2/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Basicp2") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Basicp2") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Basicp2/{id}") + public Basicp2 getdetailsbyId(@PathVariable Integer id ) { + Basicp2 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Basicp2/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Basicp3Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Basicp3Controller.java new file mode 100644 index 0000000..7e1b203 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Basicp3Controller.java @@ -0,0 +1,163 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Basicp3; +import com.realnet.angulardatatype.Services.Basicp3Service ; + + + + + + + + + + + + + + + + + + + + + + +@RequestMapping(value = "/Basicp3") + @CrossOrigin("*") +@RestController +public class Basicp3Controller { + @Autowired + private Basicp3Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + + + + + + + + + + + + + @PostMapping("/Basicp3") + public Basicp3 Savedata(@RequestBody Basicp3 data) { + Basicp3 save = Service.Savedata(data) ; + + + + + + + + + + + + + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Basicp3/{id}") + public Basicp3 update(@RequestBody Basicp3 data,@PathVariable Integer id ) { + Basicp3 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Basicp3/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Basicp3") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Basicp3") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Basicp3/{id}") + public Basicp3 getdetailsbyId(@PathVariable Integer id ) { + Basicp3 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Basicp3/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Basicp3InsertController2.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Basicp3InsertController2.java new file mode 100644 index 0000000..9963a59 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Basicp3InsertController2.java @@ -0,0 +1,21 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.http.*; +import com.realnet.angulardatatype.Entity.Basicp3; +import com.realnet.angulardatatype.Services.Basicp3InsertService2; +@RequestMapping(value = "/Basicp3") +@RestController +public class Basicp3InsertController2{ + + @Autowired + private Basicp3InsertService2 Service; + +@PostMapping("/Basicp3_insert") + public ResponseEntity insert(@RequestBody Basicp3 basicp3) { + Basicp3 insertaction = Service.insertaction(basicp3); + return new ResponseEntity<>(insertaction, HttpStatus.OK); + } + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/ChildformUpdateController3.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/ChildformUpdateController3.java new file mode 100644 index 0000000..b791086 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/ChildformUpdateController3.java @@ -0,0 +1,23 @@ +package com.realnet.angulardatatype.Controllers; + + import java.util.List; +import org.springframework.http.ResponseEntity; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import com.realnet.stpkg.Entity.Childform; +import com.realnet.angulardatatype.Services.ChildformUpdateService3 ; +@RequestMapping(value = "/Childform") +@RestController +public class ChildformUpdateController3{ + + @Autowired + private ChildformUpdateService3 Service; + +@PutMapping("/Childform_update/{id}") + public ResponseEntity update(@PathVariable Integer id,@RequestBody Childform childform) { + ResponseEntity update = Service.updateaction(id,childform ); + System.out.println(update+" updateed"); + return update; + } + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/District_ListFilter1Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/District_ListFilter1Controller.java new file mode 100644 index 0000000..48015b1 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/District_ListFilter1Controller.java @@ -0,0 +1,24 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import com.realnet.angulardatatype.Entity.District_ListFilter1; +import com.realnet.angulardatatype.Services.District_ListFilter1Service ; +@RequestMapping(value = "/District_ListFilter1") +@RestController +public class District_ListFilter1Controller { + + @Autowired + private District_ListFilter1Service Service; + + @GetMapping("/District_ListFilter1") + public List getlist() { + List get = Service.getlistbuilder(); + return get; +} + @GetMapping("/District_ListFilter11/{item}") + public List getlistwithparam( @PathVariable String item) { + List get = Service.getlistbuilderparam( item); + return get; +} +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Dv2Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Dv2Controller.java new file mode 100644 index 0000000..9f3d963 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/Dv2Controller.java @@ -0,0 +1,147 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Dv2; +import com.realnet.angulardatatype.Services.Dv2Service ; + + + + + + + + + + + + + + + + + + +@RequestMapping(value = "/Dv2") + @CrossOrigin("*") +@RestController +public class Dv2Controller { + @Autowired + private Dv2Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + + + + + + + + + @PostMapping("/Dv2") + public Dv2 Savedata(@RequestBody Dv2 data) { + Dv2 save = Service.Savedata(data) ; + + + + + + + + + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Dv2/{id}") + public Dv2 update(@RequestBody Dv2 data,@PathVariable Integer id ) { + Dv2 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Dv2/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Dv2") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Dv2") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Dv2/{id}") + public Dv2 getdetailsbyId(@PathVariable Integer id ) { + Dv2 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Dv2/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/State_ListFilter1Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/State_ListFilter1Controller.java new file mode 100644 index 0000000..f6483bb --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/State_ListFilter1Controller.java @@ -0,0 +1,24 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import com.realnet.angulardatatype.Entity.State_ListFilter1; +import com.realnet.angulardatatype.Services.State_ListFilter1Service ; +@RequestMapping(value = "/State_ListFilter1") +@RestController +public class State_ListFilter1Controller { + + @Autowired + private State_ListFilter1Service Service; + + @GetMapping("/State_ListFilter1") + public List getlist() { + List get = Service.getlistbuilder(); + return get; +} + @GetMapping("/State_ListFilter11/{item}") + public List getlistwithparam( @PathVariable String item) { + List get = Service.getlistbuilderparam( item); + return get; +} +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/SupportController.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/SupportController.java new file mode 100644 index 0000000..9469a8c --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/SupportController.java @@ -0,0 +1,91 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Support; +import com.realnet.angulardatatype.Services.SupportService ; + + + + +@RequestMapping(value = "/Support") + @CrossOrigin("*") +@RestController +public class SupportController { + @Autowired + private SupportService Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + @PostMapping("/Support") + public Support Savedata(@RequestBody Support data) { + Support save = Service.Savedata(data) ; + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Support/{id}") + public Support update(@RequestBody Support data,@PathVariable Integer id ) { + Support update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Support/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Support") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Support") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Support/{id}") + public Support getdetailsbyId(@PathVariable Integer id ) { + Support get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Support/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/SupportInsertController3.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/SupportInsertController3.java new file mode 100644 index 0000000..19c926d --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/SupportInsertController3.java @@ -0,0 +1,21 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.http.*; +import com.realnet.angulardatatype.Entity.Support; +import com.realnet.angulardatatype.Services.SupportInsertService3; +@RequestMapping(value = "/Support") +@RestController +public class SupportInsertController3{ + + @Autowired + private SupportInsertService3 Service; + +@PostMapping("/Support_insert") + public ResponseEntity insert(@RequestBody Support support) { + Support insertaction = Service.insertaction(support); + return new ResponseEntity<>(insertaction, HttpStatus.OK); + } + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/SupportUpdateController2.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/SupportUpdateController2.java new file mode 100644 index 0000000..6948143 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/SupportUpdateController2.java @@ -0,0 +1,23 @@ +package com.realnet.angulardatatype.Controllers; + + import java.util.List; +import org.springframework.http.ResponseEntity; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import com.realnet.angulardatatype.Entity.Support; +import com.realnet.angulardatatype.Services.SupportUpdateService2 ; +@RequestMapping(value = "/Support") +@RestController +public class SupportUpdateController2{ + + @Autowired + private SupportUpdateService2 Service; + +@PutMapping("/Support_update/{id}") + public ResponseEntity update(@PathVariable Integer id,@RequestBody Support support) { + ResponseEntity update = Service.updateaction(id,support ); + System.out.println(update+" updateed"); + return update; + } + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Ad6Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Ad6Controller.java new file mode 100644 index 0000000..cb2bf8a --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Ad6Controller.java @@ -0,0 +1,115 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Ad6; +import com.realnet.angulardatatype.Services.Ad6Service ; + + + + + + + + + + +@RequestMapping(value = "/token/Ad6") + @CrossOrigin("*") +@RestController +public class tokenFree_Ad6Controller { + @Autowired + private Ad6Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + @PostMapping("/Ad6") + public Ad6 Savedata(@RequestBody Ad6 data) { + Ad6 save = Service.Savedata(data) ; + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Ad6/{id}") + public Ad6 update(@RequestBody Ad6 data,@PathVariable Integer id ) { + Ad6 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Ad6/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Ad6") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Ad6") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Ad6/{id}") + public Ad6 getdetailsbyId(@PathVariable Integer id ) { + Ad6 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Ad6/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Ad7Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Ad7Controller.java new file mode 100644 index 0000000..f76af28 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Ad7Controller.java @@ -0,0 +1,113 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Ad7; +import com.realnet.angulardatatype.Services.Ad7Service ; + + +import com.realnet.angulardatatype.Entity.Basicp3; + + +import com.realnet.angulardatatype.Entity.Support; + + +@RequestMapping(value = "/token/Ad7") + @CrossOrigin("*") +@RestController +public class tokenFree_Ad7Controller { + @Autowired + private Ad7Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + @PostMapping("/Ad7") + public Ad7 Savedata(@RequestBody Ad7 data) { + Ad7 save = Service.Savedata(data) ; + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Ad7/{id}") + public Ad7 update(@RequestBody Ad7 data,@PathVariable Integer id ) { + Ad7 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Ad7/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Ad7") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Ad7") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Ad7/{id}") + public Ad7 getdetailsbyId(@PathVariable Integer id ) { + Ad7 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Ad7/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + @PostMapping("/Ad7/Basicp3_insert") + public Basicp3 insertBasicp3(@RequestBody Basicp3 data) { + Basicp3 insertaction = Service.insertBasicp3(data); + return insertaction; + } + + + + @PostMapping("/Ad7/Support_insert") + public Support insertSupport(@RequestBody Support data) { + Support insertaction = Service.insertSupport(data); + return insertaction; + } + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Ad8Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Ad8Controller.java new file mode 100644 index 0000000..bfa3043 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Ad8Controller.java @@ -0,0 +1,131 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Ad8; +import com.realnet.angulardatatype.Services.Ad8Service ; + + +import com.realnet.angulardatatype.Entity.Support; + + +import com.realnet.stpkg.Entity.Childform; + + + + + + +@RequestMapping(value = "/token/Ad8") + @CrossOrigin("*") +@RestController +public class tokenFree_Ad8Controller { + @Autowired + private Ad8Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + @PostMapping("/Ad8") + public Ad8 Savedata(@RequestBody Ad8 data) { + Ad8 save = Service.Savedata(data) ; + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Ad8/{id}") + public Ad8 update(@RequestBody Ad8 data,@PathVariable Integer id ) { + Ad8 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Ad8/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Ad8") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Ad8") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Ad8/{id}") + public Ad8 getdetailsbyId(@PathVariable Integer id ) { + Ad8 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Ad8/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + +@PutMapping("/Ad8/Support_update/{id}") + public ResponseEntity updateSupport(@PathVariable Integer id, @RequestBody Support data) { + ResponseEntity update = Service.updateSupport(id, data); + System.out.println(update + " updateed"); + return update; + } + + + +@PutMapping("/Ad8/Childform_update/{id}") + public ResponseEntity updateChildform(@PathVariable Integer id, @RequestBody Childform data) { + ResponseEntity update = Service.updateChildform(id, data); + System.out.println(update + " updateed"); + return update; + } + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Ad9Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Ad9Controller.java new file mode 100644 index 0000000..e4d563d --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Ad9Controller.java @@ -0,0 +1,91 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Ad9; +import com.realnet.angulardatatype.Services.Ad9Service ; + + + + +@RequestMapping(value = "/token/Ad9") + @CrossOrigin("*") +@RestController +public class tokenFree_Ad9Controller { + @Autowired + private Ad9Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + @PostMapping("/Ad9") + public Ad9 Savedata(@RequestBody Ad9 data) { + Ad9 save = Service.Savedata(data) ; + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Ad9/{id}") + public Ad9 update(@RequestBody Ad9 data,@PathVariable Integer id ) { + Ad9 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Ad9/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Ad9") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Ad9") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Ad9/{id}") + public Ad9 getdetailsbyId(@PathVariable Integer id ) { + Ad9 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Ad9/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Adv1Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Adv1Controller.java new file mode 100644 index 0000000..e495341 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Adv1Controller.java @@ -0,0 +1,171 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Adv1; +import com.realnet.angulardatatype.Services.Adv1Service ; + + + + + + + + + + + + + + + + + + + + + + + + +@RequestMapping(value = "/token/Adv1") + @CrossOrigin("*") +@RestController +public class tokenFree_Adv1Controller { + @Autowired + private Adv1Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + + + + + + + + + + + + + + + @PostMapping("/Adv1") + public Adv1 Savedata(@RequestBody Adv1 data) { + Adv1 save = Service.Savedata(data) ; + + + + + + + + + + + + + + + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Adv1/{id}") + public Adv1 update(@RequestBody Adv1 data,@PathVariable Integer id ) { + Adv1 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Adv1/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Adv1") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Adv1") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Adv1/{id}") + public Adv1 getdetailsbyId(@PathVariable Integer id ) { + Adv1 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Adv1/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Adv3Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Adv3Controller.java new file mode 100644 index 0000000..aa59320 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Adv3Controller.java @@ -0,0 +1,163 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Adv3; +import com.realnet.angulardatatype.Services.Adv3Service ; + + + + + + + + + + + + + + + + + + + + + + +@RequestMapping(value = "/token/Adv3") + @CrossOrigin("*") +@RestController +public class tokenFree_Adv3Controller { + @Autowired + private Adv3Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + + + + + + + + + + + + + @PostMapping("/Adv3") + public Adv3 Savedata(@RequestBody Adv3 data) { + Adv3 save = Service.Savedata(data) ; + + + + + + + + + + + + + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Adv3/{id}") + public Adv3 update(@RequestBody Adv3 data,@PathVariable Integer id ) { + Adv3 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Adv3/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Adv3") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Adv3") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Adv3/{id}") + public Adv3 getdetailsbyId(@PathVariable Integer id ) { + Adv3 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Adv3/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Adv4Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Adv4Controller.java new file mode 100644 index 0000000..5b0fab5 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Adv4Controller.java @@ -0,0 +1,123 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Adv4; +import com.realnet.angulardatatype.Services.Adv4Service ; + + + + + + + + + + + + +@RequestMapping(value = "/token/Adv4") + @CrossOrigin("*") +@RestController +public class tokenFree_Adv4Controller { + @Autowired + private Adv4Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + + + @PostMapping("/Adv4") + public Adv4 Savedata(@RequestBody Adv4 data) { + Adv4 save = Service.Savedata(data) ; + + + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Adv4/{id}") + public Adv4 update(@RequestBody Adv4 data,@PathVariable Integer id ) { + Adv4 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Adv4/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Adv4") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Adv4") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Adv4/{id}") + public Adv4 getdetailsbyId(@PathVariable Integer id ) { + Adv4 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Adv4/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Adv5Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Adv5Controller.java new file mode 100644 index 0000000..9f62704 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Adv5Controller.java @@ -0,0 +1,147 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Adv5; +import com.realnet.angulardatatype.Services.Adv5Service ; + + + + + + + + + + + + + + + + + + +@RequestMapping(value = "/token/Adv5") + @CrossOrigin("*") +@RestController +public class tokenFree_Adv5Controller { + @Autowired + private Adv5Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + + + + + + + + + @PostMapping("/Adv5") + public Adv5 Savedata(@RequestBody Adv5 data) { + Adv5 save = Service.Savedata(data) ; + + + + + + + + + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Adv5/{id}") + public Adv5 update(@RequestBody Adv5 data,@PathVariable Integer id ) { + Adv5 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Adv5/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Adv5") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Adv5") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Adv5/{id}") + public Adv5 getdetailsbyId(@PathVariable Integer id ) { + Adv5 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Adv5/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Basicp1Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Basicp1Controller.java new file mode 100644 index 0000000..e5ce486 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Basicp1Controller.java @@ -0,0 +1,171 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Basicp1; +import com.realnet.angulardatatype.Services.Basicp1Service ; + + + + + + + + + + + + + + + + + + + + + + + + +@RequestMapping(value = "/token/Basicp1") + @CrossOrigin("*") +@RestController +public class tokenFree_Basicp1Controller { + @Autowired + private Basicp1Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + + + + + + + + + + + + + + + @PostMapping("/Basicp1") + public Basicp1 Savedata(@RequestBody Basicp1 data) { + Basicp1 save = Service.Savedata(data) ; + + + + + + + + + + + + + + + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Basicp1/{id}") + public Basicp1 update(@RequestBody Basicp1 data,@PathVariable Integer id ) { + Basicp1 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Basicp1/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Basicp1") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Basicp1") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Basicp1/{id}") + public Basicp1 getdetailsbyId(@PathVariable Integer id ) { + Basicp1 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Basicp1/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Basicp2Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Basicp2Controller.java new file mode 100644 index 0000000..1370e4c --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Basicp2Controller.java @@ -0,0 +1,147 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Basicp2; +import com.realnet.angulardatatype.Services.Basicp2Service ; + + + + + + + + + + + + + + + + + + +@RequestMapping(value = "/token/Basicp2") + @CrossOrigin("*") +@RestController +public class tokenFree_Basicp2Controller { + @Autowired + private Basicp2Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + + + + + + + + + @PostMapping("/Basicp2") + public Basicp2 Savedata(@RequestBody Basicp2 data) { + Basicp2 save = Service.Savedata(data) ; + + + + + + + + + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Basicp2/{id}") + public Basicp2 update(@RequestBody Basicp2 data,@PathVariable Integer id ) { + Basicp2 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Basicp2/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Basicp2") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Basicp2") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Basicp2/{id}") + public Basicp2 getdetailsbyId(@PathVariable Integer id ) { + Basicp2 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Basicp2/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Basicp3Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Basicp3Controller.java new file mode 100644 index 0000000..a44ab5b --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Basicp3Controller.java @@ -0,0 +1,163 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Basicp3; +import com.realnet.angulardatatype.Services.Basicp3Service ; + + + + + + + + + + + + + + + + + + + + + + +@RequestMapping(value = "/token/Basicp3") + @CrossOrigin("*") +@RestController +public class tokenFree_Basicp3Controller { + @Autowired + private Basicp3Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + + + + + + + + + + + + + @PostMapping("/Basicp3") + public Basicp3 Savedata(@RequestBody Basicp3 data) { + Basicp3 save = Service.Savedata(data) ; + + + + + + + + + + + + + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Basicp3/{id}") + public Basicp3 update(@RequestBody Basicp3 data,@PathVariable Integer id ) { + Basicp3 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Basicp3/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Basicp3") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Basicp3") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Basicp3/{id}") + public Basicp3 getdetailsbyId(@PathVariable Integer id ) { + Basicp3 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Basicp3/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_District_ListFilter1Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_District_ListFilter1Controller.java new file mode 100644 index 0000000..dc0afc4 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_District_ListFilter1Controller.java @@ -0,0 +1,24 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import com.realnet.angulardatatype.Entity.District_ListFilter1; +import com.realnet.angulardatatype.Services.District_ListFilter1Service ; +@RequestMapping(value = "/token/District_ListFilter1") +@RestController +public class tokenFree_District_ListFilter1Controller { + + @Autowired + private District_ListFilter1Service Service; + + @GetMapping("/District_ListFilter1") + public List getlist() { + List get = Service.getlistbuilder(); + return get; +} + @GetMapping("/District_ListFilter11/{item}") + public List getlistwithparam( @PathVariable String item) { + List get = Service.getlistbuilderparam( item); + return get; +} +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Dv2Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Dv2Controller.java new file mode 100644 index 0000000..2402cf7 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_Dv2Controller.java @@ -0,0 +1,147 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Dv2; +import com.realnet.angulardatatype.Services.Dv2Service ; + + + + + + + + + + + + + + + + + + +@RequestMapping(value = "/token/Dv2") + @CrossOrigin("*") +@RestController +public class tokenFree_Dv2Controller { + @Autowired + private Dv2Service Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + + + + + + + + + + + @PostMapping("/Dv2") + public Dv2 Savedata(@RequestBody Dv2 data) { + Dv2 save = Service.Savedata(data) ; + + + + + + + + + + + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Dv2/{id}") + public Dv2 update(@RequestBody Dv2 data,@PathVariable Integer id ) { + Dv2 update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Dv2/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Dv2") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Dv2") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Dv2/{id}") + public Dv2 getdetailsbyId(@PathVariable Integer id ) { + Dv2 get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Dv2/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + + + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_State_ListFilter1Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_State_ListFilter1Controller.java new file mode 100644 index 0000000..853ea2a --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_State_ListFilter1Controller.java @@ -0,0 +1,24 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import com.realnet.angulardatatype.Entity.State_ListFilter1; +import com.realnet.angulardatatype.Services.State_ListFilter1Service ; +@RequestMapping(value = "/token/State_ListFilter1") +@RestController +public class tokenFree_State_ListFilter1Controller { + + @Autowired + private State_ListFilter1Service Service; + + @GetMapping("/State_ListFilter1") + public List getlist() { + List get = Service.getlistbuilder(); + return get; +} + @GetMapping("/State_ListFilter11/{item}") + public List getlistwithparam( @PathVariable String item) { + List get = Service.getlistbuilderparam( item); + return get; +} +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_SupportController.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_SupportController.java new file mode 100644 index 0000000..0ab27f2 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Controllers/tokenFree_SupportController.java @@ -0,0 +1,91 @@ +package com.realnet.angulardatatype.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.angulardatatype.Entity.Support; +import com.realnet.angulardatatype.Services.SupportService ; + + + + +@RequestMapping(value = "/token/Support") + @CrossOrigin("*") +@RestController +public class tokenFree_SupportController { + @Autowired + private SupportService Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + @PostMapping("/Support") + public Support Savedata(@RequestBody Support data) { + Support save = Service.Savedata(data) ; + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Support/{id}") + public Support update(@RequestBody Support data,@PathVariable Integer id ) { + Support update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Support/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Support") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Support") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Support/{id}") + public Support getdetailsbyId(@PathVariable Integer id ) { + Support get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Support/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Ad6.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Ad6.java new file mode 100644 index 0000000..d853238 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Ad6.java @@ -0,0 +1,49 @@ +package com.realnet.angulardatatype.Entity; + import lombok.*; +import com.realnet.WhoColumn.Entity.Extension; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + + + + + + + + + + @Entity + @Data + public class Ad6 extends Extension { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + +private String name; + +private String description; + +private String country; +private String countryidentifier; + +private String state; + + + + + +private String district; + + + + + + +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Ad7.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Ad7.java new file mode 100644 index 0000000..71961ec --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Ad7.java @@ -0,0 +1,32 @@ +package com.realnet.angulardatatype.Entity; + import lombok.*; +import com.realnet.WhoColumn.Entity.Extension; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + + + + + + @Entity + @Data + public class Ad7 extends Extension { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + +private String name; + + + + + + +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Ad8.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Ad8.java new file mode 100644 index 0000000..a007abf --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Ad8.java @@ -0,0 +1,42 @@ +package com.realnet.angulardatatype.Entity; + import lombok.*; +import com.realnet.WhoColumn.Entity.Extension; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + + + + + +import com.realnet.stpkg.Entity.Childform; + +import com.realnet.angulardatatype.Entity.Support; + + @Entity + @Data + public class Ad8 extends Extension { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + +private String name; + + + + + +@OneToOne( cascade=CascadeType.ALL) + private Childform childform; + +@OneToMany( cascade=CascadeType.ALL) + private List support = new ArrayList<>(); + + +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Ad9.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Ad9.java new file mode 100644 index 0000000..ea62708 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Ad9.java @@ -0,0 +1,28 @@ +package com.realnet.angulardatatype.Entity; + import lombok.*; +import com.realnet.WhoColumn.Entity.Extension; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + + + + @Entity + @Data + public class Ad9 extends Extension { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + +private String name; + +private String approved_field_status; + + +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Adv1.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Adv1.java new file mode 100644 index 0000000..d873782 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Adv1.java @@ -0,0 +1,98 @@ +package com.realnet.angulardatatype.Entity; + import lombok.*; +import com.realnet.WhoColumn.Entity.Extension; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + + + + + + + + + + + + + + + + + + + + + + + + @Entity + @Data + public class Adv1 extends Extension { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + + private String ismale; + + private String idfemale; + + + + +private Boolean test1; + + + +private Boolean test2; + + + + + + +private Boolean t1; + + + +private Boolean t2; + + + +private Boolean t4; + + + +private String fileupload_fieldname; +private String fileupload_fieldpath ; + +private String fileupload_field2name; +private String fileupload_field2path ; + +private String imageupload_fieldname; +private String imageupload_fieldpath ; + +private String imageupload_field2name; +private String imageupload_field2path ; + +private String audio_fieldname; +private String audio_fieldpath ; + +private String audio_field2name; +private String audio_field2path ; + +private String video_fieldname; +private String video_fieldpath ; + +private String video_field2name; +private String video_field2path ; + + +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Adv3.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Adv3.java new file mode 100644 index 0000000..371be22 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Adv3.java @@ -0,0 +1,66 @@ +package com.realnet.angulardatatype.Entity; + import lombok.*; +import com.realnet.WhoColumn.Entity.Extension; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + + + + + + + + + + + + + + + + + + + + + + @Entity + @Data + public class Adv3 extends Extension { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + + + + + + + +private String country; + +private String state; + +private String stmlit; + +private String stmmlt2; + +private String dy2; +private String dy2identifier; + +private String dy1; +private String dy1identifier; + +private String dymlti1; + +private String dymlt2; + + +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Adv4.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Adv4.java new file mode 100644 index 0000000..e05240b --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Adv4.java @@ -0,0 +1,48 @@ +package com.realnet.angulardatatype.Entity; + import lombok.*; +import com.realnet.WhoColumn.Entity.Extension; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + + + + + + + +import com.realnet.angulardatatype.Entity.Support; + +import com.realnet.stpkg.Entity.Childform; + + @Entity + @Data + public class Adv4 extends Extension { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + +private String atoc; +private String atocidentifier; + +private String atc2; +private String atc2identifier; + +private String atdy1; + +private String atdy2; + +@OneToOne( cascade=CascadeType.ALL) + private Support support; + +@OneToOne( cascade=CascadeType.ALL) + private Childform childform; + + +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Adv5.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Adv5.java new file mode 100644 index 0000000..ed07a91 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Adv5.java @@ -0,0 +1,58 @@ +package com.realnet.angulardatatype.Entity; + import lombok.*; +import com.realnet.WhoColumn.Entity.Extension; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + +import com.realnet.angulardatatype.Entity.Support; + + + + + + + + + + + + + +import com.realnet.stpkg.Entity.Childform; + + @Entity + @Data + public class Adv5 extends Extension { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + +private String name; + +@OneToMany( cascade=CascadeType.ALL) + private List support = new ArrayList<>(); + +private int age; + +private int age2; + +private String addition; + +private String multiplication; + + + + + +@OneToMany( cascade=CascadeType.ALL) + private List childform = new ArrayList<>(); + + +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Basicp1.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Basicp1.java new file mode 100644 index 0000000..75f1105 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Basicp1.java @@ -0,0 +1,77 @@ +package com.realnet.angulardatatype.Entity; + import lombok.*; +import com.realnet.WhoColumn.Entity.Extension; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + + + + + + + + + + + + + + + + + + + + + + + + @Entity + @Data + public class Basicp1 extends Extension { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + +private String name; + +private String name2; + +private int number1; + +private int number2; + + private String phone_number; + + private String phone_number2; + + +@Column(length = 2000) +private String paragraph_field; + + +@Column(length = 2000) +private String paragraph_field2; + +private String password_field; +@Transient +private String confirmpassword_field; + +@Column(length = 2000) +private String textarea; + +@Column(length = 2000) +private String textarea_field; + +@Column(length = 2000) +private String textarea_field2; + + +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Basicp2.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Basicp2.java new file mode 100644 index 0000000..6fb3d3d --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Basicp2.java @@ -0,0 +1,59 @@ +package com.realnet.angulardatatype.Entity; + import lombok.*; +import com.realnet.WhoColumn.Entity.Extension; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + + + + + + + + + + + + + + + + + + @Entity + @Data + public class Basicp2 extends Extension { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + +@Column(length = 2000) +private String about; + +@Column(length = 2000) +private String textarea2; + +private String date_field; + +private String date_field2; + +private String datetime_field; + +private String datetime_field2; + +private String email_field; + +private String email_field2; + + private Long user_id; + private String user_name; + + +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Basicp3.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Basicp3.java new file mode 100644 index 0000000..8ab08b6 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Basicp3.java @@ -0,0 +1,64 @@ +package com.realnet.angulardatatype.Entity; + import lombok.*; +import com.realnet.WhoColumn.Entity.Extension; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + + + + + + + + + + + + + + + + + + + + + + @Entity + @Data + public class Basicp3 extends Extension { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + +private Boolean toggle_switch; + +private Boolean toggle_switch2; + +private String url_field; + +private String url_field2; + + private double decimal_field; + + private double decimal_field2; + +private int percentage_field; + +private int percentage_field2; + +private String documentsequenc; + +private String recaptcha; + +private String recaptcha2; + + +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/District_ListFilter1.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/District_ListFilter1.java new file mode 100644 index 0000000..ec9c429 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/District_ListFilter1.java @@ -0,0 +1,14 @@ +package com.realnet.angulardatatype.Entity; + import lombok.*; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + @Data + public class District_ListFilter1 { + + private Integer id; + + + private String district_name; +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Dv2.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Dv2.java new file mode 100644 index 0000000..1bc2ee2 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Dv2.java @@ -0,0 +1,78 @@ +package com.realnet.angulardatatype.Entity; + import lombok.*; +import com.realnet.WhoColumn.Entity.Extension; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + + + + + + + + + + + + + + + + + + @Entity + @Data + public class Dv2 extends Extension { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + + + + + +private String test3; + + + + +private String name; + + + + +private String last_name; + + + + + + + +private String test; + + + +private String currency; + +private String currency2; + +private String qrcode_field; + +private String qrcode_field2; + +private String barcode_field; + +private String barcode_field2; + + + + +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/State_ListFilter1.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/State_ListFilter1.java new file mode 100644 index 0000000..e74dac0 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/State_ListFilter1.java @@ -0,0 +1,14 @@ +package com.realnet.angulardatatype.Entity; + import lombok.*; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + @Data + public class State_ListFilter1 { + + private Integer id; + + + private String state_name; +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Support.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Support.java new file mode 100644 index 0000000..35edae1 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Entity/Support.java @@ -0,0 +1,29 @@ +package com.realnet.angulardatatype.Entity; + import lombok.*; +import com.realnet.WhoColumn.Entity.Extension; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + + + + @Entity + @Data + public class Support extends Extension { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + +private String name; + +@Column(length = 2000) +private String description; + + +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Ad6Repository.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Ad6Repository.java new file mode 100644 index 0000000..ec45c66 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Ad6Repository.java @@ -0,0 +1,34 @@ +package com.realnet.angulardatatype.Repository; + + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import org.springframework.stereotype.Repository; +import java.util.*; + + + + + + + + + + + + + +import com.realnet.angulardatatype.Entity.Ad6; + +@Repository +public interface Ad6Repository extends JpaRepository { + +@Query(value = "select * from ad6 where created_by=?1", nativeQuery = true) + List findAll(Long creayedBy); + +@Query(value = "select * from ad6 where created_by=?1", nativeQuery = true) + Page findAll( Long creayedBy,Pageable page); +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Ad7Repository.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Ad7Repository.java new file mode 100644 index 0000000..311a792 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Ad7Repository.java @@ -0,0 +1,30 @@ +package com.realnet.angulardatatype.Repository; + + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import org.springframework.stereotype.Repository; +import java.util.*; + + + + + + + + + +import com.realnet.angulardatatype.Entity.Ad7; + +@Repository +public interface Ad7Repository extends JpaRepository { + +@Query(value = "select * from ad7 where created_by=?1", nativeQuery = true) + List findAll(Long creayedBy); + +@Query(value = "select * from ad7 where created_by=?1", nativeQuery = true) + Page findAll( Long creayedBy,Pageable page); +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Ad8Repository.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Ad8Repository.java new file mode 100644 index 0000000..c971ea4 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Ad8Repository.java @@ -0,0 +1,34 @@ +package com.realnet.angulardatatype.Repository; + + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import org.springframework.stereotype.Repository; +import java.util.*; + + + + + + + + + + + + + +import com.realnet.angulardatatype.Entity.Ad8; + +@Repository +public interface Ad8Repository extends JpaRepository { + +@Query(value = "select * from ad8 where created_by=?1", nativeQuery = true) + List findAll(Long creayedBy); + +@Query(value = "select * from ad8 where created_by=?1", nativeQuery = true) + Page findAll( Long creayedBy,Pageable page); +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Ad9Repository.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Ad9Repository.java new file mode 100644 index 0000000..b2302f5 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Ad9Repository.java @@ -0,0 +1,28 @@ +package com.realnet.angulardatatype.Repository; + + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import org.springframework.stereotype.Repository; +import java.util.*; + + + + + + + +import com.realnet.angulardatatype.Entity.Ad9; + +@Repository +public interface Ad9Repository extends JpaRepository { + +@Query(value = "select * from ad9 where created_by=?1", nativeQuery = true) + List findAll(Long creayedBy); + +@Query(value = "select * from ad9 where created_by=?1", nativeQuery = true) + Page findAll( Long creayedBy,Pageable page); +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Adv1Repository.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Adv1Repository.java new file mode 100644 index 0000000..50436d6 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Adv1Repository.java @@ -0,0 +1,48 @@ +package com.realnet.angulardatatype.Repository; + + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import org.springframework.stereotype.Repository; +import java.util.*; + + + + + + + + + + + + + + + + + + + + + + + + + + + +import com.realnet.angulardatatype.Entity.Adv1; + +@Repository +public interface Adv1Repository extends JpaRepository { + +@Query(value = "select * from adv1 where created_by=?1", nativeQuery = true) + List findAll(Long creayedBy); + +@Query(value = "select * from adv1 where created_by=?1", nativeQuery = true) + Page findAll( Long creayedBy,Pageable page); +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Adv3Repository.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Adv3Repository.java new file mode 100644 index 0000000..3712ebb --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Adv3Repository.java @@ -0,0 +1,46 @@ +package com.realnet.angulardatatype.Repository; + + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import org.springframework.stereotype.Repository; +import java.util.*; + + + + + + + + + + + + + + + + + + + + + + + + + +import com.realnet.angulardatatype.Entity.Adv3; + +@Repository +public interface Adv3Repository extends JpaRepository { + +@Query(value = "select * from adv3 where created_by=?1", nativeQuery = true) + List findAll(Long creayedBy); + +@Query(value = "select * from adv3 where created_by=?1", nativeQuery = true) + Page findAll( Long creayedBy,Pageable page); +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Adv4Repository.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Adv4Repository.java new file mode 100644 index 0000000..65cb947 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Adv4Repository.java @@ -0,0 +1,36 @@ +package com.realnet.angulardatatype.Repository; + + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import org.springframework.stereotype.Repository; +import java.util.*; + + + + + + + + + + + + + + + +import com.realnet.angulardatatype.Entity.Adv4; + +@Repository +public interface Adv4Repository extends JpaRepository { + +@Query(value = "select * from adv4 where created_by=?1", nativeQuery = true) + List findAll(Long creayedBy); + +@Query(value = "select * from adv4 where created_by=?1", nativeQuery = true) + Page findAll( Long creayedBy,Pageable page); +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Adv5Repository.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Adv5Repository.java new file mode 100644 index 0000000..749a768 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Adv5Repository.java @@ -0,0 +1,42 @@ +package com.realnet.angulardatatype.Repository; + + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import org.springframework.stereotype.Repository; +import java.util.*; + + + + + + + + + + + + + + + + + + + + + +import com.realnet.angulardatatype.Entity.Adv5; + +@Repository +public interface Adv5Repository extends JpaRepository { + +@Query(value = "select * from adv5 where created_by=?1", nativeQuery = true) + List findAll(Long creayedBy); + +@Query(value = "select * from adv5 where created_by=?1", nativeQuery = true) + Page findAll( Long creayedBy,Pageable page); +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Basicp1Repository.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Basicp1Repository.java new file mode 100644 index 0000000..fd659f8 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Basicp1Repository.java @@ -0,0 +1,48 @@ +package com.realnet.angulardatatype.Repository; + + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import org.springframework.stereotype.Repository; +import java.util.*; + + + + + + + + + + + + + + + + + + + + + + + + + + + +import com.realnet.angulardatatype.Entity.Basicp1; + +@Repository +public interface Basicp1Repository extends JpaRepository { + +@Query(value = "select * from basicp1 where created_by=?1", nativeQuery = true) + List findAll(Long creayedBy); + +@Query(value = "select * from basicp1 where created_by=?1", nativeQuery = true) + Page findAll( Long creayedBy,Pageable page); +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Basicp2Repository.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Basicp2Repository.java new file mode 100644 index 0000000..d0a7f01 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Basicp2Repository.java @@ -0,0 +1,42 @@ +package com.realnet.angulardatatype.Repository; + + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import org.springframework.stereotype.Repository; +import java.util.*; + + + + + + + + + + + + + + + + + + + + + +import com.realnet.angulardatatype.Entity.Basicp2; + +@Repository +public interface Basicp2Repository extends JpaRepository { + +@Query(value = "select * from basicp2 where created_by=?1", nativeQuery = true) + List findAll(Long creayedBy); + +@Query(value = "select * from basicp2 where created_by=?1", nativeQuery = true) + Page findAll( Long creayedBy,Pageable page); +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Basicp3Repository.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Basicp3Repository.java new file mode 100644 index 0000000..29d7f24 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Basicp3Repository.java @@ -0,0 +1,46 @@ +package com.realnet.angulardatatype.Repository; + + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import org.springframework.stereotype.Repository; +import java.util.*; + + + + + + + + + + + + + + + + + + + + + + + + + +import com.realnet.angulardatatype.Entity.Basicp3; + +@Repository +public interface Basicp3Repository extends JpaRepository { + +@Query(value = "select * from basicp3 where created_by=?1", nativeQuery = true) + List findAll(Long creayedBy); + +@Query(value = "select * from basicp3 where created_by=?1", nativeQuery = true) + Page findAll( Long creayedBy,Pageable page); +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Dv2Repository.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Dv2Repository.java new file mode 100644 index 0000000..87bb9d8 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/Dv2Repository.java @@ -0,0 +1,42 @@ +package com.realnet.angulardatatype.Repository; + + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import org.springframework.stereotype.Repository; +import java.util.*; + + + + + + + + + + + + + + + + + + + + + +import com.realnet.angulardatatype.Entity.Dv2; + +@Repository +public interface Dv2Repository extends JpaRepository { + +@Query(value = "select * from dv2 where created_by=?1", nativeQuery = true) + List findAll(Long creayedBy); + +@Query(value = "select * from dv2 where created_by=?1", nativeQuery = true) + Page findAll( Long creayedBy,Pageable page); +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/SupportRepository.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/SupportRepository.java new file mode 100644 index 0000000..d3049f4 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Repository/SupportRepository.java @@ -0,0 +1,28 @@ +package com.realnet.angulardatatype.Repository; + + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import org.springframework.stereotype.Repository; +import java.util.*; + + + + + + + +import com.realnet.angulardatatype.Entity.Support; + +@Repository +public interface SupportRepository extends JpaRepository { + +@Query(value = "select * from support where created_by=?1", nativeQuery = true) + List findAll(Long creayedBy); + +@Query(value = "select * from support where created_by=?1", nativeQuery = true) + Page findAll( Long creayedBy,Pageable page); +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Ad6Service.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Ad6Service.java new file mode 100644 index 0000000..d3ef3bb --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Ad6Service.java @@ -0,0 +1,142 @@ +package com.realnet.angulardatatype.Services; +import com.realnet.angulardatatype.Repository.Ad6Repository; +import com.realnet.angulardatatype.Entity.Ad6 +;import java.util.*; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.SequenceGenerator.Service.SequenceService; +import org.springframework.data.domain.Page; +import com.realnet.realm.Entity.Realm; +import com.realnet.realm.Services.RealmService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.*; +import com.realnet.users.service1.AppUserServiceImpl; +import com.realnet.users.entity1.AppUser; + + + + +import com.realnet.testdata.Entity.Country; +import com.realnet.testdata.Services.CountryService; + + + + + + + + import org.springframework.stereotype.Service; + +@Service + public class Ad6Service { +@Autowired +private Ad6Repository Repository; + @Autowired + private AppUserServiceImpl userService; +@Autowired + private RealmService realmService; + + + +@Autowired + private CountryService countryserv; + + + + + +public Ad6 Savedata(Ad6 data) { + + + + + + +if (data.getCountry() != null) { + try { + int countryId = Integer.valueOf(data.getCountry()); +Country get = countryserv.getdetailsbyId(countryId); + if (get != null) { + + data.setCountryidentifier(get.getName()); +} +} catch (NumberFormatException e) { + System.out.println(" countryId is not integer.."); + // Invalid integer string — ignore or log +data.setCountryidentifier(data.getCountry()); + } + + } + + + + + + + + + data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); +Ad6 save = Repository.save(data); + return save; + } + + +// get all with pagination + public Page getAllWithPagination(Pageable page) { + return Repository.findAll( getUser().getUserId(),page); + } +public List getdetails() { + List realm = realmService.findByUserId(getUser().getUserId()); +List all = Repository.findAll(getUser().getUserId()); + + return all ; } + + +public Ad6 getdetailsbyId(Integer id) { + return Repository.findById(id).get(); + } + + + public void delete_by_id(Integer id) { + Repository.deleteById(id); +} + + +public Ad6 update(Ad6 data,Integer id) { + Ad6 old = Repository.findById(id).get(); +old.setName(data.getName()); + +old.setDescription(data.getDescription()); + +old.setCountry(data.getCountry()); + +old.setState(data.getState()); + + + + +old.setDistrict(data.getDistrict()); + + + + +final Ad6 test = Repository.save(old); + data.setUpdatedBy(getUser().getUserId()); + return test;} + + + + + + + + + + + public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Ad7Service.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Ad7Service.java new file mode 100644 index 0000000..9df2f15 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Ad7Service.java @@ -0,0 +1,129 @@ +package com.realnet.angulardatatype.Services; +import com.realnet.angulardatatype.Repository.Ad7Repository; +import com.realnet.angulardatatype.Entity.Ad7 +;import java.util.*; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.SequenceGenerator.Service.SequenceService; +import org.springframework.data.domain.Page; +import com.realnet.realm.Entity.Realm; +import com.realnet.realm.Services.RealmService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.*; +import com.realnet.users.service1.AppUserServiceImpl; +import com.realnet.users.entity1.AppUser; + + +import com.realnet.angulardatatype.Entity.Basicp3; + +import com.realnet.angulardatatype.Repository.Basicp3Repository; + + +import com.realnet.angulardatatype.Entity.Support; + +import com.realnet.angulardatatype.Repository.SupportRepository; + + + import org.springframework.stereotype.Service; + +@Service + public class Ad7Service { +@Autowired +private Ad7Repository Repository; + @Autowired + private AppUserServiceImpl userService; +@Autowired + private RealmService realmService; + + + + + +public Ad7 Savedata(Ad7 data) { + + + + + + + data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); +Ad7 save = Repository.save(data); + return save; + } + + +// get all with pagination + public Page getAllWithPagination(Pageable page) { + return Repository.findAll( getUser().getUserId(),page); + } +public List getdetails() { + List realm = realmService.findByUserId(getUser().getUserId()); +List all = Repository.findAll(getUser().getUserId()); + + return all ; } + + +public Ad7 getdetailsbyId(Integer id) { + return Repository.findById(id).get(); + } + + + public void delete_by_id(Integer id) { + Repository.deleteById(id); +} + + +public Ad7 update(Ad7 data,Integer id) { + Ad7 old = Repository.findById(id).get(); +old.setName(data.getName()); + + + + + +final Ad7 test = Repository.save(old); + data.setUpdatedBy(getUser().getUserId()); + return test;} + + + +// Insert Action + + @Autowired + private Basicp3Repository basicp3insertrepository; + +public Basicp3 insertBasicp3(Basicp3 data) { + +data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); + + + final Basicp3 save = basicp3insertrepository.save(data); + return save; + } + + +// Insert Action + + @Autowired + private SupportRepository supportinsertrepository; + +public Support insertSupport(Support data) { + +data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); + + + final Support save = supportinsertrepository.save(data); + return save; + } + + public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Ad8Service.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Ad8Service.java new file mode 100644 index 0000000..fc04042 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Ad8Service.java @@ -0,0 +1,185 @@ +package com.realnet.angulardatatype.Services; +import com.realnet.angulardatatype.Repository.Ad8Repository; +import com.realnet.angulardatatype.Entity.Ad8 +;import java.util.*; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.SequenceGenerator.Service.SequenceService; +import org.springframework.data.domain.Page; +import com.realnet.realm.Entity.Realm; +import com.realnet.realm.Services.RealmService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.*; +import com.realnet.users.service1.AppUserServiceImpl; +import com.realnet.users.entity1.AppUser; + + +import com.realnet.angulardatatype.Entity.Support; + +import com.realnet.angulardatatype.Repository.SupportRepository; + + +import com.realnet.stpkg.Entity.Childform; + +import com.realnet.stpkg.Repository.ChildformRepository; + + + + + + + import org.springframework.stereotype.Service; + +@Service + public class Ad8Service { +@Autowired +private Ad8Repository Repository; + @Autowired + private AppUserServiceImpl userService; +@Autowired + private RealmService realmService; + + + + + + + + + +public Ad8 Savedata(Ad8 data) { + + + + + + + + + + + data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); +Ad8 save = Repository.save(data); + return save; + } + + +// get all with pagination + public Page getAllWithPagination(Pageable page) { + return Repository.findAll( getUser().getUserId(),page); + } +public List getdetails() { + List realm = realmService.findByUserId(getUser().getUserId()); +List all = Repository.findAll(getUser().getUserId()); + + return all ; } + + +public Ad8 getdetailsbyId(Integer id) { + return Repository.findById(id).get(); + } + + + public void delete_by_id(Integer id) { + Repository.deleteById(id); +} + + +public Ad8 update(Ad8 data,Integer id) { + Ad8 old = Repository.findById(id).get(); +old.setName(data.getName()); + + + + + +old.setChildform(data.getChildform()); + +old.setSupport(data.getSupport()); + +final Ad8 test = Repository.save(old); + data.setUpdatedBy(getUser().getUserId()); + return test;} + + + +// update Action + + @Autowired + private SupportRepository supportupdaterepository; + + + public ResponseEntity updateSupport(Integer id, Support data) { + Integer i = 0; + Ad8 s = Repository.findById(id).get(); + + List list = new ArrayList<>(); + + Object supportObject = s.getSupport(); + + if (supportObject instanceof List) { + // If it's a list, cast and add all elements to the list + list.addAll((List) supportObject); + } else if (supportObject instanceof Support) { + // If it's a single Support object, add it to the list + list.add((Support) supportObject); + } + + + for (Support li : list) { + Support old = supportupdaterepository.findById(li.getId()).get(); + + + + final Support supportdata = supportupdaterepository.save(old); + i++; + } + return new ResponseEntity<>(i + " updated", HttpStatus.OK); + } + + +// update Action + + @Autowired + private ChildformRepository childformupdaterepository; + + + public ResponseEntity updateChildform(Integer id, Childform data) { + Integer i = 0; + Ad8 s = Repository.findById(id).get(); + + List list = new ArrayList<>(); + + Object childformObject = s.getChildform(); + + if (childformObject instanceof List) { + // If it's a list, cast and add all elements to the list + list.addAll((List) childformObject); + } else if (childformObject instanceof Childform) { + // If it's a single Childform object, add it to the list + list.add((Childform) childformObject); + } + + + for (Childform li : list) { + Childform old = childformupdaterepository.findById(li.getId()).get(); + + + + final Childform childformdata = childformupdaterepository.save(old); + i++; + } + return new ResponseEntity<>(i + " updated", HttpStatus.OK); + } + + + + + + public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Ad9Service.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Ad9Service.java new file mode 100644 index 0000000..f9abbbb --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Ad9Service.java @@ -0,0 +1,83 @@ +package com.realnet.angulardatatype.Services; +import com.realnet.angulardatatype.Repository.Ad9Repository; +import com.realnet.angulardatatype.Entity.Ad9 +;import java.util.*; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.SequenceGenerator.Service.SequenceService; +import org.springframework.data.domain.Page; +import com.realnet.realm.Entity.Realm; +import com.realnet.realm.Services.RealmService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.*; +import com.realnet.users.service1.AppUserServiceImpl; +import com.realnet.users.entity1.AppUser; + + + + + import org.springframework.stereotype.Service; + +@Service + public class Ad9Service { +@Autowired +private Ad9Repository Repository; + @Autowired + private AppUserServiceImpl userService; +@Autowired + private RealmService realmService; + + + +public Ad9 Savedata(Ad9 data) { + + + + + data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); +Ad9 save = Repository.save(data); + return save; + } + + +// get all with pagination + public Page getAllWithPagination(Pageable page) { + return Repository.findAll( getUser().getUserId(),page); + } +public List getdetails() { + List realm = realmService.findByUserId(getUser().getUserId()); +List all = Repository.findAll(getUser().getUserId()); + + return all ; } + + +public Ad9 getdetailsbyId(Integer id) { + return Repository.findById(id).get(); + } + + + public void delete_by_id(Integer id) { + Repository.deleteById(id); +} + + +public Ad9 update(Ad9 data,Integer id) { + Ad9 old = Repository.findById(id).get(); +old.setName(data.getName()); + +old.setApproved_field_status(data.getApproved_field_status()); + +final Ad9 test = Repository.save(old); + data.setUpdatedBy(getUser().getUserId()); + return test;} + + + + + public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Adv1Service.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Adv1Service.java new file mode 100644 index 0000000..8919aaa --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Adv1Service.java @@ -0,0 +1,207 @@ +package com.realnet.angulardatatype.Services; +import com.realnet.angulardatatype.Repository.Adv1Repository; +import com.realnet.angulardatatype.Entity.Adv1 +;import java.util.*; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.SequenceGenerator.Service.SequenceService; +import org.springframework.data.domain.Page; +import com.realnet.realm.Entity.Realm; +import com.realnet.realm.Services.RealmService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.*; +import com.realnet.users.service1.AppUserServiceImpl; +import com.realnet.users.entity1.AppUser; + + + + + + + + + + + + + + + + + + + + + + + + + import org.springframework.stereotype.Service; + +@Service + public class Adv1Service { +@Autowired +private Adv1Repository Repository; + @Autowired + private AppUserServiceImpl userService; +@Autowired + private RealmService realmService; + + + + + + + + + + + + + + + + + + + + + + + +public Adv1 Savedata(Adv1 data) { + + + + + + + + + + + + + + + + + + + + + + + + + data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); +Adv1 save = Repository.save(data); + return save; + } + + +// get all with pagination + public Page getAllWithPagination(Pageable page) { + return Repository.findAll( getUser().getUserId(),page); + } +public List getdetails() { + List realm = realmService.findByUserId(getUser().getUserId()); +List all = Repository.findAll(getUser().getUserId()); + + return all ; } + + +public Adv1 getdetailsbyId(Integer id) { + return Repository.findById(id).get(); + } + + + public void delete_by_id(Integer id) { + Repository.deleteById(id); +} + + +public Adv1 update(Adv1 data,Integer id) { + Adv1 old = Repository.findById(id).get(); +old.setIsmale(data.getIsmale()); + +old.setIdfemale(data.getIdfemale()); + + + +old.setTest1(data.getTest1()); + + + +old.setTest2(data.getTest2()); + + + + + + + +old.setT1(data.getT1()); + + + +old.setT2(data.getT2()); + + + +old.setT4(data.getT4()); + + + + + + + + + + + + + + + + + + + + + +final Adv1 test = Repository.save(old); + data.setUpdatedBy(getUser().getUserId()); + return test;} + + + + + + + + + + + + + + + + + + + + + + + + + public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Adv3Service.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Adv3Service.java new file mode 100644 index 0000000..f2d12c6 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Adv3Service.java @@ -0,0 +1,236 @@ +package com.realnet.angulardatatype.Services; +import com.realnet.angulardatatype.Repository.Adv3Repository; +import com.realnet.angulardatatype.Entity.Adv3 +;import java.util.*; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.SequenceGenerator.Service.SequenceService; +import org.springframework.data.domain.Page; +import com.realnet.realm.Entity.Realm; +import com.realnet.realm.Services.RealmService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.*; +import com.realnet.users.service1.AppUserServiceImpl; +import com.realnet.users.entity1.AppUser; + + + + +import com.realnet.config.EmailService; + + + + + + + + + + +import com.realnet.testdata.Entity.Country; +import com.realnet.testdata.Services.CountryService; + + + +import com.realnet.testdata.Entity.Country; +import com.realnet.testdata.Services.CountryService; + + + + + + + + import org.springframework.stereotype.Service; + +@Service + public class Adv3Service { +@Autowired +private Adv3Repository Repository; + @Autowired + private AppUserServiceImpl userService; +@Autowired + private RealmService realmService; + + + +@Autowired + private EmailService emailServicedynamic; + + + + + + + + + +@Autowired + private CountryService dy2serv; + +@Autowired + private CountryService dy1serv; + + + + + +public Adv3 Savedata(Adv3 data) { + + + + + + + +try + { + + // emailServicedynamic.sendEmail( "gaurav_dekatc_com","Adv3", "testing"); + emailServicedynamic.sendEmailViaSetu( "gaurav_dekatc_com","testing","","ganesh"); + +} catch (Exception e) { + // TODO: handle exception + System.out.println("Got error During Mail Send " + e); + } + + + + + + + + + + + + + + +if (data.getDy2() != null) { + try { + int dy2Id = Integer.valueOf(data.getDy2()); +Country get = dy2serv.getdetailsbyId(dy2Id); + if (get != null) { + + data.setDy2identifier(get.getName()); +} +} catch (NumberFormatException e) { + System.out.println(" dy2Id is not integer.."); + // Invalid integer string — ignore or log +data.setDy2identifier(data.getDy2()); + } + + } + + + + + + +if (data.getDy1() != null) { + try { + int dy1Id = Integer.valueOf(data.getDy1()); +Country get = dy1serv.getdetailsbyId(dy1Id); + if (get != null) { + + data.setDy1identifier(get.getDescription()); +} +} catch (NumberFormatException e) { + System.out.println(" dy1Id is not integer.."); + // Invalid integer string — ignore or log +data.setDy1identifier(data.getDy1()); + } + + } + + + + + + + + + data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); +Adv3 save = Repository.save(data); + return save; + } + + +// get all with pagination + public Page getAllWithPagination(Pageable page) { + return Repository.findAll( getUser().getUserId(),page); + } +public List getdetails() { + List realm = realmService.findByUserId(getUser().getUserId()); +List all = Repository.findAll(getUser().getUserId()); + + return all ; } + + +public Adv3 getdetailsbyId(Integer id) { + return Repository.findById(id).get(); + } + + + public void delete_by_id(Integer id) { + Repository.deleteById(id); +} + + +public Adv3 update(Adv3 data,Integer id) { + Adv3 old = Repository.findById(id).get(); + + + + + + +old.setCountry(data.getCountry()); + +old.setState(data.getState()); + +old.setStmlit(data.getStmlit()); + +old.setStmmlt2(data.getStmmlt2()); + +old.setDy2(data.getDy2()); + +old.setDy1(data.getDy1()); + +old.setDymlti1(data.getDymlti1()); + +old.setDymlt2(data.getDymlt2()); + +final Adv3 test = Repository.save(old); + data.setUpdatedBy(getUser().getUserId()); + return test;} + + + + + + + + + + + + + + + + + + + + + + + public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Adv4Service.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Adv4Service.java new file mode 100644 index 0000000..76f60ee --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Adv4Service.java @@ -0,0 +1,171 @@ +package com.realnet.angulardatatype.Services; +import com.realnet.angulardatatype.Repository.Adv4Repository; +import com.realnet.angulardatatype.Entity.Adv4 +;import java.util.*; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.SequenceGenerator.Service.SequenceService; +import org.springframework.data.domain.Page; +import com.realnet.realm.Entity.Realm; +import com.realnet.realm.Services.RealmService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.*; +import com.realnet.users.service1.AppUserServiceImpl; +import com.realnet.users.entity1.AppUser; +import com.realnet.testdata.Entity.Country; +import com.realnet.testdata.Services.CountryService; + + + +import com.realnet.testdata.Entity.Country; +import com.realnet.testdata.Services.CountryService; + + + + + + + + + + + + import org.springframework.stereotype.Service; + +@Service + public class Adv4Service { +@Autowired +private Adv4Repository Repository; + @Autowired + private AppUserServiceImpl userService; +@Autowired + private RealmService realmService;@Autowired + private CountryService atocserv; + +@Autowired + private CountryService atc2serv; + + + + + + + + + +public Adv4 Savedata(Adv4 data) { + + +if (data.getAtoc() != null) { + try { + int atocId = Integer.valueOf(data.getAtoc()); +Country get = atocserv.getdetailsbyId(atocId); + if (get != null) { + + data.setAtocidentifier(get.getName()); +} +} catch (NumberFormatException e) { + System.out.println(" atocId is not integer.."); + // Invalid integer string — ignore or log +data.setAtocidentifier(data.getAtoc()); + + } + + } + + + + + + +if (data.getAtc2() != null) { + try { + int atc2Id = Integer.valueOf(data.getAtc2()); +Country get = atc2serv.getdetailsbyId(atc2Id); + if (get != null) { + + data.setAtc2identifier(get.getName()); +} +} catch (NumberFormatException e) { + System.out.println(" atc2Id is not integer.."); + // Invalid integer string — ignore or log +data.setAtc2identifier(data.getAtc2()); + + } + + } + + + + + + + + + + + + + data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); +Adv4 save = Repository.save(data); + return save; + } + + +// get all with pagination + public Page getAllWithPagination(Pageable page) { + return Repository.findAll( getUser().getUserId(),page); + } +public List getdetails() { + List realm = realmService.findByUserId(getUser().getUserId()); +List all = Repository.findAll(getUser().getUserId()); + + return all ; } + + +public Adv4 getdetailsbyId(Integer id) { + return Repository.findById(id).get(); + } + + + public void delete_by_id(Integer id) { + Repository.deleteById(id); +} + + +public Adv4 update(Adv4 data,Integer id) { + Adv4 old = Repository.findById(id).get(); +old.setAtoc(data.getAtoc()); + +old.setAtc2(data.getAtc2()); + +old.setAtdy1(data.getAtdy1()); + +old.setAtdy2(data.getAtdy2()); + +old.setSupport(data.getSupport()); + +old.setChildform(data.getChildform()); + +final Adv4 test = Repository.save(old); + data.setUpdatedBy(getUser().getUserId()); + return test;} + + + + + + + + + + + + + public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Adv5Service.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Adv5Service.java new file mode 100644 index 0000000..73a84bb --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Adv5Service.java @@ -0,0 +1,153 @@ +package com.realnet.angulardatatype.Services; +import com.realnet.angulardatatype.Repository.Adv5Repository; +import com.realnet.angulardatatype.Entity.Adv5 +;import java.util.*; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.SequenceGenerator.Service.SequenceService; +import org.springframework.data.domain.Page; +import com.realnet.realm.Entity.Realm; +import com.realnet.realm.Services.RealmService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.*; +import com.realnet.users.service1.AppUserServiceImpl; +import com.realnet.users.entity1.AppUser; + + + + + + + + + + + + + + + + + + + import org.springframework.stereotype.Service; + +@Service + public class Adv5Service { +@Autowired +private Adv5Repository Repository; + @Autowired + private AppUserServiceImpl userService; +@Autowired + private RealmService realmService; + + + + + + + + + + + + + + + + + +public Adv5 Savedata(Adv5 data) { + + + + + + + + + + + + + + + + + + + data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); +Adv5 save = Repository.save(data); + return save; + } + + +// get all with pagination + public Page getAllWithPagination(Pageable page) { + return Repository.findAll( getUser().getUserId(),page); + } +public List getdetails() { + List realm = realmService.findByUserId(getUser().getUserId()); +List all = Repository.findAll(getUser().getUserId()); + + return all ; } + + +public Adv5 getdetailsbyId(Integer id) { + return Repository.findById(id).get(); + } + + + public void delete_by_id(Integer id) { + Repository.deleteById(id); +} + + +public Adv5 update(Adv5 data,Integer id) { + Adv5 old = Repository.findById(id).get(); +old.setName(data.getName()); + +old.setSupport(data.getSupport()); + +old.setAge(data.getAge()); + +old.setAge2(data.getAge2()); + +old.setAddition(data.getAddition()); + +old.setMultiplication(data.getMultiplication()); + + + + + +old.setChildform(data.getChildform()); + +final Adv5 test = Repository.save(old); + data.setUpdatedBy(getUser().getUserId()); + return test;} + + + + + + + + + + + + + + + + + + + public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Basicp1Service.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Basicp1Service.java new file mode 100644 index 0000000..7db69c0 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Basicp1Service.java @@ -0,0 +1,183 @@ +package com.realnet.angulardatatype.Services; +import com.realnet.angulardatatype.Repository.Basicp1Repository; +import com.realnet.angulardatatype.Entity.Basicp1 +;import java.util.*; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.SequenceGenerator.Service.SequenceService; +import org.springframework.data.domain.Page; +import com.realnet.realm.Entity.Realm; +import com.realnet.realm.Services.RealmService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.*; +import com.realnet.users.service1.AppUserServiceImpl; +import com.realnet.users.entity1.AppUser; + + + + + + + + + + + + + + + + + + + + + + + + + import org.springframework.stereotype.Service; + +@Service + public class Basicp1Service { +@Autowired +private Basicp1Repository Repository; + @Autowired + private AppUserServiceImpl userService; +@Autowired + private RealmService realmService; + + + + + + + + + + + + + + + + + + + + + + + +public Basicp1 Savedata(Basicp1 data) { + + + + + + + + + + + + + + + + + + + + + + + + + data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); +Basicp1 save = Repository.save(data); + return save; + } + + +// get all with pagination + public Page getAllWithPagination(Pageable page) { + return Repository.findAll( getUser().getUserId(),page); + } +public List getdetails() { + List realm = realmService.findByUserId(getUser().getUserId()); +List all = Repository.findAll(getUser().getUserId()); + + return all ; } + + +public Basicp1 getdetailsbyId(Integer id) { + return Repository.findById(id).get(); + } + + + public void delete_by_id(Integer id) { + Repository.deleteById(id); +} + + +public Basicp1 update(Basicp1 data,Integer id) { + Basicp1 old = Repository.findById(id).get(); +old.setName(data.getName()); + +old.setName2(data.getName2()); + +old.setNumber1(data.getNumber1()); + +old.setNumber2(data.getNumber2()); + +old.setPhone_number(data.getPhone_number()); + +old.setPhone_number2(data.getPhone_number2()); + +old.setParagraph_field(data.getParagraph_field()); + +old.setParagraph_field2(data.getParagraph_field2()); + +old.setPassword_field(data.getPassword_field()); + +old.setTextarea(data.getTextarea()); + +old.setTextarea_field(data.getTextarea_field()); + +old.setTextarea_field2(data.getTextarea_field2()); + +final Basicp1 test = Repository.save(old); + data.setUpdatedBy(getUser().getUserId()); + return test;} + + + + + + + + + + + + + + + + + + + + + + + + + public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Basicp2Service.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Basicp2Service.java new file mode 100644 index 0000000..be91c5f --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Basicp2Service.java @@ -0,0 +1,154 @@ +package com.realnet.angulardatatype.Services; +import com.realnet.angulardatatype.Repository.Basicp2Repository; +import com.realnet.angulardatatype.Entity.Basicp2 +;import java.util.*; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.SequenceGenerator.Service.SequenceService; +import org.springframework.data.domain.Page; +import com.realnet.realm.Entity.Realm; +import com.realnet.realm.Services.RealmService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.*; +import com.realnet.users.service1.AppUserServiceImpl; +import com.realnet.users.entity1.AppUser; + + + + + + + + + + + + + + + + + + + import org.springframework.stereotype.Service; + +@Service + public class Basicp2Service { +@Autowired +private Basicp2Repository Repository; + @Autowired + private AppUserServiceImpl userService; +@Autowired + private RealmService realmService; + + + + + + + + + + + + + + + + + +public Basicp2 Savedata(Basicp2 data) { + + + + + + + + + + + + + + + + +data.setUser_id(getUser().getUserId()); + data.setUser_name(getUser().getFullName()); + + data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); +Basicp2 save = Repository.save(data); + return save; + } + + +// get all with pagination + public Page getAllWithPagination(Pageable page) { + return Repository.findAll( getUser().getUserId(),page); + } +public List getdetails() { + List realm = realmService.findByUserId(getUser().getUserId()); +List all = Repository.findAll(getUser().getUserId()); + + return all ; } + + +public Basicp2 getdetailsbyId(Integer id) { + return Repository.findById(id).get(); + } + + + public void delete_by_id(Integer id) { + Repository.deleteById(id); +} + + +public Basicp2 update(Basicp2 data,Integer id) { + Basicp2 old = Repository.findById(id).get(); +old.setAbout(data.getAbout()); + +old.setTextarea2(data.getTextarea2()); + +old.setDate_field(data.getDate_field()); + +old.setDate_field2(data.getDate_field2()); + +old.setDatetime_field(data.getDatetime_field()); + +old.setDatetime_field2(data.getDatetime_field2()); + +old.setEmail_field(data.getEmail_field()); + +old.setEmail_field2(data.getEmail_field2()); + + + +final Basicp2 test = Repository.save(old); + data.setUpdatedBy(getUser().getUserId()); + return test;} + + + + + + + + + + + + + + + + + + + public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Basicp3InsertService2.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Basicp3InsertService2.java new file mode 100644 index 0000000..0d79fa2 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Basicp3InsertService2.java @@ -0,0 +1,31 @@ +package com.realnet.angulardatatype.Services; +import com.realnet.angulardatatype.Repository.Basicp3Repository; +import com.realnet.angulardatatype.Entity.Basicp3; + import java.util.List; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.stereotype.Service; + +@Service + public class Basicp3InsertService2 { +@Autowired +private Basicp3Repository Repository; +@Autowired + private AppUserServiceImpl userService; + + +public Basicp3 insertaction(Basicp3 basicp3 ) { + + + basicp3.setUpdatedBy(getUser().getUserId()); + basicp3.setCreatedBy(getUser().getUserId()); + basicp3.setAccountId(getUser().getAccount().getAccount_id()); + final Basicp3 save = Repository.save(basicp3); + return save; +} +public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Basicp3Service.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Basicp3Service.java new file mode 100644 index 0000000..9b00ad6 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Basicp3Service.java @@ -0,0 +1,174 @@ +package com.realnet.angulardatatype.Services; +import com.realnet.angulardatatype.Repository.Basicp3Repository; +import com.realnet.angulardatatype.Entity.Basicp3 +;import java.util.*; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.SequenceGenerator.Service.SequenceService; +import org.springframework.data.domain.Page; +import com.realnet.realm.Entity.Realm; +import com.realnet.realm.Services.RealmService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.*; +import com.realnet.users.service1.AppUserServiceImpl; +import com.realnet.users.entity1.AppUser; + + + + + + + + + + + + + + + + + + + + + + + import org.springframework.stereotype.Service; + +@Service + public class Basicp3Service { +@Autowired +private Basicp3Repository Repository; + @Autowired + private AppUserServiceImpl userService; +@Autowired + private RealmService realmService; + + + + + + + + + + + + + + + +@Autowired + private SequenceService documentsequencsequenceService; + + + + + +public Basicp3 Savedata(Basicp3 data) { + + + + + + + + + + + + + + + + +data.setDocumentsequenc (documentsequencsequenceService.GenerateSequence("ff")); + + + + + + data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); +Basicp3 save = Repository.save(data); + return save; + } + + +// get all with pagination + public Page getAllWithPagination(Pageable page) { + return Repository.findAll( getUser().getUserId(),page); + } +public List getdetails() { + List realm = realmService.findByUserId(getUser().getUserId()); +List all = Repository.findAll(getUser().getUserId()); + + return all ; } + + +public Basicp3 getdetailsbyId(Integer id) { + return Repository.findById(id).get(); + } + + + public void delete_by_id(Integer id) { + Repository.deleteById(id); +} + + +public Basicp3 update(Basicp3 data,Integer id) { + Basicp3 old = Repository.findById(id).get(); +old.setToggle_switch (data.getToggle_switch()); + +old.setToggle_switch2 (data.getToggle_switch2()); + +old.setUrl_field(data.getUrl_field()); + +old.setUrl_field2(data.getUrl_field2()); + +old.setDecimal_field(data.getDecimal_field()); + +old.setDecimal_field2(data.getDecimal_field2()); + +old.setPercentage_field(data.getPercentage_field()); + +old.setPercentage_field2(data.getPercentage_field2()); + +old.setDocumentsequenc(data.getDocumentsequenc()); + +old.setRecaptcha(data.getRecaptcha()); + +old.setRecaptcha2(data.getRecaptcha2()); + +final Basicp3 test = Repository.save(old); + data.setUpdatedBy(getUser().getUserId()); + return test;} + + + + + + + + + + + + + + + + + + + + + + + public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/ChildformUpdateService3.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/ChildformUpdateService3.java new file mode 100644 index 0000000..7a57975 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/ChildformUpdateService3.java @@ -0,0 +1,42 @@ +package com.realnet.angulardatatype.Services; +import com.realnet.stpkg.Repository.ChildformRepository; +import com.realnet.stpkg.Entity.Childform; + import java.util.List; +import org.springframework.http.ResponseEntity; +import java.util.ArrayList; + +import org.springframework.http.HttpStatus; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.angulardatatype.Entity.Ad8; +import com.realnet.angulardatatype.Repository.Ad8Repository; + import org.springframework.stereotype.Service; + +@Service + public class ChildformUpdateService3 { +@Autowired +private ChildformRepository Repository; +@Autowired + private Ad8Repository ad8repository; + + +public ResponseEntity updateaction(Integer id, Childform childform ) { + Integer i = 0; Ad8 ad8 = ad8repository.findById(id).get(); +List list = new ArrayList<>(); + + Object ChildformObject = ad8.getChildform(); + + if (ChildformObject instanceof List) { + // If it's a list, cast and add all elements to the list + list.addAll((List) ChildformObject); + } else if (ChildformObject instanceof Childform) { + // If it's a single Childb object, add it to the list + list.add((Childform) ChildformObject); + } for (Childform li : list) { Childform old = Repository.findById(li.getId()).get(); + + old.setActive(childform.getActive()); +old.setDescription(childform.getDescription()); +old.setName(childform.getName()); +final Childform childformdata = Repository.save(old); +i++;} return new ResponseEntity<>(i+" updated", HttpStatus.OK); + }} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/District_ListFilter1Service.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/District_ListFilter1Service.java new file mode 100644 index 0000000..0c263e8 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/District_ListFilter1Service.java @@ -0,0 +1,57 @@ +package com.realnet.angulardatatype.Services; +import java.util.*; +import com.realnet.testdata.Repository.DistrictRepository; +import com.realnet.testdata.Entity.District; + +import com.realnet.angulardatatype.Entity.District_ListFilter1; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.stereotype.Service; + +@Service + public class District_ListFilter1Service { +@Autowired +private DistrictRepository Repository; + + + + + public List getlistbuilder() { + List list= Repository.findAll(); + ArrayList l = new ArrayList<>(); + for (District data : list) { +Boolean isActive = data.getActive(); + + if (Boolean.TRUE.equals(isActive)) {String State_name = data.getState_name(); + System.out.println(State_name + "\n"); + + if ("item".equals(State_name)){ +District_ListFilter1 dummy = new District_ListFilter1(); + dummy.setId(data.getId()); + dummy.setDistrict_name(data.getDistrict_name()); + l.add(dummy); +}} +} +return l;} + + + + public List getlistbuilderparam( String item) { + List list= Repository.findAll(); + ArrayList l = new ArrayList<>(); + for (District data : list) { +Boolean isActive = data.getActive(); + + if (Boolean.TRUE.equals(isActive)) {String State_name = data.getState_name(); + System.out.println(State_name + "\n"); + + if (item.equals(State_name)){ +District_ListFilter1 dummy = new District_ListFilter1(); + dummy.setId(data.getId()); + dummy.setDistrict_name(data.getDistrict_name()); + l.add(dummy); +}} +} +return l;} +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Dv2Service.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Dv2Service.java new file mode 100644 index 0000000..eac7752 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/Dv2Service.java @@ -0,0 +1,188 @@ +package com.realnet.angulardatatype.Services; +import com.realnet.angulardatatype.Repository.Dv2Repository; +import com.realnet.angulardatatype.Entity.Dv2 +;import java.util.*; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.SequenceGenerator.Service.SequenceService; +import org.springframework.data.domain.Page; +import com.realnet.realm.Entity.Realm; +import com.realnet.realm.Services.RealmService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.*; +import com.realnet.users.service1.AppUserServiceImpl; +import com.realnet.users.entity1.AppUser; + + + + + + + + + + + + + + + + +import com.realnet.config.EmailService; + + + import org.springframework.stereotype.Service; + +@Service + public class Dv2Service { +@Autowired +private Dv2Repository Repository; + @Autowired + private AppUserServiceImpl userService; +@Autowired + private RealmService realmService; + + + + + + + + + + + + + + + +@Autowired + private EmailService emailServicestatic; + +public Dv2 Savedata(Dv2 data) { + + + + + + + + + + + + + + + + + + + +try + { + + // emailServicestatic.sendEmail( getUser().getEmail(),"Dv2", "test"); + emailServicestatic.sendEmailViaSetu(getUser().getEmail(),"test","","ganesh"); + +} catch (Exception e) { + // TODO: handle exception + System.out.println("Got error During Mail Send " + e); + } + + + + + data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); +Dv2 save = Repository.save(data); + return save; + } + + +// get all with pagination + public Page getAllWithPagination(Pageable page) { + return Repository.findAll( getUser().getUserId(),page); + } +public List getdetails() { + List realm = realmService.findByUserId(getUser().getUserId()); +List all = Repository.findAll(getUser().getUserId()); + + return all ; } + + +public Dv2 getdetailsbyId(Integer id) { + return Repository.findById(id).get(); + } + + + public void delete_by_id(Integer id) { + Repository.deleteById(id); +} + + +public Dv2 update(Dv2 data,Integer id) { + Dv2 old = Repository.findById(id).get(); + + +old.setTest3(data.getTest3()); + + + +old.setName(data.getName()); + + + +old.setLast_name(data.getLast_name()); + + + + + + +old.setTest(data.getTest()); + + + + +old.setCurrency(data.getCurrency()); + +old.setCurrency2(data.getCurrency2()); + +old.setQrcode_field(data.getQrcode_field()); + +old.setQrcode_field2(data.getQrcode_field2()); + +old.setBarcode_field(data.getBarcode_field()); + +old.setBarcode_field2(data.getBarcode_field2()); + + + +final Dv2 test = Repository.save(old); + data.setUpdatedBy(getUser().getUserId()); + return test;} + + + + + + + + + + + + + + + + + + + public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/State_ListFilter1Service.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/State_ListFilter1Service.java new file mode 100644 index 0000000..34b1283 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/State_ListFilter1Service.java @@ -0,0 +1,57 @@ +package com.realnet.angulardatatype.Services; +import java.util.*; +import com.realnet.testdata.Repository.StateRepository; +import com.realnet.testdata.Entity.State; + +import com.realnet.angulardatatype.Entity.State_ListFilter1; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.stereotype.Service; + +@Service + public class State_ListFilter1Service { +@Autowired +private StateRepository Repository; + + + + + public List getlistbuilder() { + List list= Repository.findAll(); + ArrayList l = new ArrayList<>(); + for (State data : list) { +Boolean isActive = data.getActive(); + + if (Boolean.TRUE.equals(isActive)) {String Country_name = data.getCountry_name(); + System.out.println(Country_name + "\n"); + + if ("item".equals(Country_name)){ +State_ListFilter1 dummy = new State_ListFilter1(); + dummy.setId(data.getId()); + dummy.setState_name(data.getState_name()); + l.add(dummy); +}} +} +return l;} + + + + public List getlistbuilderparam( String item) { + List list= Repository.findAll(); + ArrayList l = new ArrayList<>(); + for (State data : list) { +Boolean isActive = data.getActive(); + + if (Boolean.TRUE.equals(isActive)) {String Country_name = data.getCountry_name(); + System.out.println(Country_name + "\n"); + + if (item.equals(Country_name)){ +State_ListFilter1 dummy = new State_ListFilter1(); + dummy.setId(data.getId()); + dummy.setState_name(data.getState_name()); + l.add(dummy); +}} +} +return l;} +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/SupportInsertService3.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/SupportInsertService3.java new file mode 100644 index 0000000..f9ec8ed --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/SupportInsertService3.java @@ -0,0 +1,31 @@ +package com.realnet.angulardatatype.Services; +import com.realnet.angulardatatype.Repository.SupportRepository; +import com.realnet.angulardatatype.Entity.Support; + import java.util.List; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.stereotype.Service; + +@Service + public class SupportInsertService3 { +@Autowired +private SupportRepository Repository; +@Autowired + private AppUserServiceImpl userService; + + +public Support insertaction(Support support ) { + + + support.setUpdatedBy(getUser().getUserId()); + support.setCreatedBy(getUser().getUserId()); + support.setAccountId(getUser().getAccount().getAccount_id()); + final Support save = Repository.save(support); + return save; +} +public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/SupportService.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/SupportService.java new file mode 100644 index 0000000..c841e7a --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/SupportService.java @@ -0,0 +1,83 @@ +package com.realnet.angulardatatype.Services; +import com.realnet.angulardatatype.Repository.SupportRepository; +import com.realnet.angulardatatype.Entity.Support +;import java.util.*; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.SequenceGenerator.Service.SequenceService; +import org.springframework.data.domain.Page; +import com.realnet.realm.Entity.Realm; +import com.realnet.realm.Services.RealmService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.*; +import com.realnet.users.service1.AppUserServiceImpl; +import com.realnet.users.entity1.AppUser; + + + + + import org.springframework.stereotype.Service; + +@Service + public class SupportService { +@Autowired +private SupportRepository Repository; + @Autowired + private AppUserServiceImpl userService; +@Autowired + private RealmService realmService; + + + +public Support Savedata(Support data) { + + + + + data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); +Support save = Repository.save(data); + return save; + } + + +// get all with pagination + public Page getAllWithPagination(Pageable page) { + return Repository.findAll( getUser().getUserId(),page); + } +public List getdetails() { + List realm = realmService.findByUserId(getUser().getUserId()); +List all = Repository.findAll(getUser().getUserId()); + + return all ; } + + +public Support getdetailsbyId(Integer id) { + return Repository.findById(id).get(); + } + + + public void delete_by_id(Integer id) { + Repository.deleteById(id); +} + + +public Support update(Support data,Integer id) { + Support old = Repository.findById(id).get(); +old.setName(data.getName()); + +old.setDescription(data.getDescription()); + +final Support test = Repository.save(old); + data.setUpdatedBy(getUser().getUserId()); + return test;} + + + + + public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/SupportUpdateService2.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/SupportUpdateService2.java new file mode 100644 index 0000000..d8bc3ea --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/angulardatatype/Services/SupportUpdateService2.java @@ -0,0 +1,41 @@ +package com.realnet.angulardatatype.Services; +import com.realnet.angulardatatype.Repository.SupportRepository; +import com.realnet.angulardatatype.Entity.Support; + import java.util.List; +import org.springframework.http.ResponseEntity; +import java.util.ArrayList; + +import org.springframework.http.HttpStatus; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.angulardatatype.Entity.Ad8; +import com.realnet.angulardatatype.Repository.Ad8Repository; + import org.springframework.stereotype.Service; + +@Service + public class SupportUpdateService2 { +@Autowired +private SupportRepository Repository; +@Autowired + private Ad8Repository ad8repository; + + +public ResponseEntity updateaction(Integer id, Support support ) { + Integer i = 0; Ad8 ad8 = ad8repository.findById(id).get(); +List list = new ArrayList<>(); + + Object SupportObject = ad8.getSupport(); + + if (SupportObject instanceof List) { + // If it's a list, cast and add all elements to the list + list.addAll((List) SupportObject); + } else if (SupportObject instanceof Support) { + // If it's a single Childb object, add it to the list + list.add((Support) SupportObject); + } for (Support li : list) { Support old = Repository.findById(li.getId()).get(); + + old.setDescription(support.getDescription()); +old.setName(support.getName()); +final Support supportdata = Repository.save(old); +i++;} return new ResponseEntity<>(i+" updated", HttpStatus.OK); + }} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Controllers/ChildformController.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Controllers/ChildformController.java new file mode 100644 index 0000000..4eb8fc6 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Controllers/ChildformController.java @@ -0,0 +1,99 @@ +package com.realnet.stpkg.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.stpkg.Entity.Childform; +import com.realnet.stpkg.Services.ChildformService ; + + + + + + +@RequestMapping(value = "/Childform") + @CrossOrigin("*") +@RestController +public class ChildformController { + @Autowired + private ChildformService Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + @PostMapping("/Childform") + public Childform Savedata(@RequestBody Childform data) { + Childform save = Service.Savedata(data) ; + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Childform/{id}") + public Childform update(@RequestBody Childform data,@PathVariable Integer id ) { + Childform update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Childform/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Childform") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Childform") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Childform/{id}") + public Childform getdetailsbyId(@PathVariable Integer id ) { + Childform get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Childform/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Controllers/tokenFree_ChildformController.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Controllers/tokenFree_ChildformController.java new file mode 100644 index 0000000..41b60f2 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Controllers/tokenFree_ChildformController.java @@ -0,0 +1,99 @@ +package com.realnet.stpkg.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.stpkg.Entity.Childform; +import com.realnet.stpkg.Services.ChildformService ; + + + + + + +@RequestMapping(value = "/token/Childform") + @CrossOrigin("*") +@RestController +public class tokenFree_ChildformController { + @Autowired + private ChildformService Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + @PostMapping("/Childform") + public Childform Savedata(@RequestBody Childform data) { + Childform save = Service.Savedata(data) ; + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Childform/{id}") + public Childform update(@RequestBody Childform data,@PathVariable Integer id ) { + Childform update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Childform/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Childform") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Childform") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Childform/{id}") + public Childform getdetailsbyId(@PathVariable Integer id ) { + Childform get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Childform/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Entity/Childform.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Entity/Childform.java new file mode 100644 index 0000000..670e45e --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Entity/Childform.java @@ -0,0 +1,33 @@ +package com.realnet.stpkg.Entity; + import lombok.*; +import com.realnet.WhoColumn.Entity.Extension; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + + + + + + @Entity + @Data + public class Childform extends Extension { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + +private String name; + +@Column(length = 2000) +private String description; + +private Boolean active; + + +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Repository/ChildformRepository.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Repository/ChildformRepository.java new file mode 100644 index 0000000..b645742 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Repository/ChildformRepository.java @@ -0,0 +1,30 @@ +package com.realnet.stpkg.Repository; + + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import org.springframework.stereotype.Repository; +import java.util.*; + + + + + + + + + +import com.realnet.stpkg.Entity.Childform; + +@Repository +public interface ChildformRepository extends JpaRepository { + +@Query(value = "select * from childform where created_by=?1", nativeQuery = true) + List findAll(Long creayedBy); + +@Query(value = "select * from childform where created_by=?1", nativeQuery = true) + Page findAll( Long creayedBy,Pageable page); +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Services/ChildformService.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Services/ChildformService.java new file mode 100644 index 0000000..93fb0e0 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/stpkg/Services/ChildformService.java @@ -0,0 +1,93 @@ +package com.realnet.stpkg.Services; +import com.realnet.stpkg.Repository.ChildformRepository; +import com.realnet.stpkg.Entity.Childform +;import java.util.*; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.SequenceGenerator.Service.SequenceService; +import org.springframework.data.domain.Page; +import com.realnet.realm.Entity.Realm; +import com.realnet.realm.Services.RealmService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.*; +import com.realnet.users.service1.AppUserServiceImpl; +import com.realnet.users.entity1.AppUser; + + + + + + + import org.springframework.stereotype.Service; + +@Service + public class ChildformService { +@Autowired +private ChildformRepository Repository; + @Autowired + private AppUserServiceImpl userService; +@Autowired + private RealmService realmService; + + + + + +public Childform Savedata(Childform data) { + + + + + + + data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); +Childform save = Repository.save(data); + return save; + } + + +// get all with pagination + public Page getAllWithPagination(Pageable page) { + return Repository.findAll( getUser().getUserId(),page); + } +public List getdetails() { + List realm = realmService.findByUserId(getUser().getUserId()); +List all = Repository.findAll(getUser().getUserId()); + + return all ; } + + +public Childform getdetailsbyId(Integer id) { + return Repository.findById(id).get(); + } + + + public void delete_by_id(Integer id) { + Repository.deleteById(id); +} + + +public Childform update(Childform data,Integer id) { + Childform old = Repository.findById(id).get(); +old.setName(data.getName()); + +old.setDescription(data.getDescription()); + +old.setActive (data.getActive()); + +final Childform test = Repository.save(old); + data.setUpdatedBy(getUser().getUserId()); + return test;} + + + + + + + public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/CountryController.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/CountryController.java new file mode 100644 index 0000000..ad0da5a --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/CountryController.java @@ -0,0 +1,99 @@ +package com.realnet.testdata.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.testdata.Entity.Country; +import com.realnet.testdata.Services.CountryService ; + + + + + + +@RequestMapping(value = "/Country") + @CrossOrigin("*") +@RestController +public class CountryController { + @Autowired + private CountryService Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + @PostMapping("/Country") + public Country Savedata(@RequestBody Country data) { + Country save = Service.Savedata(data) ; + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Country/{id}") + public Country update(@RequestBody Country data,@PathVariable Integer id ) { + Country update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Country/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Country") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Country") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Country/{id}") + public Country getdetailsbyId(@PathVariable Integer id ) { + Country get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Country/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/Country_ListFilter1Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/Country_ListFilter1Controller.java new file mode 100644 index 0000000..24626d8 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/Country_ListFilter1Controller.java @@ -0,0 +1,24 @@ +package com.realnet.testdata.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import com.realnet.testdata.Entity.Country_ListFilter1; +import com.realnet.testdata.Services.Country_ListFilter1Service ; +@RequestMapping(value = "/Country_ListFilter1") +@RestController +public class Country_ListFilter1Controller { + + @Autowired + private Country_ListFilter1Service Service; + + @GetMapping("/Country_ListFilter1") + public List getlist() { + List get = Service.getlistbuilder(); + return get; +} + @GetMapping("/Country_ListFilter11") + public List getlistwithparam( ) { + List get = Service.getlistbuilderparam( ); + return get; +} +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/DistrictController.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/DistrictController.java new file mode 100644 index 0000000..15790c8 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/DistrictController.java @@ -0,0 +1,107 @@ +package com.realnet.testdata.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.testdata.Entity.District; +import com.realnet.testdata.Services.DistrictService ; + + + + + + + + +@RequestMapping(value = "/District") + @CrossOrigin("*") +@RestController +public class DistrictController { + @Autowired + private DistrictService Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + @PostMapping("/District") + public District Savedata(@RequestBody District data) { + District save = Service.Savedata(data) ; + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/District/{id}") + public District update(@RequestBody District data,@PathVariable Integer id ) { + District update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/District/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/District") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/District") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/District/{id}") + public District getdetailsbyId(@PathVariable Integer id ) { + District get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/District/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/StateController.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/StateController.java new file mode 100644 index 0000000..7a7638f --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/StateController.java @@ -0,0 +1,107 @@ +package com.realnet.testdata.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.testdata.Entity.State; +import com.realnet.testdata.Services.StateService ; + + + + + + + + +@RequestMapping(value = "/State") + @CrossOrigin("*") +@RestController +public class StateController { + @Autowired + private StateService Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + @PostMapping("/State") + public State Savedata(@RequestBody State data) { + State save = Service.Savedata(data) ; + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/State/{id}") + public State update(@RequestBody State data,@PathVariable Integer id ) { + State update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/State/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/State") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/State") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/State/{id}") + public State getdetailsbyId(@PathVariable Integer id ) { + State get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/State/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/tokenFree_CountryController.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/tokenFree_CountryController.java new file mode 100644 index 0000000..e920d13 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/tokenFree_CountryController.java @@ -0,0 +1,99 @@ +package com.realnet.testdata.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.testdata.Entity.Country; +import com.realnet.testdata.Services.CountryService ; + + + + + + +@RequestMapping(value = "/token/Country") + @CrossOrigin("*") +@RestController +public class tokenFree_CountryController { + @Autowired + private CountryService Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + @PostMapping("/Country") + public Country Savedata(@RequestBody Country data) { + Country save = Service.Savedata(data) ; + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/Country/{id}") + public Country update(@RequestBody Country data,@PathVariable Integer id ) { + Country update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/Country/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/Country") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/Country") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/Country/{id}") + public Country getdetailsbyId(@PathVariable Integer id ) { + Country get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/Country/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/tokenFree_Country_ListFilter1Controller.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/tokenFree_Country_ListFilter1Controller.java new file mode 100644 index 0000000..c348307 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/tokenFree_Country_ListFilter1Controller.java @@ -0,0 +1,24 @@ +package com.realnet.testdata.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import com.realnet.testdata.Entity.Country_ListFilter1; +import com.realnet.testdata.Services.Country_ListFilter1Service ; +@RequestMapping(value = "/token/Country_ListFilter1") +@RestController +public class tokenFree_Country_ListFilter1Controller { + + @Autowired + private Country_ListFilter1Service Service; + + @GetMapping("/Country_ListFilter1") + public List getlist() { + List get = Service.getlistbuilder(); + return get; +} + @GetMapping("/Country_ListFilter11") + public List getlistwithparam( ) { + List get = Service.getlistbuilderparam( ); + return get; +} +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/tokenFree_DistrictController.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/tokenFree_DistrictController.java new file mode 100644 index 0000000..41af86c --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/tokenFree_DistrictController.java @@ -0,0 +1,107 @@ +package com.realnet.testdata.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.testdata.Entity.District; +import com.realnet.testdata.Services.DistrictService ; + + + + + + + + +@RequestMapping(value = "/token/District") + @CrossOrigin("*") +@RestController +public class tokenFree_DistrictController { + @Autowired + private DistrictService Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + @PostMapping("/District") + public District Savedata(@RequestBody District data) { + District save = Service.Savedata(data) ; + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/District/{id}") + public District update(@RequestBody District data,@PathVariable Integer id ) { + District update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/District/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/District") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/District") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/District/{id}") + public District getdetailsbyId(@PathVariable Integer id ) { + District get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/District/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/tokenFree_StateController.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/tokenFree_StateController.java new file mode 100644 index 0000000..5195902 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Controllers/tokenFree_StateController.java @@ -0,0 +1,107 @@ +package com.realnet.testdata.Controllers; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonProcessingException; +import org.springframework.web.bind.annotation.CrossOrigin; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.realnet.config.EmailService; +import com.realnet.users.entity1.AppUser; +import com.realnet.users.service1.AppUserServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.data.domain.*; +import com.realnet.fnd.response.EntityResponse; +import org.springframework.http.*; +import org.springframework.beans.factory.annotation.*; +import com.realnet.testdata.Entity.State; +import com.realnet.testdata.Services.StateService ; + + + + + + + + +@RequestMapping(value = "/token/State") + @CrossOrigin("*") +@RestController +public class tokenFree_StateController { + @Autowired + private StateService Service; + +@Value("${projectPath}") + private String projectPath; + + + + + + + + + + @PostMapping("/State") + public State Savedata(@RequestBody State data) { + State save = Service.Savedata(data) ; + + + + + + + + System.out.println("data saved..." + save); + + return save; + } +@PutMapping("/State/{id}") + public State update(@RequestBody State data,@PathVariable Integer id ) { + State update = Service.update(data,id); + System.out.println("data update..." + update); + return update; + } +// get all with pagination + @GetMapping("/State/getall/page") + public Page getall(@RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "size", required = false) Integer size) { + Pageable paging = PageRequest.of(page, size); + Page get = Service.getAllWithPagination(paging); + + return get; + + } + @GetMapping("/State") + public List getdetails() { + List get = Service.getdetails(); + return get; +} +// get all without authentication + + @GetMapping("/token/State") + public List getallwioutsec() { + List get = Service.getdetails(); + return get; +} +@GetMapping("/State/{id}") + public State getdetailsbyId(@PathVariable Integer id ) { + State get = Service.getdetailsbyId(id); + return get; + } +@DeleteMapping("/State/{id}") + public ResponseEntity delete_by_id(@PathVariable Integer id ) { + Service.delete_by_id(id); + return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK); + + } + + + + + + + + + +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Entity/Country.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Entity/Country.java new file mode 100644 index 0000000..a6c8bb6 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Entity/Country.java @@ -0,0 +1,33 @@ +package com.realnet.testdata.Entity; + import lombok.*; +import com.realnet.WhoColumn.Entity.Extension; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + + + + + + @Entity + @Data + public class Country extends Extension { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + +private String name; + +@Column(length = 2000) +private String description; + +private Boolean active; + + +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Entity/Country_ListFilter1.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Entity/Country_ListFilter1.java new file mode 100644 index 0000000..3230334 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Entity/Country_ListFilter1.java @@ -0,0 +1,15 @@ +package com.realnet.testdata.Entity; + import lombok.*; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + @Data + public class Country_ListFilter1 { + + private Integer id; + + + private String name; + private String description; +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Entity/District.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Entity/District.java new file mode 100644 index 0000000..f4e2bf0 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Entity/District.java @@ -0,0 +1,37 @@ +package com.realnet.testdata.Entity; + import lombok.*; +import com.realnet.WhoColumn.Entity.Extension; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + + + + + + + + @Entity + @Data + public class District extends Extension { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + +private String district_name; + +@Column(length = 2000) +private String description; + +private Boolean active; + +private String state_name; + + +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Entity/State.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Entity/State.java new file mode 100644 index 0000000..e39d873 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Entity/State.java @@ -0,0 +1,37 @@ +package com.realnet.testdata.Entity; + import lombok.*; +import com.realnet.WhoColumn.Entity.Extension; + import javax.persistence.*; + import java.time.LocalDateTime; + import java.util.*; + + + + + + + + + @Entity + @Data + public class State extends Extension { + /** + * + */ + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + +private String state_name; + +@Column(length = 2000) +private String description; + +private Boolean active; + +private String country_name; + + +} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Repository/CountryRepository.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Repository/CountryRepository.java new file mode 100644 index 0000000..0d3efd5 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Repository/CountryRepository.java @@ -0,0 +1,30 @@ +package com.realnet.testdata.Repository; + + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import org.springframework.stereotype.Repository; +import java.util.*; + + + + + + + + + +import com.realnet.testdata.Entity.Country; + +@Repository +public interface CountryRepository extends JpaRepository { + +@Query(value = "select * from country where created_by=?1", nativeQuery = true) + List findAll(Long creayedBy); + +@Query(value = "select * from country where created_by=?1", nativeQuery = true) + Page findAll( Long creayedBy,Pageable page); +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Repository/DistrictRepository.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Repository/DistrictRepository.java new file mode 100644 index 0000000..139bd94 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Repository/DistrictRepository.java @@ -0,0 +1,32 @@ +package com.realnet.testdata.Repository; + + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import org.springframework.stereotype.Repository; +import java.util.*; + + + + + + + + + + + +import com.realnet.testdata.Entity.District; + +@Repository +public interface DistrictRepository extends JpaRepository { + +@Query(value = "select * from district where created_by=?1", nativeQuery = true) + List findAll(Long creayedBy); + +@Query(value = "select * from district where created_by=?1", nativeQuery = true) + Page findAll( Long creayedBy,Pageable page); +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Repository/StateRepository.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Repository/StateRepository.java new file mode 100644 index 0000000..f8ab9d9 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Repository/StateRepository.java @@ -0,0 +1,32 @@ +package com.realnet.testdata.Repository; + + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import org.springframework.stereotype.Repository; +import java.util.*; + + + + + + + + + + + +import com.realnet.testdata.Entity.State; + +@Repository +public interface StateRepository extends JpaRepository { + +@Query(value = "select * from state where created_by=?1", nativeQuery = true) + List findAll(Long creayedBy); + +@Query(value = "select * from state where created_by=?1", nativeQuery = true) + Page findAll( Long creayedBy,Pageable page); +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Services/CountryService.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Services/CountryService.java new file mode 100644 index 0000000..e4de4a5 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Services/CountryService.java @@ -0,0 +1,93 @@ +package com.realnet.testdata.Services; +import com.realnet.testdata.Repository.CountryRepository; +import com.realnet.testdata.Entity.Country +;import java.util.*; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.SequenceGenerator.Service.SequenceService; +import org.springframework.data.domain.Page; +import com.realnet.realm.Entity.Realm; +import com.realnet.realm.Services.RealmService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.*; +import com.realnet.users.service1.AppUserServiceImpl; +import com.realnet.users.entity1.AppUser; + + + + + + + import org.springframework.stereotype.Service; + +@Service + public class CountryService { +@Autowired +private CountryRepository Repository; + @Autowired + private AppUserServiceImpl userService; +@Autowired + private RealmService realmService; + + + + + +public Country Savedata(Country data) { + + + + + + + data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); +Country save = Repository.save(data); + return save; + } + + +// get all with pagination + public Page getAllWithPagination(Pageable page) { + return Repository.findAll( getUser().getUserId(),page); + } +public List getdetails() { + List realm = realmService.findByUserId(getUser().getUserId()); +List all = Repository.findAll(getUser().getUserId()); + + return all ; } + + +public Country getdetailsbyId(Integer id) { + return Repository.findById(id).get(); + } + + + public void delete_by_id(Integer id) { + Repository.deleteById(id); +} + + +public Country update(Country data,Integer id) { + Country old = Repository.findById(id).get(); +old.setName(data.getName()); + +old.setDescription(data.getDescription()); + +old.setActive (data.getActive()); + +final Country test = Repository.save(old); + data.setUpdatedBy(getUser().getUserId()); + return test;} + + + + + + + public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Services/Country_ListFilter1Service.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Services/Country_ListFilter1Service.java new file mode 100644 index 0000000..5282a33 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Services/Country_ListFilter1Service.java @@ -0,0 +1,53 @@ +package com.realnet.testdata.Services; +import java.util.*; +import com.realnet.testdata.Repository.CountryRepository; +import com.realnet.testdata.Entity.Country; + +import com.realnet.testdata.Entity.Country_ListFilter1; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.stereotype.Service; + +@Service + public class Country_ListFilter1Service { +@Autowired +private CountryRepository Repository; + + + + + public List getlistbuilder() { + List list= Repository.findAll(); + ArrayList l = new ArrayList<>(); + for (Country data : list) { +Boolean isActive = data.getActive(); + + if (Boolean.TRUE.equals(isActive)) {{ +Country_ListFilter1 dummy = new Country_ListFilter1(); + dummy.setId(data.getId()); + dummy.setName(data.getName()); + dummy.setDescription(data.getDescription()); + l.add(dummy); +}} +} +return l;} + + + + public List getlistbuilderparam( ) { + List list= Repository.findAll(); + ArrayList l = new ArrayList<>(); + for (Country data : list) { +Boolean isActive = data.getActive(); + + if (Boolean.TRUE.equals(isActive)) {{ +Country_ListFilter1 dummy = new Country_ListFilter1(); + dummy.setId(data.getId()); + dummy.setName(data.getName()); + dummy.setDescription(data.getDescription()); + l.add(dummy); +}} +} +return l;} +} \ No newline at end of file diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Services/DistrictService.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Services/DistrictService.java new file mode 100644 index 0000000..11decc0 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Services/DistrictService.java @@ -0,0 +1,103 @@ +package com.realnet.testdata.Services; +import com.realnet.testdata.Repository.DistrictRepository; +import com.realnet.testdata.Entity.District +;import java.util.*; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.SequenceGenerator.Service.SequenceService; +import org.springframework.data.domain.Page; +import com.realnet.realm.Entity.Realm; +import com.realnet.realm.Services.RealmService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.*; +import com.realnet.users.service1.AppUserServiceImpl; +import com.realnet.users.entity1.AppUser; + + + + + + + + + import org.springframework.stereotype.Service; + +@Service + public class DistrictService { +@Autowired +private DistrictRepository Repository; + @Autowired + private AppUserServiceImpl userService; +@Autowired + private RealmService realmService; + + + + + + + +public District Savedata(District data) { + + + + + + + + + data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); +District save = Repository.save(data); + return save; + } + + +// get all with pagination + public Page getAllWithPagination(Pageable page) { + return Repository.findAll( getUser().getUserId(),page); + } +public List getdetails() { + List realm = realmService.findByUserId(getUser().getUserId()); +List all = Repository.findAll(getUser().getUserId()); + + return all ; } + + +public District getdetailsbyId(Integer id) { + return Repository.findById(id).get(); + } + + + public void delete_by_id(Integer id) { + Repository.deleteById(id); +} + + +public District update(District data,Integer id) { + District old = Repository.findById(id).get(); +old.setDistrict_name(data.getDistrict_name()); + +old.setDescription(data.getDescription()); + +old.setActive (data.getActive()); + +old.setState_name(data.getState_name()); + +final District test = Repository.save(old); + data.setUpdatedBy(getUser().getUserId()); + return test;} + + + + + + + + + public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} diff --git a/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Services/StateService.java b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Services/StateService.java new file mode 100644 index 0000000..8851623 --- /dev/null +++ b/test10april-test2-b/authsec_springboot/backend/src/main/java/com/realnet/testdata/Services/StateService.java @@ -0,0 +1,103 @@ +package com.realnet.testdata.Services; +import com.realnet.testdata.Repository.StateRepository; +import com.realnet.testdata.Entity.State +;import java.util.*; + +import org.springframework.beans.factory.annotation.Autowired; +import com.realnet.SequenceGenerator.Service.SequenceService; +import org.springframework.data.domain.Page; +import com.realnet.realm.Entity.Realm; +import com.realnet.realm.Services.RealmService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.*; +import com.realnet.users.service1.AppUserServiceImpl; +import com.realnet.users.entity1.AppUser; + + + + + + + + + import org.springframework.stereotype.Service; + +@Service + public class StateService { +@Autowired +private StateRepository Repository; + @Autowired + private AppUserServiceImpl userService; +@Autowired + private RealmService realmService; + + + + + + + +public State Savedata(State data) { + + + + + + + + + data.setUpdatedBy(getUser().getUserId()); + data.setCreatedBy(getUser().getUserId()); + data.setAccountId(getUser().getAccount().getAccount_id()); +State save = Repository.save(data); + return save; + } + + +// get all with pagination + public Page getAllWithPagination(Pageable page) { + return Repository.findAll( getUser().getUserId(),page); + } +public List getdetails() { + List realm = realmService.findByUserId(getUser().getUserId()); +List all = Repository.findAll(getUser().getUserId()); + + return all ; } + + +public State getdetailsbyId(Integer id) { + return Repository.findById(id).get(); + } + + + public void delete_by_id(Integer id) { + Repository.deleteById(id); +} + + +public State update(State data,Integer id) { + State old = Repository.findById(id).get(); +old.setState_name(data.getState_name()); + +old.setDescription(data.getDescription()); + +old.setActive (data.getActive()); + +old.setCountry_name(data.getCountry_name()); + +final State test = Repository.save(old); + data.setUpdatedBy(getUser().getUserId()); + return test;} + + + + + + + + + public AppUser getUser() { + AppUser user = userService.getLoggedInUser(); + return user; + + }} diff --git a/test10april-testtensep-d/authsec_mysql/mysql/wf_table/wf_table.sql b/test10april-testtensep-d/authsec_mysql/mysql/wf_table/wf_table.sql new file mode 100755 index 0000000..1ecdba8 --- /dev/null +++ b/test10april-testtensep-d/authsec_mysql/mysql/wf_table/wf_table.sql @@ -0,0 +1,34 @@ +CREATE TABLE testtensep.Basicp1(id BIGINT NOT NULL AUTO_INCREMENT, textarea_field VARCHAR(400), paragraph_field VARCHAR(400), textarea VARCHAR(400), paragraph_field2 VARCHAR(400), phone_number2 VARCHAR(400), name VARCHAR(400), number1 int, phone_number VARCHAR(400), number2 int, name2 VARCHAR(400), password_field VARCHAR(400), textarea_field2 VARCHAR(400), PRIMARY KEY (id)); + +CREATE TABLE testtensep.Basicp2(id BIGINT NOT NULL AUTO_INCREMENT, datetime_field2 VARCHAR(400), about VARCHAR(400), datetime_field VARCHAR(400), userid_field VARCHAR(400), email_field2 VARCHAR(400), date_field Date, email_field VARCHAR(400), textarea2 VARCHAR(400), date_field2 Date, PRIMARY KEY (id)); + +CREATE TABLE testtensep.Basicp3(id BIGINT NOT NULL AUTO_INCREMENT, toggle_switch2 VARCHAR(400), decimal_field2 double, documentsequenc VARCHAR(400), toggle_switch VARCHAR(400), recaptcha VARCHAR(400), percentage_field int, percentage_field2 int, url_field VARCHAR(400), url_field2 VARCHAR(400), decimal_field double, recaptcha2 VARCHAR(400), PRIMARY KEY (id)); + +CREATE TABLE testtensep.Adv1(id BIGINT NOT NULL AUTO_INCREMENT, t4 bit(1), video_field2 VARCHAR(400), video_field VARCHAR(400), ismale VARCHAR(400), fileupload_field VARCHAR(400), test1 bit(1), test2 bit(1), audio_field2 VARCHAR(400), fileupload_field2 VARCHAR(400), imageupload_field VARCHAR(400), audio_field VARCHAR(400), idfemale VARCHAR(400), t1 bit(1), imageupload_field2 VARCHAR(400), t2 bit(1), PRIMARY KEY (id)); + +CREATE TABLE testtensep.Dv2(id BIGINT NOT NULL AUTO_INCREMENT, qrcode_field2 VARCHAR(400), test3 VARCHAR(400), test VARCHAR(400), currency2 VARCHAR(400), currency VARCHAR(400), qrcode_field VARCHAR(400), name VARCHAR(400), last_name VARCHAR(400), barcode_field2 VARCHAR(400), static VARCHAR(400), barcode_field VARCHAR(400), PRIMARY KEY (id)); + +CREATE TABLE testtensep.Adv3(id BIGINT NOT NULL AUTO_INCREMENT, datagrid_field2 VARCHAR(400), country VARCHAR(400), dynamic VARCHAR(400), dymlt2 VARCHAR(400), dymlti1 VARCHAR(400), stmlit VARCHAR(400), stmmlt2 VARCHAR(400), state VARCHAR(400), datagrid_field VARCHAR(400), dy2 int, dy1 int, PRIMARY KEY (id)); + +CREATE TABLE testtensep.Support(id BIGINT NOT NULL AUTO_INCREMENT, description VARCHAR(400), name VARCHAR(400), PRIMARY KEY (id)); + +CREATE TABLE testtensep.Adv4(id BIGINT NOT NULL AUTO_INCREMENT, onetoone VARCHAR(400), atdy1 VARCHAR(400), atdy2 VARCHAR(400), atoc int, atc2 int, PRIMARY KEY (id)); + +CREATE TABLE testtensep.Adv5(id BIGINT NOT NULL AUTO_INCREMENT, onetomanyextension VARCHAR(400), multiplication VARCHAR(400), value_list_field VARCHAR(400), value_list_field2 VARCHAR(400), age int, age2 int, name VARCHAR(400), addition VARCHAR(400), PRIMARY KEY (id)); + +CREATE TABLE testtensep.Ad6(id BIGINT NOT NULL AUTO_INCREMENT, country int, district VARCHAR(400), description VARCHAR(400), state VARCHAR(400), name VARCHAR(400), PRIMARY KEY (id)); + +CREATE TABLE testtensep.Ad7(id BIGINT NOT NULL AUTO_INCREMENT, button_field2 VARCHAR(400), button_field VARCHAR(400), name VARCHAR(400), PRIMARY KEY (id)); + +CREATE TABLE testtensep.Ad8(id BIGINT NOT NULL AUTO_INCREMENT, onetoone VARCHAR(400), buttonupdate2 VARCHAR(400), onetomanyextension VARCHAR(400), buttonupdate VARCHAR(400), name VARCHAR(400), PRIMARY KEY (id)); + +CREATE TABLE testtensep.Ad9(id BIGINT NOT NULL AUTO_INCREMENT, approved_field VARCHAR(400), name VARCHAR(400), PRIMARY KEY (id)); + +CREATE TABLE testtensep.Country(id BIGINT NOT NULL AUTO_INCREMENT, active VARCHAR(400), description VARCHAR(400), name VARCHAR(400), PRIMARY KEY (id)); + +CREATE TABLE testtensep.State(id BIGINT NOT NULL AUTO_INCREMENT, active VARCHAR(400), description VARCHAR(400), state_name VARCHAR(400), country_name VARCHAR(400), PRIMARY KEY (id)); + +CREATE TABLE testtensep.District(id BIGINT NOT NULL AUTO_INCREMENT, district_name VARCHAR(400), active VARCHAR(400), description VARCHAR(400), state_name VARCHAR(400), PRIMARY KEY (id)); + +CREATE TABLE testtensep.Childform(id BIGINT NOT NULL AUTO_INCREMENT, active VARCHAR(400), description VARCHAR(400), name VARCHAR(400), PRIMARY KEY (id)); +