public OrdersViewModel([Import("OrdersProvider")] IDataProvider <Order> ordersProvider,
                               [Import("OrderPositionsProvider")] IOrderPostionsProvider <OrderPosition> orderPositionProvider,
                               [Import("InvoiceProvider")] IDataProvider <Invoice> invoiceProvider,
                               [Import("OrderFilesProvider")] IOrderPostionsProvider <OrderFilePosition> orderFilePositionsProvider,

                               [Import("SupplierProvider")] IDataProvider <Supplier> supplierProvider,
                               [Import("CodesProvider")] IDataProvider <Code> codesProvider,
                               [Import("StoragePlaceProvider")] IDataProvider <StoragePlace> storagePlacesProvider,
                               [Import("User")] IUser user)
        {
            this.ordersProvider            = ordersProvider;
            this.orderPositionProvider     = orderPositionProvider;
            this.codesProvider             = codesProvider;
            this.invoiceProvider           = invoiceProvider;
            this.orderFilePostionsProvider = orderFilePositionsProvider;
            this.supplierProvider          = supplierProvider;
            this.storagePlacesProvider     = storagePlacesProvider;
            this.user = (User)user;

            this.orders        = new BindableCollection <OrderViewModel>();
            this.Orders        = CollectionViewSource.GetDefaultView(this.orders);
            this.Orders.Filter = item =>
            {
                OrderViewModel orderModel = item as OrderViewModel;
                return(orderModel.Status.GetAttribute <ViewRoles>().UserRoles.Contains(this.user.Role));
            };
            this.SelectedOrder = this.orders.FirstOrDefault();
        }
 public SupplyOrderViewModel(SupplyOrder order, IOrderPostionsProvider <OrderPosition> orderPositionProvide, IDataProvider <Code> codesProvider, User user, IDataProvider <Order> ordersProvider, Action <object> ordersOnCollectionChanged, IDataProvider <Invoice> invoiceProvider, IDataProvider <OrderFilePosition> orderFilePositionsProvider, IDataProvider <Supplier> supplierProvider, IDataProvider <StoragePlace> storagePlacesProvider)
     : base(order, orderPositionProvide, codesProvider, user, ordersProvider, invoiceProvider, orderFilePositionsProvider, supplierProvider, storagePlacesProvider)
 {
     this.order          = order;
     this.orderPositions = new BindableCollection <SupplyOrderPositionViewModel>();
     this.OrderPositions = CollectionViewSource.GetDefaultView(this.orderPositions);
     this.LoadPositions();
     base.report = this.Report;
     base.ordersOnCollectionChanged  = ordersOnCollectionChanged;
     this.AddOrderPositionCommand    = new DelegateCommand(this.AddOrderPosition, o => CanAddOrderPosition);
     this.DeleteOrderPositionCommand = new DelegateCommand(this.DeleteOrderPosition, o => this.CanDeleteOrderPosition);
     //this.order.Code = this.codes.FirstOrDefault();
     this.AddFileCommand = new DelegateCommand(this.AddFile, o => this.CanAddFile);
 }
        public OrderViewModel(Order order, IOrderPostionsProvider <OrderPosition> orderPositionProvider, IDataProvider <Code> codesProvider, User user, IDataProvider <Order> ordersProvider, IDataProvider <Invoice> invoiceProvider, IDataProvider <OrderFilePosition> orderFilePositionsProvider, IDataProvider <Supplier> supplierProvider, IDataProvider <StoragePlace> storagePlacesProvider)
        {
            this.order = order;
            this.orderPositionProvider      = orderPositionProvider;
            this.codesProvider              = codesProvider;
            this.invoiceProvider            = invoiceProvider;
            this.orderFilePositionsProvider = orderFilePositionsProvider;
            this.supplierProvider           = supplierProvider;
            this.User = user;

            this.codes                 = this.codesProvider.GetAll();
            this.invoices              = this.invoiceProvider.GetAll().Where(i => i.OrderGuid == Guid.Empty);
            this.suppliers             = this.supplierProvider.GetAll();
            this.storagePlacesProvider = storagePlacesProvider;
            this.orderProvider         = ordersProvider;
            //this.orderFilePositionsViews =
            //    this.order.FilePositions.Select(o => new OrderFilePositionViewModel(o)).ToList();
            this.orderFiles   = new ObservableCollection <OrderFilePositionViewModel>();
            this.OrderFiles   = CollectionViewSource.GetDefaultView(this.orderFiles);
            this.FileSelected = true;
            this.LoadFilePositions();

            this.DeleteFileCommand = new DelegateCommand(this.DeleteFile, o => this.CanDeleteFile);

            this.SelectFileCommand  = new DelegateCommand(this.SelectFile, o => this.CanSelectFile);
            this.PromoteCommand     = new DelegateCommand(this.Promote, o => this.CanPromote);
            this.PrintReportCommand = new DelegateCommand(this.PrintReport);

            this.StoragePlaces = new ObservableCollection <StoragePlace>();
            this.Positions     = new BindableCollection <string>
            {
                Resources.Master,
                Resources.Chief_engineer,
                Resources._2_engineer,
                Resources._3_engineer,
                Resources._4_engineer,
                Resources.Chief_officer,
                Resources._2Mate,
                Resources._3Mate,
                Resources.Cook,
                Resources.Superintendant
            };
            this.UpdateStoragePlaces();
        }