Beispiel #1
0
        private void UpdateDuplicate()
        {
            var sourceTypes = StaticData.GetSourceTypeCheckUpdate();

            if (duplicateContactIds == null || duplicateContactIds.Count == 0)
            {
                return;
            }
            if (sourceTypes.IsNullOrEmpty() || sourceTypes.All(c => c.SourceTypeId != ImportInfo.TypeId))
            {
                return;
            }

            foreach (var item in duplicateContactIds.Values)
            {
                try
                {
                    var contact = ContactRepository.GetInfo(item.ContactId);
                    if (contact == null)
                    {
                        continue;
                    }

                    item.Status            = contact.StatusId;
                    item.IsNotyfiDuplicate = true; //Bao notify trung contact
                    ContactDuplicateRepository.Update(item);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
Beispiel #2
0
        public ActionResult CreateHotLine(ContactAddModel model)
        {
            int duplicateId;

            try
            {
                duplicateId = CheckDuplicateProvider.Instance().IsDuplicate(model.ContactInfo.Mobile1, model.ContactInfo.Mobile2, model.ContactInfo.Mobile3, model.ContactInfo.Email, model.ContactInfo.Email2);
                if (duplicateId == 0)
                {
                    duplicateId = ContactRepository.ContactIsDuplicate(model.ContactInfo.Mobile1, model.ContactInfo.Mobile2, model.ContactInfo.Mobile3, model.ContactInfo.Email, model.ContactInfo.Email2);
                }
            }
            catch (Exception ex)
            {
                ViewBag.Message = "Hệ thống cache bị lỗi, vui lòng thử lại. [" + ex.Message.ToString() + "]";
                return(CreateHotLine());
            }

            model.ContactInfo.ChannelId = ChannelRepository.GetChannelId(model.ContactInfo.Channel, model.ContactInfo.TypeId, 1);
            var entity = new ContactInfo
            {
                CollectorId            = 1,
                StatusMapConsultantId  = 1,
                StatusCareConsultantId = 1,
                CreatedDate            = DateTime.Now,
                LevelId                   = (int)LevelType.L1,
                RegisteredDate            = DateTime.Now,
                Notes                     = model.ContactInfo.Notes,
                Email                     = model.ContactInfo.Email,
                Email2                    = model.ContactInfo.Email2,
                TypeId                    = model.ContactInfo.TypeId,
                Gender                    = model.ContactInfo.Gender,
                Address                   = model.ContactInfo.Address,
                Fullname                  = model.ContactInfo.Fullname,
                HandoverConsultantDate    = DateTime.Now,
                Birthday                  = model.Birthday.ToDateTime(),
                ChannelId                 = model.ContactInfo.ChannelId,
                BranchId                  = UserContext.GetDefaultBranch(),
                AppointmentConsultantDate = DateTime.Now,
                StatusId                  = (int)StatusType.HandoverConsultant,
                ProductSellId             = model.ContactInfo.ProductSellId,
                CreatedBy                 = UserContext.GetCurrentUser().UserID,
                UserConsultantId          = model.ContactInfo.UserConsultantId,
                Mobile1                   = Util.CleanAlphabetAndFirstZero(model.ContactInfo.Mobile1),
                Mobile2                   = Util.CleanAlphabetAndFirstZero(model.ContactInfo.Mobile2),
            };

            var contactInfo = duplicateId == 0 ? null : ContactRepository.GetInfo(duplicateId);

            if (contactInfo == null)
            {
                try
                {
                    // Save Contacts
                    if (entity.UserConsultantId > 0)
                    {
                        entity.StatusId = (int)StatusType.HandoverConsultant;
                    }
                    entity.Id = ContactRepository.CreateHotline(entity);

                    if (entity.Id > 0)
                    {
                        // Message
                        ViewBag.Message = "Thêm mới contact thành công";
                        // Redis
                        StoreData.LoadRedis(entity.Id);
                    }
                    else
                    {
                        ViewBag.Message = "Thêm mới contact bị lỗi, vui lòng thử lại sau";
                        //Redis
                        StoreData.DeleteRedis(model.ContactInfo.Mobile1, model.ContactInfo.Mobile2, string.Empty, model.ContactInfo.Email, model.ContactInfo.Email2);
                    }
                }
                catch (Exception ex)
                {
                    ViewBag.Message = "Thêm mới contact bị lỗi. [" + ex.Message.ToString() + "]";

                    //Redis
                    StoreData.DeleteRedis(model.ContactInfo.Mobile1, model.ContactInfo.Mobile2, string.Empty, model.ContactInfo.Email, model.ContactInfo.Email2);
                }
            }
            else
            {
                // Update email, phone
                UpdatePhone(contactInfo.Id, new List <string> {
                    entity.Mobile1, entity.Mobile2, entity.Mobile3
                });

                // Email
                if (!entity.Email.IsStringNullOrEmpty())
                {
                    if (contactInfo.Email.IsStringNullOrEmpty())
                    {
                        contactInfo.Email = entity.Email;
                    }
                    else if (contactInfo.Email != entity.Email && contactInfo.Email2.IsStringNullOrEmpty())
                    {
                        contactInfo.Email2 = entity.Email;
                    }
                }
                ContactRepository.Update(contactInfo);

                // Log duplicate contact
                var contactDuplicateInfo = new ContactDuplicateInfo
                {
                    ContactId         = contactInfo.Id,
                    SourceTypeId      = contactInfo.TypeId,
                    Status            = contactInfo.StatusId,
                    ImportId          = contactInfo.ImportId,
                    DuplicateInfo     = contactInfo.Mobile1,
                    CreatedDate       = DateTime.Now,
                    IsNotyfiDuplicate = true
                };

                //ContactRepository.ContactUpdateDuplicate(entity.Id, entity.TypeId, entity.StatusId);
                ContactDuplicateRepository.Update(contactDuplicateInfo);

                // Message
                var user = StoreData.ListUser.FirstOrDefault(c => c.UserID == contactInfo.UserConsultantId) ?? UserRepository.GetInfo(contactInfo.UserConsultantId);
                ViewBag.Message = user == null
                                      ? "Sđt hoặc Email bạn nhập đã bị trùng với Ứng viên: " + contactInfo.Id + " - " + contactInfo.Fullname + " - Level " + contactInfo.LevelId + "- TVTS: chưa có ai chăm sóc"
                                      : "Sđt hoặc Email bạn nhập đã bị trùng với Ứng viên: " + contactInfo.Id + " - " + contactInfo.Fullname + " - Level " + contactInfo.LevelId + "- TVTS: " + user.FullName;
            }
            return(CreateHotLine());
        }