Пример #1
0
        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));
        }
Пример #2
0
        public ActionResult MergeClients(long id, long DestinationClientId)
        {
            long resultClient = clientBusinessLogic.Clients_Merge(id, DestinationClientId, CurrentUser);

            return(RedirectToAction("Details", new { id = resultClient }));
        }