Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 
 
 

160 rindas
4.4 KiB

  1. import 'package:file_picker/file_picker.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:qadirneyriz/services/meetings/meetings.dart';
  4. import 'package:qadirneyriz/utils/enums/status.dart';
  5. class MeetingSummaryState extends ChangeNotifier {
  6. // send add meeting minute
  7. MeetingsApi meetingsApi = MeetingsApi();
  8. Status statusMinuteMeeting = Status.empty;
  9. String? messageMinuteMeeting;
  10. Map? errorsMinuteMeeting;
  11. Future<Status> addMinuteMeeting(
  12. {required int id,
  13. required String description,
  14. required List<PlatformFile> meetingFiles}) async {
  15. statusMinuteMeeting = Status.loading;
  16. notifyListeners();
  17. try {
  18. final result = await meetingsApi.addMeetingMinuteApi(
  19. id: id, description: description, meetingFiles: meetingFiles);
  20. if (result.isOk) {
  21. statusMinuteMeeting = Status.ready;
  22. messageMinuteMeeting = result.message;
  23. } else if (result.isOk == false) {
  24. // print(result.isOk);
  25. errorsMinuteMeeting = result.errors;
  26. messageMinuteMeeting = result.message;
  27. statusMinuteMeeting = Status.error;
  28. } else {
  29. statusMinuteMeeting = Status.error;
  30. }
  31. notifyListeners();
  32. } catch (e) {
  33. statusMinuteMeeting = Status.error;
  34. // print(e);
  35. }
  36. notifyListeners();
  37. // print(statusMinuteMeeting);
  38. return statusMinuteMeeting;
  39. }
  40. List<PlatformFile>? selectedFiles;
  41. Future<void> pickFiles() async {
  42. final result = await FilePicker.platform.pickFiles(
  43. allowMultiple: true,
  44. );
  45. if (result != null) {
  46. selectedFiles = result.files;
  47. notifyListeners();
  48. }
  49. }
  50. void removeFile(int index) {
  51. selectedFiles!.removeAt(index);
  52. notifyListeners();
  53. }
  54. // download summary
  55. Status statusDownload = Status.empty;
  56. String? messageDownload;
  57. Future<Status> downloadSummary({required int id}) async {
  58. statusDownload = Status.loading;
  59. notifyListeners();
  60. try {
  61. final result = await meetingsApi.downloadSummary(id: id);
  62. if (result == null) {
  63. statusDownload = Status.error;
  64. } else {
  65. if (result.isOk) {
  66. statusDownload = Status.ready;
  67. messageDownload = result.message ?? '';
  68. } else {
  69. statusDownload = Status.error;
  70. }
  71. }
  72. } catch (e) {
  73. statusDownload = Status.error;
  74. }
  75. notifyListeners();
  76. return statusDownload;
  77. }
  78. // get file string
  79. Map<int, Status> stringsFilsStatus = {};
  80. Map<int, List<String>> filesStringModel = {};
  81. Map<int, List<String>?> messageStringFiles = {};
  82. Map? errorsStringFiles;
  83. Future<Map<int, Status>> getStringFiles({required int id}) async {
  84. if (filesStringModel[id] != null && filesStringModel[id]!.isNotEmpty) {
  85. try {
  86. filesStringModel[id] = await meetingsApi.getListStringFils(id: id);
  87. print('${filesStringModel[id]}');
  88. stringsFilsStatus[id] = Status.ready;
  89. print('${filesStringModel} filesStringModel[id]');
  90. } catch (e) {
  91. stringsFilsStatus[id] = Status.error;
  92. print('$e');
  93. }
  94. } else {
  95. stringsFilsStatus[id] = Status.ready;
  96. notifyListeners();
  97. try {
  98. filesStringModel[id] = await meetingsApi.getListStringFils(id: id);
  99. print('${filesStringModel[id]}');
  100. stringsFilsStatus[id] = Status.ready;
  101. print('${filesStringModel} filesStringModel[id]');
  102. } catch (e) {
  103. stringsFilsStatus[id] = Status.error;
  104. print('$e');
  105. }
  106. }
  107. notifyListeners();
  108. print('${stringsFilsStatus} stringsFilsStatus');
  109. return stringsFilsStatus;
  110. }
  111. // delete file of summary
  112. Status statusDeleteFile = Status.empty;
  113. String? messageDeleteFile;
  114. Map? errorsDeleteFile;
  115. Future<Status> deleteFileSummary({
  116. required int id,
  117. required String text,
  118. }) async {
  119. statusDeleteFile = Status.loading;
  120. notifyListeners();
  121. try {
  122. final result = await meetingsApi.deleteFileSummary(id: id, text: text);
  123. if (result.isOk) {
  124. statusDeleteFile = Status.ready;
  125. messageDeleteFile = result.message;
  126. } else if (result.isOk == false) {
  127. print(result.isOk);
  128. errorsDeleteFile = result.errors;
  129. messageDeleteFile = result.message;
  130. statusDeleteFile = Status.error;
  131. }
  132. notifyListeners();
  133. } catch (e) {
  134. statusDeleteFile = Status.error;
  135. print(e);
  136. }
  137. notifyListeners();
  138. print(statusDeleteFile);
  139. return statusDeleteFile;
  140. }
  141. }