altair0010

CreateMerge

Feb 4th, 2016
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. private int CreateMerge(IQueryable<rated> rateds)
  2. {
  3. //TODO: If merged, return merged record. Otherwise, flag records for merging and create a new record (NOTE: a negative return value indicated the id of the merge record).
  4. using (var db = new Entities())
  5. {
  6. //For automatic merging, attempt to combine records based on merging rules, if no conflict,
  7. //then update and re-associate all connected records..
  8. //TODO: Automatic merging.
  9. foreach (var rated in rateds)
  10. {
  11. var joinRated = from c in db.rateds
  12. join rc in db.rated_contact
  13. on c.ratedId equals rc.ratedId
  14. where rc.ratedId == rated.ratedId
  15. select new
  16. {
  17. c.ratedId,
  18. c.firstName,
  19. c.middleName,
  20. c.lastName,
  21. rc.contactTypeId,
  22. rc.value
  23. };
  24.  
  25.  
  26.  
  27. }
  28. //For manual merging, create a merge record then associate with all.
  29. var merge = new rated_merge()
  30. {
  31. timestamp = DateTime.Now
  32. };
  33. db.rated_merge.Add(merge);
  34.  
  35. foreach (var rated in rateds)
  36. {
  37. rated.rated_merge = merge;
  38. }
  39.  
  40. db.SaveChanges();
  41.  
  42. foreach (var rated in rateds)
  43. {
  44. var dbRated = db.rateds.Find(rated.ratedId);
  45. dbRated.ratedMergeId = merge.ratedMergeId;
  46. }
  47.  
  48. db.SaveChanges();
  49.  
  50. return merge.ratedMergeId;
  51. }
  52. }
Add Comment
Please, Sign In to add comment