You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
car_provider_app/lib/view_models/items_view_model.dart

55 lines
1.6 KiB
Dart

import 'dart:io';
import 'package:car_provider_app/repositories/items_repo.dart';
import 'package:mc_common_app/models/general_models/m_response.dart';
import 'package:mc_common_app/models/services_models/item_model.dart';
import 'package:mc_common_app/services/common_services.dart';
import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/utils/utils.dart';
import 'package:mc_common_app/view_models/base_view_model.dart';
import 'package:file_picker/file_picker.dart';
class ItemsVM extends BaseVM {
final ItemsRepo itemsRepo;
final CommonAppServices commonServices;
ItemsVM({required this.itemsRepo, required this.commonServices});
//Items
ItemModel? serviceItems;
Future<String?> selectFile() async {
File? file = await commonServices.pickFile(fileType: FileType.image);
if (file != null) {
int sizeInBytes = file.lengthSync();
// double sizeInMb = sizeInBytes / (1024 * 1024);
if (sizeInBytes > 1000) {
Utils.showToast("File is larger then 1KB");
} else {
return Utils.convertFileToBase64(file);
}
} else {
// User canceled the picker
}
return null;
}
Future<MResponse> createServiceItem(Map map) async {
MResponse response = await itemsRepo.createServiceItems(map);
return response;
}
Future<ItemModel?> getServiceItems(int serviceId) async {
setOnlyState(ViewState.busy);
serviceItems = await itemsRepo.getServiceItems(serviceId);
setState(ViewState.idle);
return serviceItems;
}
Future<MResponse> updateServiceItem(Map map) async {
MResponse response = await itemsRepo.updateServiceItem(map);
return response;
}
}