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); } } }
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()); }