Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void ModifyInstsAndChannels(ChannelEditRequest request)
- {
- var merchantInsts = _dbfd.MerchantInst.Where(mi => mi.MerchantId == request.MerchantId).ToList();
- var query = (from miNew in request.MerchantInsts
- join mi in merchantInsts
- on miNew.InstCode equals mi.InstCode into g
- from miOld in g.DefaultIfEmpty()
- select new { miNew, miOld });
- var list = query.ToList();
- foreach (var pair in list)
- {
- var miNew = pair.miNew;
- var miOld = pair.miOld;
- if (miOld == null)
- {
- if (!miNew.Checked) continue;
- var mi = miNew;
- mi.Guid = Guid.NewGuid().ToString("N");
- mi.CreateTime = DateTime.Now;
- mi.OptUser = request.OptUser;
- mi.MerchantChannels = miNew.MerchantChannels.Where(mc => mc.Checked).Select(mc =>
- {
- mc.CreateTime = DateTime.Now;
- mc.OptUser = request.OptUser;
- mc.Guid = Guid.NewGuid().ToString("N");
- return mc;
- }).ToList();
- _dbfd.MerchantInst.Add(mi);
- }
- else if (miNew.Checked)
- {
- miOld.InstMerchantId = miNew.InstMerchantId;
- miOld.InstKey = miNew.InstKey;
- miOld.InstShowName = miNew.InstShowName;
- miOld.Checked = miNew.Checked;
- miOld.UpdateTime = DateTime.Now;
- miOld.OptUser = request.OptUser;
- miOld.Guid = Guid.NewGuid().ToString("N");
- ModifyMerchantChannels(request.MerchantId, miNew.InstCode, request.OptUser, miNew.MerchantChannels);
- }
- else if (miOld.Checked && !miNew.Checked)
- {
- miOld.Checked = false;
- miOld.OptUser = request.OptUser;
- miOld.UpdateTime = DateTime.Now;
- miOld.Guid = Guid.NewGuid().ToString("N");
- }
- }
- _dbfd.SaveChanges();
- }
- private void ModifyMerchantChannels(string merchantId, string instCode, string optUser, IEnumerable<MerchantChannel> newMerchantChannels)
- {
- var oldMerchantChannels = _dbfd.MerchantChannel.Where(mc => mc.MerchantId == merchantId && mc.InstCode == instCode).ToList();
- var query = (from mcNew in newMerchantChannels
- join mcOld in oldMerchantChannels
- on mcNew.ChannelId equals mcOld.ChannelId into g
- from mcOld in g.DefaultIfEmpty()
- select new { mcNew, mcOld });
- var list = query.ToList();
- foreach (var pair in list)
- {
- var mcOld = pair.mcOld;
- var mcNew = pair.mcNew;
- if (mcOld == null)
- {
- if (!mcNew.Checked) continue;
- MerchantChannel mc = mcNew;
- mc.CreateTime = DateTime.Now;
- mc.OptUser = optUser;
- mc.Guid = Guid.NewGuid().ToString("N");
- _dbfd.MerchantChannel.Add(mc);
- }
- else if (mcNew.Checked)
- {
- mcOld.InstCode = mcNew.InstCode;
- mcOld.ApplyingType = mcNew.ApplyingType;
- mcOld.Fee = mcNew.Fee;
- mcOld.Checked = mcNew.Checked;
- mcOld.UpdateTime = DateTime.Now;
- mcOld.OptUser = optUser;
- mcOld.Guid = Guid.NewGuid().ToString("N");
- }
- else if (mcOld.Checked && !mcNew.Checked)
- {
- mcOld.Checked = false;
- mcOld.UpdateTime = DateTime.Now;
- mcOld.OptUser = optUser;
- mcOld.Guid = Guid.NewGuid().ToString("N");
- }
- }
- }
Add Comment
Please, Sign In to add comment