feature: lab5 main things works

This commit is contained in:
Danil Markov 2023-12-19 20:21:40 +04:00
parent 6b9b374c48
commit 5c3621d7ec
9 changed files with 84 additions and 109 deletions

119
.idea/workspace.xml generated
View File

@ -9,61 +9,22 @@
<option name="autoReloadType" value="NONE" /> <option name="autoReloadType" value="NONE" />
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="7c94e195-a540-483e-9a1c-11797aeb1741" name="Changes" comment="feature: lab4 maybe done"> <list default="true" id="7c94e195-a540-483e-9a1c-11797aeb1741" name="Changes" comment="feature: lab5 almost done, save commit">
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/model/BasketRemote.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/model/BasketServiceRemote.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/model/OrderRemote.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/model/OrderServiceRemote.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/model/ServiceRemote.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/model/UserRemote.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/model/UserRemoteSignIn.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/repository/BasketRepository.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/repository/OrderRepository.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/repository/RemoteKeyRepository.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/repository/ServiceRepository.kt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/repository/UserRepository.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/app/build.gradle.kts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/ServerService.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/ServerService.kt" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/ServerService.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/ServerService.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/ServiceRemoteMediator.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/ServiceRemoteMediator.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/repository/RestBasketRepository.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/repository/RestBasketRepository.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/repository/RestOrderRepository.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/repository/RestOrderRepository.kt" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/repository/RestOrderRepository.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/repository/RestOrderRepository.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/repository/RestServiceRepository.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/repository/RestServiceRepository.kt" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/repository/OrderRepository.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/repository/OrderRepository.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/repository/RestUserRepository.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/api/repository/RestUserRepository.kt" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/viewmodel/BasketViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/viewmodel/BasketViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/viewmodel/OrderViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/viewmodel/OrderViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/Basket/Basket.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/Basket/Basket.kt" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/Basket/Basket.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/Basket/Basket.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/Basket/BasketItemUI.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/Basket/BasketItemUI.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/List_of_Services/AddService.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/List_of_Services/AddService.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/List_of_Services/ListOfServices.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/List_of_Services/ListOfServices.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/List_of_Services/Service.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/List_of_Services/Service.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/Orders/Orders.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/Orders/Orders.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/Profile/Login.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/Profile/Login.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/Profile/ProfileChange.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/Profile/ProfileChange.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/Profile/Registration.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/composeui/Profile/Registration.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/database/AppDatabase.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/database/AppDatabase.kt" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/database/AppDatabase.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/database/AppDatabase.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/database/dao/ServiceDao.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/database/dao/ServiceDao.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/database/dao/UserDao.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/database/dao/UserDao.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/database/repository/BasketRepository.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/database/repository/BasketRepositoryImpl.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/database/repository/OrderRepository.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/database/repository/OrderRepositoryImpl.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/database/repository/RemoteKeysRepository.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/database/repository/RemoteKeysRepositoryImpl.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/database/repository/ServiceRepository.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/database/repository/ServiceRepositoryImpl.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/database/repository/UserRepository.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/database/repository/UserRepositoryImpl.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/di/AppContainer.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/di/AppContainer.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/di/AppDataContainer.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/di/AppDataContainer.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/model/RemoteKeys.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/model/RemoteKeys.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/model/User.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/model/User.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/viewmodel/AppViewModelProvider.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/viewmodel/AppViewModelProvider.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/viewmodel/BasketViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/viewmodel/BasketViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/viewmodel/OrderViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/viewmodel/OrderViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/viewmodel/ServiceViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/viewmodel/ServiceViewModel.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/viewmodel/UserViewModel.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/viewmodel/UserViewModel.kt" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" /> <option name="LAST_RESOLUTION" value="IGNORE" />
</component> </component>
<component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[adb-6681ed71-4kOMN8._adb-tls-connect._tcp]" /> <component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[C:\Users\Danil\.android\avd\Pixel_3a_API_34_extension_level_7_x86_64.avd]" />
<component name="ExternalProjectsData"> <component name="ExternalProjectsData">
<projectState path="$PROJECT_DIR$"> <projectState path="$PROJECT_DIR$">
<ProjectState /> <ProjectState />
@ -103,35 +64,34 @@
<option name="hideEmptyMiddlePackages" value="true" /> <option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" /> <option name="showLibraryContents" value="true" />
</component> </component>
<component name="PropertiesComponent">{ <component name="PropertiesComponent"><![CDATA[{
&quot;keyToString&quot;: { "keyToString": {
&quot;ApkExportedModule&quot;: &quot;My_Application.app&quot;, "ApkExportedModule": "My_Application.app",
&quot;ExportApk.ApkPathForMy_Application.app&quot;: &quot;C:\\Users\\Danil\\Desktop\\MDP\\labs\\app&quot;, "ExportApk.ApkPathForMy_Application.app": "C:\\Users\\Danil\\Desktop\\MDP\\labs\\app",
&quot;PROJECT_TRUSTED_KEY&quot;: &quot;true&quot;, "PROJECT_TRUSTED_KEY": "true",
&quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;, "RunOnceActivity.OpenProjectViewOnStart": "true",
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;, "RunOnceActivity.ShowReadmeOnStart": "true",
&quot;RunOnceActivity.cidr.known.project.marker&quot;: &quot;true&quot;, "RunOnceActivity.cidr.known.project.marker": "true",
&quot;ToolWindowLogcat.ShowToolbar&quot;: &quot;false&quot;, "ToolWindowLogcat.ShowToolbar": "false",
&quot;cidr.known.project.marker&quot;: &quot;true&quot;, "cidr.known.project.marker": "true",
&quot;com.android.tools.idea.devicemanager.tab&quot;: &quot;Physical&quot;, "last_opened_file_path": "C:/Users/Danil/Downloads/test",
&quot;last_opened_file_path&quot;: &quot;C:/Users/Danil/Downloads/test&quot;, "project.structure.last.edited": "Modules",
&quot;project.structure.last.edited&quot;: &quot;Modules&quot;, "project.structure.proportion": "0.17",
&quot;project.structure.proportion&quot;: &quot;0.17&quot;, "project.structure.side.proportion": "0.2",
&quot;project.structure.side.proportion&quot;: &quot;0.2&quot;, "settings.editor.selected.configurable": "emulator"
&quot;settings.editor.selected.configurable&quot;: &quot;emulator&quot;
}, },
&quot;keyToStringList&quot;: { "keyToStringList": {
&quot;ExportApk.BuildVariants&quot;: [ "ExportApk.BuildVariants": [
&quot;release&quot; "release"
], ],
&quot;com.android.tools.idea.sqlite.queryhistory&quot;: [ "com.android.tools.idea.sqlite.queryhistory": [
&quot;insert into tbl_user values (1, \&quot;Danil\&quot;, \&quot;Markov\&quot;, \&quot;danil@mail.ru\&quot;, \&quot;123\&quot;, \&quot;ADMIN\&quot;, null)&quot;, "insert into tbl_user values (1, \"Danil\", \"Markov\", \"danil@mail.ru\", \"123\", \"ADMIN\", null)",
&quot;delete from tbl_user where userId = 6&quot;, "delete from tbl_user where userId = 6",
&quot;delete from tbl_user where userId = 4&quot;, "delete from tbl_user where userId = 4",
&quot;delete from tbl_user where userId = 2&quot; "delete from tbl_user where userId = 2"
] ]
} }
}</component> }]]></component>
<component name="PsdUISettings"> <component name="PsdUISettings">
<option name="MODULE_TAB" value="Signing Configs" /> <option name="MODULE_TAB" value="Signing Configs" />
<option name="LAST_EDITED_SIGNING_CONFIG" value="debug" /> <option name="LAST_EDITED_SIGNING_CONFIG" value="debug" />
@ -364,7 +324,14 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1702138495251</updated> <updated>1702138495251</updated>
</task> </task>
<option name="localTasksCounter" value="9" /> <task id="LOCAL-00009" summary="feature: lab5 almost done, save commit">
<created>1702979910728</created>
<option name="number" value="00009" />
<option name="presentableId" value="LOCAL-00009" />
<option name="project" value="LOCAL" />
<updated>1702979910728</updated>
</task>
<option name="localTasksCounter" value="10" />
<servers /> <servers />
</component> </component>
<component name="Vcs.Log.Tabs.Properties"> <component name="Vcs.Log.Tabs.Properties">
@ -385,7 +352,8 @@
<MESSAGE value="feature: lab4 add repos" /> <MESSAGE value="feature: lab4 add repos" />
<MESSAGE value="feature&amp;fix: lab4 add viewmodel, fix repos" /> <MESSAGE value="feature&amp;fix: lab4 add viewmodel, fix repos" />
<MESSAGE value="feature: lab4 maybe done" /> <MESSAGE value="feature: lab4 maybe done" />
<option name="LAST_COMMIT_MESSAGE" value="feature: lab4 maybe done" /> <MESSAGE value="feature: lab5 almost done, save commit" />
<option name="LAST_COMMIT_MESSAGE" value="feature: lab5 almost done, save commit" />
</component> </component>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager> <breakpoint-manager>
@ -397,13 +365,8 @@
</line-breakpoint> </line-breakpoint>
<line-breakpoint enabled="true" type="kotlin-line"> <line-breakpoint enabled="true" type="kotlin-line">
<url>file://$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/viewmodel/BasketViewModel.kt</url> <url>file://$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/viewmodel/BasketViewModel.kt</url>
<line>97</line> <line>131</line>
<option name="timeStamp" value="39" /> <option name="timeStamp" value="52" />
</line-breakpoint>
<line-breakpoint enabled="true" type="kotlin-line">
<url>file://$PROJECT_DIR$/app/src/main/java/com/example/myapplication/businessLogic/viewmodel/OrderViewModel.kt</url>
<line>48</line>
<option name="timeStamp" value="47" />
</line-breakpoint> </line-breakpoint>
</breakpoints> </breakpoints>
</breakpoint-manager> </breakpoint-manager>

View File

@ -124,7 +124,7 @@ interface ServerService {
@POST("order/create") @POST("order/create")
suspend fun createOrder( suspend fun createOrder(
@Body order: OrderRemote @Body order: OrderRemote
): Long )
@GET("order/getUserOrders/{userId}") @GET("order/getUserOrders/{userId}")
suspend fun getUserOrders( suspend fun getUserOrders(

View File

@ -13,8 +13,8 @@ import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.flowOf
class RestOrderRepository(private val server: ServerService): OrderRepository { class RestOrderRepository(private val server: ServerService): OrderRepository {
override suspend fun insert(order: Order): Long { override suspend fun insert(order: Order) {
return server.createOrder(order.toOrderRemote()) server.createOrder(order.toOrderRemote())
} }
override suspend fun addServiceToOrder(orderService: OrderService) { override suspend fun addServiceToOrder(orderService: OrderService) {

View File

@ -6,7 +6,7 @@ import com.example.myapplication.model.Service
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
interface OrderRepository { interface OrderRepository {
suspend fun insert(order: Order): Long suspend fun insert(order: Order)
suspend fun addServiceToOrder(orderService: OrderService) suspend fun addServiceToOrder(orderService: OrderService)
suspend fun delete(order: Order) suspend fun delete(order: Order)
suspend fun getServiceFromOrder(id: Int): Flow<List<Service>> suspend fun getServiceFromOrder(id: Int): Flow<List<Service>>

View File

@ -128,6 +128,7 @@ class BasketViewModel(private val basketRepository: BasketRepository, private va
} }
suspend fun getTotal(userId: Int): Double { suspend fun getTotal(userId: Int): Double {
return basketRepository.getTotalPriceForUser(userId) ?: 0.00 val price = basketRepository.getTotalPriceForUser(userId) ?: 0.00
return price
} }
} }

View File

@ -9,7 +9,6 @@ import com.example.myapplication.GlobalUser
import com.example.myapplication.businessLogic.repository.BasketRepository import com.example.myapplication.businessLogic.repository.BasketRepository
import com.example.myapplication.businessLogic.repository.OrderRepository import com.example.myapplication.businessLogic.repository.OrderRepository
import com.example.myapplication.model.Order import com.example.myapplication.model.Order
import com.example.myapplication.model.OrderService
import com.example.myapplication.model.Service import com.example.myapplication.model.Service
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -28,13 +27,7 @@ class OrderViewModel(private val orderRepository: OrderRepository, private val b
total = getTotal(userId), total = getTotal(userId),
creatorUserId = userId creatorUserId = userId
) )
orderRepository.insert(order)
var orderId = orderRepository.insert(order)
for(service in selectedItems.value!!){
val orderService = OrderService( orderId.toInt(), service.serviceId!!, 1)
orderRepository.addServiceToOrder(orderService)
}
} }
suspend fun getOrderWithServices(id: Int) : Flow<List<Service>> { suspend fun getOrderWithServices(id: Int) : Flow<List<Service>> {

View File

@ -31,6 +31,7 @@ import com.example.myapplication.GlobalUser
import com.example.myapplication.businessLogic.viewmodel.AppViewModelProvider import com.example.myapplication.businessLogic.viewmodel.AppViewModelProvider
import com.example.myapplication.businessLogic.viewmodel.BasketViewModel import com.example.myapplication.businessLogic.viewmodel.BasketViewModel
import com.example.myapplication.businessLogic.viewmodel.OrderViewModel import com.example.myapplication.businessLogic.viewmodel.OrderViewModel
import com.example.myapplication.composeui.Navbar.NavItem
import com.example.myapplication.composeui.Profile.Login import com.example.myapplication.composeui.Profile.Login
import com.example.myapplication.ui.theme.BlueMain import com.example.myapplication.ui.theme.BlueMain
import com.example.myapplication.ui.theme.GreenBtn import com.example.myapplication.ui.theme.GreenBtn
@ -90,6 +91,7 @@ fun Basket(navController : NavHostController,
Button( Button(
onClick = { onClick = {
orderViewModel.createOrder() orderViewModel.createOrder()
navController.navigate(NavItem.Orders.route)
}, },
modifier = Modifier modifier = Modifier
.height(60.dp) .height(60.dp)

View File

@ -15,7 +15,6 @@ import com.example.myapplication.model.BasketService
import com.example.myapplication.model.Order import com.example.myapplication.model.Order
import com.example.myapplication.model.OrderService import com.example.myapplication.model.OrderService
import com.example.myapplication.model.RemoteKeys import com.example.myapplication.model.RemoteKeys
import com.example.myapplication.model.RoleEnum
import com.example.myapplication.model.Service import com.example.myapplication.model.Service
import com.example.myapplication.model.User import com.example.myapplication.model.User
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
@ -37,15 +36,15 @@ abstract class AppDatabase : RoomDatabase(){
private var INSTANCE: AppDatabase? = null private var INSTANCE: AppDatabase? = null
suspend fun populateDatabase() { suspend fun populateDatabase() {
INSTANCE?.let { database -> // INSTANCE?.let { database ->
// User // // User
val userDao = database.userDao() // val userDao = database.userDao()
val user1 = User(null, "Danil", "Markov", "danil@mail.ru", "123", RoleEnum.Admin) // val user1 = User(null, "Danil", "Markov", "danil@mail.ru", "123", RoleEnum.Admin)
userDao.insert(user1) // userDao.insert(user1)
val basketDao = database.basketDao() // val basketDao = database.basketDao()
val basket1 = Basket(null, user1.userId!!) // val basket1 = Basket(null, user1.userId!!)
basketDao.insert(basket1) // basketDao.insert(basket1)
} // }
} }
fun getInstance(appContext: Context): AppDatabase { fun getInstance(appContext: Context): AppDatabase {

View File

@ -6,17 +6,34 @@ import com.example.myapplication.model.Order
import com.example.myapplication.model.OrderService import com.example.myapplication.model.OrderService
import com.example.myapplication.model.Service import com.example.myapplication.model.Service
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.flow
class OrderRepositoryImpl(private val orderDao: OrderDao): OrderRepository { class OrderRepositoryImpl(private val orderDao: OrderDao): OrderRepository {
override suspend fun insert(order: Order) = orderDao.insert(order) // override suspend fun insert(order: Order) = orderDao.insert(order)
override suspend fun addServiceToOrder(orderService: OrderService) = orderDao.insertOrderService(orderService) // override suspend fun addServiceToOrder(orderService: OrderService) = orderDao.insertOrderService(orderService)
override suspend fun delete(order: Order) = orderDao.delete(order) // override suspend fun delete(order: Order) = orderDao.delete(order)
// override suspend fun getServiceFromOrder(id: Int): Flow<List<Service>> {
// TODO("Not yet implemented")
// }
// suspend fun getOrderWithServices(id: Int) = orderDao.getOrderWithServices(id)
// suspend fun getAllOrders() = orderDao.getAllOrders()
// override suspend fun getUserOrders(id: Int): Flow<List<Order>> = flow { orderDao.getUserOrders(id).first().orders }
override suspend fun insert(order: Order) {
TODO("Not yet implemented")
}
override suspend fun addServiceToOrder(orderService: OrderService) {
TODO("Not yet implemented")
}
override suspend fun delete(order: Order) {
TODO("Not yet implemented")
}
override suspend fun getServiceFromOrder(id: Int): Flow<List<Service>> { override suspend fun getServiceFromOrder(id: Int): Flow<List<Service>> {
TODO("Not yet implemented") TODO("Not yet implemented")
} }
suspend fun getOrderWithServices(id: Int) = orderDao.getOrderWithServices(id)
suspend fun getAllOrders() = orderDao.getAllOrders() override suspend fun getUserOrders(id: Int): Flow<List<Order>> {
override suspend fun getUserOrders(id: Int): Flow<List<Order>> = flow { orderDao.getUserOrders(id).first().orders } TODO("Not yet implemented")
}
} }