From b094360eb2236ed3f281406a186acb39c447e734 Mon Sep 17 00:00:00 2001 From: adalberto Date: Tue, 18 Nov 2025 21:46:20 -0600 Subject: [PATCH] aa --- .../.idea/AndroidProjectSystem.xml | 6 + .idea/.idea.MIES_System/.idea/encodings.xml | 4 + .idea/.idea.MIES_System/.idea/indexLayout.xml | 8 + .../libraries/androidx_activity_activity.xml | 10 + .../androidx_annotation_annotation.xml | 9 + ...idx_annotation_annotation_experimental.xml | 10 + .../androidx_annotation_annotation_jvm.xml | 9 + .../androidx_appcompat_appcompat.xml | 10 + ...androidx_appcompat_appcompat_resources.xml | 10 + .../androidx_arch_core_core_common.xml | 9 + .../androidx_arch_core_core_runtime.xml | 10 + .../androidx_collection_collection.xml | 9 + .../androidx_collection_collection_jvm.xml | 9 + ...androidx_concurrent_concurrent_futures.xml | 9 + .../.idea/libraries/androidx_core_core.xml | 10 + .../libraries/androidx_core_core_ktx.xml | 10 + .../androidx_core_core_splashscreen.xml | 10 + .../androidx_cursoradapter_cursoradapter.xml | 9 + .../androidx_customview_customview.xml | 9 + .../androidx_drawerlayout_drawerlayout.xml | 10 + .../libraries/androidx_emoji2_emoji2.xml | 10 + .../androidx_emoji2_emoji2_views_helper.xml | 10 + .../libraries/androidx_fragment_fragment.xml | 10 + .../androidx_interpolator_interpolator.xml | 9 + .../androidx_lifecycle_lifecycle_common.xml | 9 + ...oidx_lifecycle_lifecycle_livedata_core.xml | 10 + .../androidx_lifecycle_lifecycle_process.xml | 10 + .../androidx_lifecycle_lifecycle_runtime.xml | 10 + ...androidx_lifecycle_lifecycle_viewmodel.xml | 10 + ...fecycle_lifecycle_viewmodel_savedstate.xml | 10 + .../libraries/androidx_loader_loader.xml | 9 + ...oidx_profileinstaller_profileinstaller.xml | 10 + ...spection_resourceinspection_annotation.xml | 9 + .../androidx_savedstate_savedstate.xml | 10 + .../androidx_startup_startup_runtime.xml | 10 + .../libraries/androidx_tracing_tracing.xml | 10 + ...androidx_vectordrawable_vectordrawable.xml | 9 + ...vectordrawable_vectordrawable_animated.xml | 9 + ...ersionedparcelable_versionedparcelable.xml | 9 + .../androidx_viewpager_viewpager.xml | 9 + .../libraries/guava_listenablefuture.xml | 9 + .../org_jetbrains_annotations_24_0_1.xml | 9 + ..._jetbrains_kotlin_kotlin_stdlib_1_9_10.xml | 9 + ...ins_kotlin_kotlin_stdlib_common_1_9_10.xml | 9 + ...rains_kotlin_kotlin_stdlib_jdk7_1_9_10.xml | 9 + ...rains_kotlin_kotlin_stdlib_jdk8_1_9_10.xml | 9 + ...tlinx_kotlinx_coroutines_android_1_7_3.xml | 9 + ...linx_kotlinx_coroutines_core_jvm_1_7_3.xml | 9 + .../.idea/projectSettingsUpdater.xml | 8 + .idea/.idea.MIES_System/.idea/vcs.xml | 6 + .../Converts/MenuItemTemplateSelector.cs | 28 ++ .../Converts/MenuItemVisibilityConverter.cs | 34 ++ MIES_System/Models/ExpedienteModel.cs | 49 +++ MIES_System/Models/MenuItemModel.cs | 35 ++ MIES_System/Services/NavigationService.cs | 22 ++ MIES_System/ViewModels/ExpedienteViewModel.cs | 282 ++++++++++++++ MIES_System/ViewModels/HomeViewModel.cs | 103 +++++ MIES_System/ViewModels/LoginViewModel.cs | 45 +++ MIES_System/Views/ExpedienteView.axaml | 360 ++++++++++++++++++ MIES_System/Views/ExpedienteView.axaml.cs | 38 ++ MIES_System/Views/HomeView.axaml | 217 +++++++++++ MIES_System/Views/HomeView.axaml.cs | 13 + MIES_System/Views/LoginView.axaml | 51 +++ MIES_System/Views/LoginView.axaml.cs | 13 + 64 files changed, 1748 insertions(+) create mode 100644 .idea/.idea.MIES_System/.idea/AndroidProjectSystem.xml create mode 100644 .idea/.idea.MIES_System/.idea/encodings.xml create mode 100644 .idea/.idea.MIES_System/.idea/indexLayout.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_activity_activity.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_annotation_annotation.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_annotation_annotation_experimental.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_annotation_annotation_jvm.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_appcompat_appcompat.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_appcompat_appcompat_resources.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_arch_core_core_common.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_arch_core_core_runtime.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_collection_collection.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_collection_collection_jvm.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_concurrent_concurrent_futures.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_core_core.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_core_core_ktx.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_core_core_splashscreen.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_cursoradapter_cursoradapter.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_customview_customview.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_drawerlayout_drawerlayout.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_emoji2_emoji2.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_emoji2_emoji2_views_helper.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_fragment_fragment.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_interpolator_interpolator.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_common.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_livedata_core.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_process.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_runtime.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel_savedstate.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_loader_loader.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_profileinstaller_profileinstaller.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_resourceinspection_resourceinspection_annotation.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_savedstate_savedstate.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_startup_startup_runtime.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_tracing_tracing.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_vectordrawable_vectordrawable.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_vectordrawable_vectordrawable_animated.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_versionedparcelable_versionedparcelable.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/androidx_viewpager_viewpager.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/guava_listenablefuture.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/org_jetbrains_annotations_24_0_1.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_1_9_10.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_common_1_9_10.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_9_10.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_9_10.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlinx_kotlinx_coroutines_android_1_7_3.xml create mode 100644 .idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_1_7_3.xml create mode 100644 .idea/.idea.MIES_System/.idea/projectSettingsUpdater.xml create mode 100644 .idea/.idea.MIES_System/.idea/vcs.xml create mode 100644 MIES_System/Converts/MenuItemTemplateSelector.cs create mode 100644 MIES_System/Converts/MenuItemVisibilityConverter.cs create mode 100644 MIES_System/Models/ExpedienteModel.cs create mode 100644 MIES_System/Models/MenuItemModel.cs create mode 100644 MIES_System/Services/NavigationService.cs create mode 100644 MIES_System/ViewModels/ExpedienteViewModel.cs create mode 100644 MIES_System/ViewModels/HomeViewModel.cs create mode 100644 MIES_System/ViewModels/LoginViewModel.cs create mode 100644 MIES_System/Views/ExpedienteView.axaml create mode 100644 MIES_System/Views/ExpedienteView.axaml.cs create mode 100644 MIES_System/Views/HomeView.axaml create mode 100644 MIES_System/Views/HomeView.axaml.cs create mode 100644 MIES_System/Views/LoginView.axaml create mode 100644 MIES_System/Views/LoginView.axaml.cs diff --git a/.idea/.idea.MIES_System/.idea/AndroidProjectSystem.xml b/.idea/.idea.MIES_System/.idea/AndroidProjectSystem.xml new file mode 100644 index 0000000..e82600c --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/AndroidProjectSystem.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/encodings.xml b/.idea/.idea.MIES_System/.idea/encodings.xml new file mode 100644 index 0000000..df87cf9 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/indexLayout.xml b/.idea/.idea.MIES_System/.idea/indexLayout.xml new file mode 100644 index 0000000..7b08163 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_activity_activity.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_activity_activity.xml new file mode 100644 index 0000000..297b844 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_activity_activity.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_annotation_annotation.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_annotation_annotation.xml new file mode 100644 index 0000000..1a7f0c1 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_annotation_annotation.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_annotation_annotation_experimental.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_annotation_annotation_experimental.xml new file mode 100644 index 0000000..92c36ac --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_annotation_annotation_experimental.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_annotation_annotation_jvm.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_annotation_annotation_jvm.xml new file mode 100644 index 0000000..5d4d76c --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_annotation_annotation_jvm.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_appcompat_appcompat.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_appcompat_appcompat.xml new file mode 100644 index 0000000..3d18c6a --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_appcompat_appcompat.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_appcompat_appcompat_resources.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_appcompat_appcompat_resources.xml new file mode 100644 index 0000000..c46c436 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_appcompat_appcompat_resources.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_arch_core_core_common.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_arch_core_core_common.xml new file mode 100644 index 0000000..c3e2111 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_arch_core_core_common.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_arch_core_core_runtime.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_arch_core_core_runtime.xml new file mode 100644 index 0000000..af0f5c2 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_arch_core_core_runtime.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_collection_collection.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_collection_collection.xml new file mode 100644 index 0000000..c086adf --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_collection_collection.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_collection_collection_jvm.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_collection_collection_jvm.xml new file mode 100644 index 0000000..138c81c --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_collection_collection_jvm.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_concurrent_concurrent_futures.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_concurrent_concurrent_futures.xml new file mode 100644 index 0000000..6d120d0 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_concurrent_concurrent_futures.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_core_core.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_core_core.xml new file mode 100644 index 0000000..2e2d361 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_core_core.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_core_core_ktx.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_core_core_ktx.xml new file mode 100644 index 0000000..21d4f19 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_core_core_ktx.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_core_core_splashscreen.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_core_core_splashscreen.xml new file mode 100644 index 0000000..7336a54 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_core_core_splashscreen.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_cursoradapter_cursoradapter.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_cursoradapter_cursoradapter.xml new file mode 100644 index 0000000..dde35ed --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_cursoradapter_cursoradapter.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_customview_customview.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_customview_customview.xml new file mode 100644 index 0000000..4cf7e23 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_customview_customview.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_drawerlayout_drawerlayout.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_drawerlayout_drawerlayout.xml new file mode 100644 index 0000000..bad3060 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_drawerlayout_drawerlayout.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_emoji2_emoji2.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_emoji2_emoji2.xml new file mode 100644 index 0000000..3078b83 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_emoji2_emoji2.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_emoji2_emoji2_views_helper.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_emoji2_emoji2_views_helper.xml new file mode 100644 index 0000000..1f9aa17 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_emoji2_emoji2_views_helper.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_fragment_fragment.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_fragment_fragment.xml new file mode 100644 index 0000000..4371831 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_fragment_fragment.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_interpolator_interpolator.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_interpolator_interpolator.xml new file mode 100644 index 0000000..9525625 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_interpolator_interpolator.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_common.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_common.xml new file mode 100644 index 0000000..389d1b3 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_common.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_livedata_core.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_livedata_core.xml new file mode 100644 index 0000000..e52257a --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_livedata_core.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_process.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_process.xml new file mode 100644 index 0000000..a560164 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_process.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_runtime.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_runtime.xml new file mode 100644 index 0000000..125a695 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_runtime.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel.xml new file mode 100644 index 0000000..390232e --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel_savedstate.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel_savedstate.xml new file mode 100644 index 0000000..73c2a13 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel_savedstate.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_loader_loader.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_loader_loader.xml new file mode 100644 index 0000000..16c4247 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_loader_loader.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_profileinstaller_profileinstaller.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_profileinstaller_profileinstaller.xml new file mode 100644 index 0000000..97cc0a1 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_profileinstaller_profileinstaller.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_resourceinspection_resourceinspection_annotation.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_resourceinspection_resourceinspection_annotation.xml new file mode 100644 index 0000000..63ef78b --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_resourceinspection_resourceinspection_annotation.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_savedstate_savedstate.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_savedstate_savedstate.xml new file mode 100644 index 0000000..c4588a8 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_savedstate_savedstate.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_startup_startup_runtime.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_startup_startup_runtime.xml new file mode 100644 index 0000000..cd859e6 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_startup_startup_runtime.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_tracing_tracing.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_tracing_tracing.xml new file mode 100644 index 0000000..c4b18b5 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_tracing_tracing.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_vectordrawable_vectordrawable.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_vectordrawable_vectordrawable.xml new file mode 100644 index 0000000..e3f67ea --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_vectordrawable_vectordrawable.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_vectordrawable_vectordrawable_animated.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_vectordrawable_vectordrawable_animated.xml new file mode 100644 index 0000000..5c6fb3f --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_vectordrawable_vectordrawable_animated.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_versionedparcelable_versionedparcelable.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_versionedparcelable_versionedparcelable.xml new file mode 100644 index 0000000..141539f --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_versionedparcelable_versionedparcelable.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/androidx_viewpager_viewpager.xml b/.idea/.idea.MIES_System/.idea/libraries/androidx_viewpager_viewpager.xml new file mode 100644 index 0000000..a1ef3cf --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/androidx_viewpager_viewpager.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/guava_listenablefuture.xml b/.idea/.idea.MIES_System/.idea/libraries/guava_listenablefuture.xml new file mode 100644 index 0000000..372c95e --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/guava_listenablefuture.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_annotations_24_0_1.xml b/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_annotations_24_0_1.xml new file mode 100644 index 0000000..9010056 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_annotations_24_0_1.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_1_9_10.xml b/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_1_9_10.xml new file mode 100644 index 0000000..f0fccfa --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_1_9_10.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_common_1_9_10.xml b/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_common_1_9_10.xml new file mode 100644 index 0000000..c374d5b --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_common_1_9_10.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_9_10.xml b/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_9_10.xml new file mode 100644 index 0000000..1bf8b00 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_9_10.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_9_10.xml b/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_9_10.xml new file mode 100644 index 0000000..74f5472 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_9_10.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlinx_kotlinx_coroutines_android_1_7_3.xml b/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlinx_kotlinx_coroutines_android_1_7_3.xml new file mode 100644 index 0000000..6adc21f --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlinx_kotlinx_coroutines_android_1_7_3.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_1_7_3.xml b/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_1_7_3.xml new file mode 100644 index 0000000..6b0ad19 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/libraries/org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_1_7_3.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/projectSettingsUpdater.xml b/.idea/.idea.MIES_System/.idea/projectSettingsUpdater.xml new file mode 100644 index 0000000..ef20cb0 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/projectSettingsUpdater.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/.idea/.idea.MIES_System/.idea/vcs.xml b/.idea/.idea.MIES_System/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/.idea.MIES_System/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/MIES_System/Converts/MenuItemTemplateSelector.cs b/MIES_System/Converts/MenuItemTemplateSelector.cs new file mode 100644 index 0000000..2c0c043 --- /dev/null +++ b/MIES_System/Converts/MenuItemTemplateSelector.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; +using Avalonia.Controls; +using Avalonia.Controls.Templates; +using Avalonia.Metadata; +using MIES_System.Models; + +namespace MIES_System.Converts; + +public class MenuItemTemplateSelector : IDataTemplate +{ + [Content] + public Dictionary Templates { get; } = new(); + + public Control? Build(object? param) + { + if (param is MenuItemModel menuItem) + { + var key = menuItem.EsSeccion ? "SeccionTemplate" : "MenuItemTemplate"; + return Templates[key].Build(param); + } + return null; + } + + public bool Match(object? data) + { + return data is MenuItemModel; + } +} \ No newline at end of file diff --git a/MIES_System/Converts/MenuItemVisibilityConverter.cs b/MIES_System/Converts/MenuItemVisibilityConverter.cs new file mode 100644 index 0000000..b2eaa74 --- /dev/null +++ b/MIES_System/Converts/MenuItemVisibilityConverter.cs @@ -0,0 +1,34 @@ +using System; +using System.Globalization; +using Avalonia.Data.Converters; + +namespace MIES_System.Converts; + +public class BoolToVisibilityConverter : IValueConverter +{ + public static readonly BoolToVisibilityConverter Instance = new(); + public static readonly InverseBoolToVisibilityConverter Inverse = new(); + + public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) + { + return value is bool b && b; + } + + public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } +} + +public class InverseBoolToVisibilityConverter : IValueConverter +{ + public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) + { + return value is bool b && !b; + } + + public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/MIES_System/Models/ExpedienteModel.cs b/MIES_System/Models/ExpedienteModel.cs new file mode 100644 index 0000000..6d70a99 --- /dev/null +++ b/MIES_System/Models/ExpedienteModel.cs @@ -0,0 +1,49 @@ +using System; +using CommunityToolkit.Mvvm.ComponentModel; + +namespace MIES_System.Models; + +public partial class ExpedienteModel : ObservableObject +{ + + [ObservableProperty] private string nombre; + [ObservableProperty] private DateTime? fechaNacimiento; + [ObservableProperty] private DateTime? fechaIngreso; + [ObservableProperty] private string responsable; + [ObservableProperty] private string dui; + [ObservableProperty] private string genero; + [ObservableProperty] private string localidad; + + // Nuevos campos para información de padres + [ObservableProperty] private string nombrePadre; + [ObservableProperty] private string telefonoPadre; + [ObservableProperty] private string nombreMadre; + [ObservableProperty] private string telefonoMadre; + + // Nuevos campos para información del tutor + [ObservableProperty] private string nombreTutor; + [ObservableProperty] private string telefonoTutor; + + // Propiedad para mostrar la edad + public int Edad + { + get + { + if (FechaNacimiento == null) return -1; + + var today = DateTime.Today; + var edad = today.Year - FechaNacimiento.Value.Year; + + if (FechaNacimiento.Value.Date > today.AddYears(-edad)) + edad--; + + return edad; + } + } + + // Este método se genera automáticamente cuando cambia FechaNacimiento + partial void OnFechaNacimientoChanged(DateTime? value) + { + OnPropertyChanged(nameof(Edad)); + } +} \ No newline at end of file diff --git a/MIES_System/Models/MenuItemModel.cs b/MIES_System/Models/MenuItemModel.cs new file mode 100644 index 0000000..7b816fe --- /dev/null +++ b/MIES_System/Models/MenuItemModel.cs @@ -0,0 +1,35 @@ + using System.Windows.Input; + using CommunityToolkit.Mvvm.ComponentModel; + + namespace MIES_System.Models; + + public partial class MenuItemModel:ObservableObject + { + [ObservableProperty] + private string _titulo = ""; + + [ObservableProperty] + private string _icono = ""; + + [ObservableProperty] + private ICommand _comando = null!; + + [ObservableProperty] + private bool _esSeccion = false; + + [ObservableProperty] + private string _grupo = ""; + + // Constructor vacío para el DataTemplate + public MenuItemModel() { } + + // Constructor con parámetros para facilitar la creación + public MenuItemModel(string titulo, ICommand comando, string icono = "", bool esSeccion = false, string grupo = "") + { + Titulo = titulo; + Comando = comando; + Icono = icono; + EsSeccion = esSeccion; + Grupo = grupo; + } + } \ No newline at end of file diff --git a/MIES_System/Services/NavigationService.cs b/MIES_System/Services/NavigationService.cs new file mode 100644 index 0000000..89e592d --- /dev/null +++ b/MIES_System/Services/NavigationService.cs @@ -0,0 +1,22 @@ +using System; +using Avalonia.Controls; + +namespace MIES_System.Services; + +public class NavigationService +{ + private ContentControl? _content; + + public void Configure(ContentControl content) + { + _content = content; + } + + public void Navigate(UserControl view) + { + if (_content == null) + throw new Exception("NavigationService no está configurado."); + + _content.Content = view; + } +} \ No newline at end of file diff --git a/MIES_System/ViewModels/ExpedienteViewModel.cs b/MIES_System/ViewModels/ExpedienteViewModel.cs new file mode 100644 index 0000000..28e169b --- /dev/null +++ b/MIES_System/ViewModels/ExpedienteViewModel.cs @@ -0,0 +1,282 @@ +using System; +using System.Collections.ObjectModel; +using System.Linq; +using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.Input; +using MIES_System.Models; + +namespace MIES_System.ViewModels; + +public partial class ExpedienteViewModel : ViewModelBase +{ +// ------------------------- + // LISTA GENERAL + // ------------------------- + + [ObservableProperty] + private ObservableCollection listaNinos = new(); + + [ObservableProperty] + private ObservableCollection generos; + + [ObservableProperty] + private ExpedienteModel? ninoSeleccionado; + + [ObservableProperty] + private bool mostrarModal = false; + + [ObservableProperty] + private string textoBusqueda = ""; + + // ------------------------- + // CAMPOS DEL FORM + // ------------------------- + + [ObservableProperty] private string formNombre = ""; + [ObservableProperty] private DateTimeOffset? formFechaNacimiento = DateTime.Now; + [ObservableProperty] private DateTimeOffset? formFechaIngreso = DateTime.Now; + [ObservableProperty] private string formResponsable = ""; + [ObservableProperty] private string formDui = ""; + [ObservableProperty] private string formGenero = ""; + [ObservableProperty] private string formLocalidad = ""; + + // Nuevos campos para información de padres + [ObservableProperty] private string formNombrePadre = ""; + [ObservableProperty] private string formTelefonoPadre = ""; + [ObservableProperty] private string formNombreMadre = ""; + [ObservableProperty] private string formTelefonoMadre = ""; + + // Nuevos campos para información del tutor + [ObservableProperty] private string formNombreTutor = ""; + [ObservableProperty] private string formTelefonoTutor = ""; + + // ------------------------- + [ObservableProperty] bool puedeGuardar; + [ObservableProperty] bool puedeEliminar; + + public ExpedienteViewModel() + { + Generos = new ObservableCollection() + { + "Masculino", + "Femenino" + }; + PuedeGuardar = false; + } + + // Propiedad para lista filtrada + public ObservableCollection ListaNinosFiltrados + { + get + { + if (string.IsNullOrWhiteSpace(TextoBusqueda)) + return ListaNinos; + + var busqueda = TextoBusqueda.ToLower(); + return new ObservableCollection( + ListaNinos.Where(n => + n.Nombre?.ToLower().Contains(busqueda) == true || + n.Responsable?.ToLower().Contains(busqueda) == true || + n.Localidad?.ToLower().Contains(busqueda) == true || + n.NombrePadre?.ToLower().Contains(busqueda) == true || + n.NombreMadre?.ToLower().Contains(busqueda) == true || + n.NombreTutor?.ToLower().Contains(busqueda) == true + ) + ); + } + } + + // En tu ExpedienteViewModel, agrega esta propiedad: + public string TituloModal => + NinoSeleccionado == null ? "Nuevo Niño" : $"Editando: {NinoSeleccionado.Nombre}"; + + // ------------------------- + // COMANDOS + // ------------------------- + + [RelayCommand] + private void Nuevo() + { + PuedeGuardar = true; + NinoSeleccionado = null; + LimpiarFormulario(); + MostrarModal = true; + } + + [RelayCommand] + private void Guardar() + { + if (NinoSeleccionado == null) + { + // Crear nuevo niño + ListaNinos.Add(new ExpedienteModel() + { + Nombre = FormNombre, + FechaNacimiento = FormFechaNacimiento == null ? DateTime.Now : FormFechaNacimiento.Value.DateTime, + FechaIngreso = FormFechaIngreso == null ? DateTime.Now : FormFechaIngreso.Value.DateTime, + Responsable = FormResponsable, + Dui = FormDui, + Genero = FormGenero, + Localidad = FormLocalidad, + NombrePadre = FormNombrePadre, + TelefonoPadre = FormTelefonoPadre, + NombreMadre = FormNombreMadre, + TelefonoMadre = FormTelefonoMadre, + NombreTutor = FormNombreTutor, + TelefonoTutor = FormTelefonoTutor + }); + } + else + { + // Actualizar el niño seleccionado + NinoSeleccionado.Nombre = FormNombre; + NinoSeleccionado.FechaNacimiento = FormFechaNacimiento?.DateTime; + NinoSeleccionado.FechaIngreso = FormFechaIngreso?.DateTime; + NinoSeleccionado.Responsable = FormResponsable; + NinoSeleccionado.Dui = FormDui; + NinoSeleccionado.Genero = FormGenero; + NinoSeleccionado.Localidad = FormLocalidad; + NinoSeleccionado.NombrePadre = FormNombrePadre; + NinoSeleccionado.TelefonoPadre = FormTelefonoPadre; + NinoSeleccionado.NombreMadre = FormNombreMadre; + NinoSeleccionado.TelefonoMadre = FormTelefonoMadre; + NinoSeleccionado.NombreTutor = FormNombreTutor; + NinoSeleccionado.TelefonoTutor = FormTelefonoTutor; + } + + MostrarModal = false; + LimpiarFormulario(); + OnPropertyChanged(nameof(ListaNinosFiltrados)); + } + + [RelayCommand] + private void Cancelar() + { + MostrarModal = false; + LimpiarFormulario(); + } + + [RelayCommand] + private void Editar(ExpedienteModel? nino = null) + { + // Si se pasa un parámetro, usar ese, sino usar el seleccionado + var ninoAEditar = nino ?? NinoSeleccionado; + + if (ninoAEditar != null) + { + NinoSeleccionado = ninoAEditar; + + // Copiar datos al form + FormNombre = ninoAEditar.Nombre; + FormFechaNacimiento = ninoAEditar.FechaNacimiento; + FormFechaIngreso = ninoAEditar.FechaIngreso; + FormResponsable = ninoAEditar.Responsable; + FormDui = ninoAEditar.Dui; + FormGenero = ninoAEditar.Genero; + FormLocalidad = ninoAEditar.Localidad; + FormNombrePadre = ninoAEditar.NombrePadre; + FormTelefonoPadre = ninoAEditar.TelefonoPadre; + FormNombreMadre = ninoAEditar.NombreMadre; + FormTelefonoMadre = ninoAEditar.TelefonoMadre; + FormNombreTutor = ninoAEditar.NombreTutor; + FormTelefonoTutor = ninoAEditar.TelefonoTutor; + + MostrarModal = true; + } + } + + private void LimpiarFormulario() + { + FormNombre = ""; + FormResponsable = ""; + FormDui = ""; + FormGenero = ""; + FormLocalidad = ""; + FormNombrePadre = ""; + FormTelefonoPadre = ""; + FormNombreMadre = ""; + FormTelefonoMadre = ""; + FormNombreTutor = ""; + FormTelefonoTutor = ""; + FormFechaIngreso = DateTime.Now; + FormFechaNacimiento = DateTime.Now; + } + + partial void OnFormNombreChanged(string value) + { + if (!string.IsNullOrEmpty(value)) + PuedeGuardar = true; + else PuedeGuardar = false; + } + + partial void OnTextoBusquedaChanged(string value) + { + OnPropertyChanged(nameof(ListaNinosFiltrados)); + } + + partial void OnNinoSeleccionadoChanged(ExpedienteModel? value) + { + if (value == null) + { + PuedeEliminar = false; + return; + }; + PuedeEliminar = true; + // Copiar datos al form + FormNombre = value.Nombre; + FormFechaNacimiento = value.FechaNacimiento; + FormFechaIngreso = value.FechaIngreso; + FormResponsable = value.Responsable; + FormDui = value.Dui; + FormGenero = value.Genero; + FormLocalidad = value.Localidad; + FormNombrePadre = value.NombrePadre; + FormTelefonoPadre = value.TelefonoPadre; + FormNombreMadre = value.NombreMadre; + FormTelefonoMadre = value.TelefonoMadre; + FormNombreTutor = value.NombreTutor; + FormTelefonoTutor = value.TelefonoTutor; + } + + [ObservableProperty] + private bool mostrarConfirmacionEliminar = false; + + [ObservableProperty] + private ExpedienteModel? ninoAEliminar; + + [RelayCommand] + private void Eliminar(ExpedienteModel? nino = null) + { + NinoAEliminar = nino ?? NinoSeleccionado; + + if (NinoAEliminar != null) + { + MostrarConfirmacionEliminar = true; + } + } + + [RelayCommand] + private void ConfirmarEliminacion() + { + if (NinoAEliminar != null) + { + ListaNinos.Remove(NinoAEliminar); + + if (NinoSeleccionado == NinoAEliminar) + { + NinoSeleccionado = null; + LimpiarFormulario(); + } + + CancelarEliminacion(); + OnPropertyChanged(nameof(ListaNinosFiltrados)); + } + } + + [RelayCommand] + private void CancelarEliminacion() + { + MostrarConfirmacionEliminar = false; + NinoAEliminar = null; + } +} \ No newline at end of file diff --git a/MIES_System/ViewModels/HomeViewModel.cs b/MIES_System/ViewModels/HomeViewModel.cs new file mode 100644 index 0000000..5371616 --- /dev/null +++ b/MIES_System/ViewModels/HomeViewModel.cs @@ -0,0 +1,103 @@ +using System.Collections.ObjectModel; +using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.Input; +using MIES_System.Models; +using MIES_System.Views; + +namespace MIES_System.ViewModels; + +public partial class HomeViewModel : ViewModelBase +{ + [ObservableProperty] + private object? currentView; + + public HomeViewModel() + { + CargarMenuItems(); + // Vista inicial + //CurrentView = new InicioView(); + } + + // ------------------------- + // COMANDOS + // ------------------------- + + [RelayCommand] + private void ShowInicio() + { + //CurrentView = new InicioView(); + } + + [RelayCommand] + private void ShowMiembros() + { + CurrentView = new ExpedienteView() + { + DataContext = new ExpedienteViewModel() + }; + } + + [RelayCommand] + private void ShowAsistencia() + { + //CurrentView = new AsistenciaView(); + } + + [RelayCommand] + private void ShowRoles() + { + //CurrentView = new RolesView(); + } + + [RelayCommand] + private void ShowConfig() + { + //CurrentView = new ConfigView(); + } + + + [ObservableProperty] + private ObservableCollection _menuItems = new(); + + + private void CargarMenuItems() + { + // Limpiar items existentes + MenuItems.Clear(); + + // Sección PRINCIPAL + MenuItems.Add(new MenuItemModel + { + Titulo = "PRINCIPAL", + EsSeccion = true, + Grupo = "Principal" + }); + + MenuItems.Add(new MenuItemModel + { + Titulo = "Inicio", + Icono = "🏠", + Comando = ShowInicioCommand, + Grupo = "Principal" + }); + + MenuItems.Add(new MenuItemModel + { + Titulo = "Miembros", + Icono = "👥", + Comando = ShowMiembrosCommand, + Grupo = "Principal" + }); + + MenuItems.Add(new MenuItemModel + { + Titulo = "Asistencia", + Icono = "📊", + Comando = ShowAsistenciaCommand, + Grupo = "Principal" + }); + } + + + +} \ No newline at end of file diff --git a/MIES_System/ViewModels/LoginViewModel.cs b/MIES_System/ViewModels/LoginViewModel.cs new file mode 100644 index 0000000..8bbe87c --- /dev/null +++ b/MIES_System/ViewModels/LoginViewModel.cs @@ -0,0 +1,45 @@ +using System; +using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.Input; + +namespace MIES_System.ViewModels; + +public partial class LoginViewModel : ViewModelBase +{ + [ObservableProperty] + private string username = string.Empty; + + [ObservableProperty] + private string password = string.Empty; + + [ObservableProperty] + private string errorMessage = string.Empty; + + public event Action? LoginSuccess; + + public LoginViewModel() + { + } + + [RelayCommand] + private void Login() + { + ErrorMessage = string.Empty; + + // Validación básica + if (string.IsNullOrWhiteSpace(Username) || + string.IsNullOrWhiteSpace(Password)) + { + ErrorMessage = "Ingrese su usuario y contraseña."; + return; + } + + if (Username == "admin" && Password == "1234") + { + LoginSuccess?.Invoke(); + return; + } + + ErrorMessage = "Usuario o contraseña incorrectos."; + } +} \ No newline at end of file diff --git a/MIES_System/Views/ExpedienteView.axaml b/MIES_System/Views/ExpedienteView.axaml new file mode 100644 index 0000000..03ac229 --- /dev/null +++ b/MIES_System/Views/ExpedienteView.axaml @@ -0,0 +1,360 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MIES_System/Views/HomeView.axaml.cs b/MIES_System/Views/HomeView.axaml.cs new file mode 100644 index 0000000..04aa063 --- /dev/null +++ b/MIES_System/Views/HomeView.axaml.cs @@ -0,0 +1,13 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; + +namespace MIES_System.Views; + +public partial class HomeView : UserControl +{ + public HomeView() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/MIES_System/Views/LoginView.axaml b/MIES_System/Views/LoginView.axaml new file mode 100644 index 0000000..fb28c90 --- /dev/null +++ b/MIES_System/Views/LoginView.axaml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + +