示例#1
0
        private void ImportService_AddColumnHeadersCompleted(object sender, AddColumnHeadersCompletedEventArgs e)
        {
            var sheetInfo = (SheetInfo)e.UserState;

            sheetInfo.ColumnHeaders = new List <ColumnHeader>(e.Result);

            // производим сопоставление собранных столбцов с Клиентами для определения вероятности принадлежности
            var temporaryClients = new List <RelatedClientInfo>();

            foreach (var ch in sheetInfo.ColumnHeaders)
            {
                if (ch.ColumnHeaderClients == null)
                {
                    continue;
                }

                foreach (var chcRelation in ch.ColumnHeaderClients)
                {
                    foreach (var client in Clients)
                    {
                        if (client.Id != chcRelation.ClientId)
                        {
                            continue;
                        }
                        var addedClient = sheetInfo.RelatedClientsContainClient(chcRelation.Client, temporaryClients);
                        if (addedClient != null)
                        {
                            addedClient.RelatedColumnHeaderCount++;
                        }
                        else
                        {
                            temporaryClients.Add(new RelatedClientInfo {
                                Client = chcRelation.Client, RelatedColumnHeaderCount = 1, ColumnHeaderCount = sheetInfo.ColumnHeaders.Count
                            });
                        }
                    }
                }
            }
            sheetInfo.RelatedClients = new ObservableCollection <RelatedClientInfo>();

            temporaryClients.Sort((one, two) =>
            {
                if (one.RelatedPercent > two.RelatedPercent)
                {
                    return(-1);
                }
                return(1);
            });
            temporaryClients.Where(c => c.RelatedPercent > 0).ForEach(c => sheetInfo.RelatedClients.Add(c));
            temporaryClients.Clear();

            if (sheetInfo.RelatedClients.Count > 0)
            {
                sheetInfo.SelectedRelatedClient = sheetInfo.RelatedClients[0];
            }
        }
示例#2
0
        private void ImportService_AddColumnHeadersCompleted(object sender, AddColumnHeadersCompletedEventArgs e)
        {
            var sheetInfo = (SheetInfo) e.UserState;
            sheetInfo.ColumnHeaders = new List<ColumnHeader>(e.Result);

            // производим сопоставление собранных столбцов с Клиентами для определения вероятности принадлежности
            var temporaryClients = new List<RelatedClientInfo>();
            foreach (var ch in sheetInfo.ColumnHeaders)
            {
                if (ch.ColumnHeaderClients == null)
                    continue;

                foreach (var chcRelation in ch.ColumnHeaderClients)
                {
                    foreach (var client in Clients)
                    {
                        if (client.Id != chcRelation.ClientId)
                            continue;
                        var addedClient = sheetInfo.RelatedClientsContainClient(chcRelation.Client, temporaryClients);
                        if (addedClient != null)
                            addedClient.RelatedColumnHeaderCount++;
                        else
                        {
                            temporaryClients.Add(new RelatedClientInfo { Client = chcRelation.Client, RelatedColumnHeaderCount = 1, ColumnHeaderCount = sheetInfo.ColumnHeaders.Count });
                        }
                    }
                }
            }
            sheetInfo.RelatedClients = new ObservableCollection<RelatedClientInfo>();

            temporaryClients.Sort((one, two) =>
            {
                if (one.RelatedPercent > two.RelatedPercent) return -1;
                return 1;
            });
            temporaryClients.Where(c => c.RelatedPercent > 0).ForEach(c => sheetInfo.RelatedClients.Add(c));
            temporaryClients.Clear();

            if (sheetInfo.RelatedClients.Count > 0)
                sheetInfo.SelectedRelatedClient = sheetInfo.RelatedClients[0];
        }