Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private int CreateMerge(IQueryable<rated> rateds)
- {
- //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).
- using (var db = new Entities())
- {
- //For automatic merging, attempt to combine records based on merging rules, if no conflict,
- //then update and re-associate all connected records..
- //TODO: Automatic merging.
- foreach (var rated in rateds)
- {
- var joinRated = from c in db.rateds
- join rc in db.rated_contact
- on c.ratedId equals rc.ratedId
- where rc.ratedId == rated.ratedId
- select new
- {
- c.ratedId,
- c.firstName,
- c.middleName,
- c.lastName,
- rc.contactTypeId,
- rc.value
- };
- }
- //For manual merging, create a merge record then associate with all.
- var merge = new rated_merge()
- {
- timestamp = DateTime.Now
- };
- db.rated_merge.Add(merge);
- foreach (var rated in rateds)
- {
- rated.rated_merge = merge;
- }
- db.SaveChanges();
- foreach (var rated in rateds)
- {
- var dbRated = db.rateds.Find(rated.ratedId);
- dbRated.ratedMergeId = merge.ratedMergeId;
- }
- db.SaveChanges();
- return merge.ratedMergeId;
- }
- }
Add Comment
Please, Sign In to add comment