crm: refactoring
This commit is contained in:
parent
bbe1f1f205
commit
86a7802ada
@ -1210,22 +1210,24 @@ namespace ASC.CRM.Core.Dao
|
||||
|
||||
public void UpdateContactStatus(IEnumerable<int> contactid, int statusid)
|
||||
{
|
||||
foreach (var item in contactid)
|
||||
var tx = CrmDbContext.Database.BeginTransaction();
|
||||
|
||||
foreach (var id in contactid)
|
||||
{
|
||||
var itemToUpdate = new DbContact
|
||||
{
|
||||
Id = item,
|
||||
StatusId = statusid,
|
||||
TenantId = TenantID
|
||||
};
|
||||
var dbEntity = CrmDbContext.Contacts.Find(id);
|
||||
|
||||
CrmDbContext.Attach(itemToUpdate);
|
||||
CrmDbContext.Entry(itemToUpdate).Property(x => x.StatusId).IsModified = true;
|
||||
if (dbEntity.TenantId != TenantID)
|
||||
throw new ArgumentException();
|
||||
|
||||
dbEntity.Id = id;
|
||||
dbEntity.StatusId = statusid;
|
||||
|
||||
}
|
||||
|
||||
CrmDbContext.SaveChanges();
|
||||
|
||||
tx.Commit();
|
||||
|
||||
// Delete relative keys
|
||||
_cache.Remove(new Regex(TenantID.ToString(CultureInfo.InvariantCulture) + "contacts.*"));
|
||||
}
|
||||
@ -1307,25 +1309,20 @@ namespace ASC.CRM.Core.Dao
|
||||
{
|
||||
if (contactId <= 0) throw new ArgumentException();
|
||||
|
||||
var itemToUpdate = new DbContact
|
||||
{
|
||||
Id = contactId,
|
||||
IsShared = isShared ? ShareType.ReadWrite : ShareType.None,
|
||||
TenantId = TenantID
|
||||
};
|
||||
var dbEntity = CrmDbContext.Contacts.Find(contactId);
|
||||
|
||||
dbEntity.IsShared = isShared ? ShareType.ReadWrite : ShareType.None;
|
||||
|
||||
CrmDbContext.Attach(itemToUpdate);
|
||||
CrmDbContext.Entry(itemToUpdate).Property(x => x.IsShared).IsModified = true;
|
||||
CrmDbContext.SaveChanges();
|
||||
|
||||
}
|
||||
|
||||
public int SaveContact(Contact contact)
|
||||
{
|
||||
var result = SaveContactToDb(contact);
|
||||
|
||||
_factoryIndexerContact.Index(Query(CrmDbContext.Contacts)
|
||||
.Where(x => x.Id == contact.ID).Single());
|
||||
var dbEntity = CrmDbContext.Contacts.Find(contact.ID);
|
||||
|
||||
_factoryIndexerContact.Index(dbEntity);
|
||||
|
||||
// Delete relative keys
|
||||
_cache.Remove(new Regex(TenantID.ToString(CultureInfo.InvariantCulture) + "contacts.*"));
|
||||
@ -1537,8 +1534,9 @@ namespace ASC.CRM.Core.Dao
|
||||
|
||||
_crmSecurity.DemandDelete(contact);
|
||||
|
||||
_factoryIndexerContact.Delete(Query(CrmDbContext.Contacts)
|
||||
.Where(x => x.Id == contactID).Single());
|
||||
var dbEntity = CrmDbContext.Contacts.Find(contactID);
|
||||
|
||||
_factoryIndexerContact.Delete(dbEntity);
|
||||
|
||||
DeleteBatchContactsExecute(new List<Contact>() { contact });
|
||||
|
||||
|
@ -111,8 +111,12 @@ namespace ASC.CRM.Core.Dao
|
||||
{
|
||||
var result = UpdateInDb(contactInfo);
|
||||
|
||||
_factoryIndexerContactInfo.Update(Query(CrmDbContext.ContactsInfo)
|
||||
.Where(x => x.ContactId == contactInfo.ID).Single());
|
||||
var dbEntity = Query(CrmDbContext.ContactsInfo)
|
||||
.AsNoTracking()
|
||||
.Where(x => x.ContactId == contactInfo.ID)
|
||||
.Single();
|
||||
|
||||
_factoryIndexerContactInfo.Update(dbEntity);
|
||||
|
||||
return result;
|
||||
}
|
||||
@ -135,7 +139,7 @@ namespace ASC.CRM.Core.Dao
|
||||
TenantId = TenantID
|
||||
};
|
||||
|
||||
CrmDbContext.ContactsInfo.Update(itemToUpdate);
|
||||
CrmDbContext.Update(itemToUpdate);
|
||||
|
||||
CrmDbContext.SaveChanges();
|
||||
|
||||
@ -149,11 +153,12 @@ namespace ASC.CRM.Core.Dao
|
||||
|
||||
contactInfo.ID = id;
|
||||
|
||||
var dbContactInfo = Query(CrmDbContext.ContactsInfo)
|
||||
var dbEntity = Query(CrmDbContext.ContactsInfo)
|
||||
.AsNoTracking()
|
||||
.Where(x => x.ContactId == contactInfo.ID)
|
||||
.Single();
|
||||
|
||||
_factoryIndexerContactInfo.Index(dbContactInfo);
|
||||
_factoryIndexerContactInfo.Index(dbEntity);
|
||||
|
||||
return id;
|
||||
}
|
||||
@ -204,7 +209,8 @@ namespace ASC.CRM.Core.Dao
|
||||
|
||||
public List<ContactInfo> GetList(int contactID, ContactInfoType? infoType, int? categoryID, bool? isPrimary)
|
||||
{
|
||||
var items = Query(CrmDbContext.ContactsInfo);
|
||||
var items = Query(CrmDbContext.ContactsInfo)
|
||||
.AsNoTracking();
|
||||
|
||||
if (contactID > 0)
|
||||
items = items.Where(x => x.ContactId == contactID);
|
||||
|
@ -79,7 +79,9 @@ namespace ASC.CRM.Core.Dao
|
||||
|
||||
for (int index = 0; index < ids.Length; index++)
|
||||
{
|
||||
var itemToUpdate = Query(CrmDbContext.DealMilestones).FirstOrDefault(x => x.Id == ids[index]);
|
||||
var itemToUpdate = CrmDbContext.DealMilestones.Find(ids[index]);
|
||||
|
||||
if (itemToUpdate.TenantId != TenantID) continue;
|
||||
|
||||
itemToUpdate.SortOrder = index;
|
||||
|
||||
|
@ -226,6 +226,8 @@ namespace ASC.CRM.Core.Dao
|
||||
{
|
||||
var dbEntity = CrmDbContext.TaskTemplateContainer.Find(id);
|
||||
|
||||
if (dbEntity.TenantId != TenantID) return;
|
||||
|
||||
CrmDbContext.Remove(dbEntity);
|
||||
|
||||
CrmDbContext.SaveChanges();
|
||||
|
Loading…
Reference in New Issue
Block a user