public ActionResult MassMergeClients(BaseCheckClientModel m) { BaseCheckClientModel model = new BaseCheckClientModel(); model.SearchCheckClient = m.SearchCheckClient; List <CheckClient> listCheckClient = checkBusinessLogic.Check_Client(model.SearchCheckClient.GetCheckClientSearchCriteria()); if (m.IsHideClientId) { listCheckClient = listCheckClient.FindAll(a => !BaseCheckClientModel.ListHideClientId.Contains(a.Id)); } Dictionary <long, List <long> > dic = model.FindDuplicate(listCheckClient, m.SearchCheckClient, m.CountMerge); List <long> afterMergingListClient = new List <long>(); foreach (var item in dic) { if (item.Value.Count() > 1) { long resultClient = clientBusinessLogic.Clients_Merge(item.Key, item.Value.FirstOrDefault(), CurrentUser); for (int i = 1; i < item.Value.Count(); i++) { resultClient = clientBusinessLogic.Clients_Merge(resultClient, item.Value[i], CurrentUser); } afterMergingListClient.Add(resultClient); } else if (item.Value.Count() == 1) { long resultClient = clientBusinessLogic.Clients_Merge(item.Key, item.Value.FirstOrDefault(), CurrentUser); afterMergingListClient.Add(resultClient); } else { //Count=0 //nothing } } model.ListCheckClientModel = listCheckClient.Where(a => afterMergingListClient.Contains(a.Id)).ToList() .GetRange(0, afterMergingListClient.Count < 100 ? afterMergingListClient.Count : 100) .Select(item => new CheckClientModel(item)) .ToList(); model.CountMerge = m.CountMerge; model.SearchCheckClient = m.SearchCheckClient; model.CountRow = listCheckClient.Count; return(View(model)); }
public ActionResult MergeClients(long id, long DestinationClientId) { long resultClient = clientBusinessLogic.Clients_Merge(id, DestinationClientId, CurrentUser); return(RedirectToAction("Details", new { id = resultClient })); }