예제 #1
0
 private void CallBackClearBcontrolHierarchyDataCompleted(object sender, ClearBcontrolHierarchyDataCompletedEventArgs e)
 {
     if (ClearBcontrolHierarchyDataRetrieved != null)
         ClearBcontrolHierarchyDataRetrieved(sender, e);
 }
        public void _datahandler_ClearBcontrolHierarchyDataRetrieved(object sender, ClearBcontrolHierarchyDataCompletedEventArgs e)
        {
            try
            {
                if (e.Error == null)
                {
                    if (e.Result != null)
                    {
                        if (e.Result)
                        {
                            if (_validatedDataSource != null)
                            {
                                var list = _validatedDataSource;

                                int SEGMENT_ROWS = 1000;
                                if (list != null)
                                {
                                    if (list.Count > 0)
                                    {
                                        _rowCount = list.Count;
                                        _runningCount = 0;
                                        _runningIntervalCount = 0;
                                        if (_rowCount / SEGMENT_ROWS > 0)
                                            _intervalCount = (_rowCount % SEGMENT_ROWS == 0) ? Math.Abs(_rowCount / SEGMENT_ROWS) : Math.Abs(_rowCount / SEGMENT_ROWS) + 1;
                                        else
                                            _intervalCount = 1;

                                        var tempList = new ObservableCollection<BcontrolHierarchyInfo>();
                                        foreach (var hierinfo in list)
                                        {
                                            ++_runningCount;
                                            tempList.Add(hierinfo);
                                            if (_rowCount < SEGMENT_ROWS)
                                            {
                                                if (_runningCount == _rowCount)
                                                    _datahandler.AddBcontrolHierarchyData(tempList);
                                            }
                                            else
                                            {
                                                if (_runningCount % SEGMENT_ROWS == 0)
                                                {
                                                    _datahandler.AddBcontrolHierarchyData(tempList);
                                                    tempList = new ObservableCollection<BcontrolHierarchyInfo>();
                                                }
                                                else if (_runningCount == _rowCount)
                                                    _datahandler.AddBcontrolHierarchyData(tempList);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                else
                {
                    eventaggregator.Publish<LogErrorMessage>(new LogErrorMessage() { LoggingString = e.Error.Message });
                    eventaggregator.Publish<LogErrorMessage>(new LogErrorMessage() { LoggingString = e.Error.ToString() });
                    ErrorMessage = "Unable to upload the hierarchy. " + e.Error.ToString();
                    ErrorOrMsgColor = "Red";
                    IsBusy = false;
                }
            }
            catch (FaultException ex)
            {
                _log.Append(ex.Message + " " + ex.StackTrace);

                ErrorMessage = ex.Message;
                ErrorOrMsgColor = "Red";
                IsBusy = false;
            }
        }