| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using Comal.Classes;
- using InABox.Core;
- using InABox.Mobile;
- using Xamarin.Forms;
- namespace PRS.Mobile
- {
- public class EquipmentEditViewModel : MobileViewModel<Equipment, EquipmentShell>
- {
- public EquipmentDocumentModel Documents { get; private set; }
-
- public DocumentModel SpecificationSheet { get; private set; }
-
- public EquipmentKanbanModel Kanbans { get; private set; }
- public CoreObservableCollection<EquipmentKanbanShell> OpenKanbans { get; private set; }
- public Point Coordinates =>
- Item == null
- ? new Point()
- : new Point
- (
- Item.Latitude,
- Item.Longitude
- );
-
- public override bool IsChanged => Item == null || Item.ID == Guid.Empty || Item.IsChanged();
-
- public EquipmentEditViewModel()
- {
- Documents = new EquipmentDocumentModel(App.Data,
- () => new Filter<EquipmentDocument>(x => x.EntityLink.ID).IsEqualTo(Item?.ID ?? CoreUtils.FullGuid));
- SpecificationSheet = new DocumentModel(App.Data,
- () => new Filter<Document>(x => x.ID).IsEqualTo(Item?.SpecificationSheetID ?? CoreUtils.FullGuid));
- Kanbans = new EquipmentKanbanModel(App.Data,
- () => new Filter<Kanban>(x => x.Equipment.ID).IsEqualTo(Item?.ID ?? CoreUtils.FullGuid));
- Kanbans.Changed += (sender, args) =>
- OpenKanbans.ReplaceRange(Kanbans.Where(x => x.Completed.IsEmpty()).ToArray());
- OpenKanbans = new CoreObservableCollection<EquipmentKanbanShell>();
- }
- protected override void DoLoad()
- {
- var tasks = new Task[]
- {
- Task.Run(() => Documents.Refresh(true)),
- Task.Run(() => SpecificationSheet.Refresh(true)),
- Task.Run(() => Kanbans.Refresh(true)),
- };
- Task.WaitAll(tasks);
-
- }
- }
- }
|