Пример #1
0
            public ServiceOrderOperationViewModel(ServiceOrderDetailViewModel parent, int index, EnosixServiceOrder_OPERATIONS operation)
            {
                Guard.NotNull(() => parent, parent);
                Guard.NotNull(() => operation, operation);

                this._parent    = parent;
                this._operation = operation;
                this._index     = index;
            }
Пример #2
0
        protected virtual void UpdateOperations()
        {
            EnosixServiceOrder_OPERATIONS[] operations = new EnosixServiceOrder_OPERATIONS[] { };

            if (null != ServiceOrder && null != ServiceOrder.OPERATIONS_Collection)
            {
                operations = ServiceOrder.OPERATIONS_Collection.ToArray();
            }


            // If any plants are defined on the timesheet then filter the operations list
            if (null != TimeSheet &&
                null != TimeSheet.PLANT_Collection &&
                TimeSheet.PLANT_Collection
                .Any(p => p.StartDate < p.EndDate && !string.IsNullOrWhiteSpace(p.Plant)))
            {
                var dateFrom = TimeSheet.DateFrom;
                var dateTo   = TimeSheet.DateTo;

                // Only select plants that are valid for the timesheet range
                var plants = TimeSheet.PLANT_Collection
                             .Where(p => p.StartDate <= dateFrom && p.EndDate >= dateTo)
                             .Select(p => p.Plant).ToArray();

                // Filter the operations by plant
                operations = operations
                             .Where(o => plants.Contains(o.Plant))
                             .ToArray();
            }

            lock (_operations) {
                int i = 0;


                _operations = Enumerable.ToArray(
                    from operation in operations
                    select new ServiceOrderOperationViewModel(this, i++, operation)
                    );
            }

            RaisePropertyChanged(() => Operations);
        }