stdray: (Default)
[personal profile] stdray
Цейтнот. Недосып. Обедать не пошли. В итоге такие вот высеры


  1. public void PushToSite(Package package) {  
  2.     var pi = package.Data.DeserializeFromXml<TbcPIType>();  
  3.     using (var dbPackage = new DbPackagesDataContext(Settings.Default.Packages2ConnectionString))  
  4.     using (var dbSite = new DbScanSiteDataContext(Settings.Default.ScansSiteConnectionString)) {  
  5.         var goodsShipment = dbSite.tssGoodsShipments.FirstOrDefault(gs => gs.ID == pi.NakladID);  
  6.         goodsShipment = goodsShipment ?? pi.ToTssGoodsShipment(package).Do(dbSite.tssGoodsShipments.InsertOnSubmit);  
  7.         var removedContainers = from container in goodsShipment.tssContainers  
  8.                                 let exist = pi.GoodsShipment.ContainerNumbers.Any(c => c == container.Container)  
  9.                                 where !exist  
  10.                                 select container;  
  11.         removedContainers.ForEach(c => goodsShipment.tssContainers.Remove(c));  
  12.         var addedContainers = (from number in pi.GoodsShipment.ContainerNumbers  
  13.                                let exist = goodsShipment.tssContainers.Any(c => c.Container == number)  
  14.                                where !exist  
  15.                                select number)  
  16.                               .ToList()  
  17.                               .Select(number => new tssContainers { Container = number });  
  18.         goodsShipment.tssContainers.AddRange(addedContainers);  
  19.         goodsShipment.tssScans.ForEach(d => d.IsInLastPackage = false);  
  20.         var removedDocuments = from document in goodsShipment.tssScans  
  21.                                let exist = package.Document.Any(d => d.DocumentID == document.ID)  
  22.                                where !exist  
  23.                                select document;  
  24.         removedDocuments.ForEach(d => d.IsDeleted = true);  
  25.         var addedDocumnents = (from document in package.Document  
  26.                                let exist = goodsShipment.tssScans.Any(d => d.ID == document.DocumentID)  
  27.                                where !exist  
  28.                                select document)  
  29.                               .ToList()  
  30.                               .Select(document => dbPackage.Package.First(p => p.ID == document.DocumentID))  
  31.                               .Where(p => p.Type == PackageType.FileDocument)  
  32.                               .ToList()  
  33.                               .Select(PushToDisk);  
  34.         goodsShipment.tssScans.AddRange(addedDocumnents);  
  35.         dbPackage.SubmitChanges();  
  36.     }  
  37. }  



Повесил тасочку, постец написал, чо. Не забуду. Будем рефакторить.

(no subject)

Date: 2012-01-31 10:15 pm (UTC)
From: [identity profile] hls-1141.livejournal.com
пытался почитать - сломал глаза, много букав

(no subject)

Date: 2012-02-01 05:55 am (UTC)
From: [identity profile] stdray.livejournal.com
Таки мне удобней, чтобы в экран влезало максимально количество информации. Не люблю СКРОЛИТЬ.

December 2019

S M T W T F S
1234567
891011121314
15161718192021
222324252627 28
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags