public bool UpsertTicket(Entity ticket) { RepositoryResult repositoryResult = CreateEntity(ticket); if (repositoryResult.Result) { ResolveTicket(repositoryResult.EntityId); return(true); } else if (repositoryResult.hasDuplicate) { string freshdeskId = ticket.GetAttributeValue <string>("isw_freshdeskid"); FilterExpression fe = new FilterExpression(LogicalOperator.Or); if (!string.IsNullOrEmpty(freshdeskId)) { ConditionExpression ce3 = new ConditionExpression("isw_freshdeskid", ConditionOperator.Equal, freshdeskId); fe.AddCondition(ce3); } CheckExistenceResult existenceResult = CheckExistence("ticket", fe); if (existenceResult.Exists) { ticket.Id = existenceResult.RecordId; OpenTicket(ticket.Id); var r = UpdateEntity(ticket); ResolveTicket(ticket.Id); return(r.Result); } return(false); } return(false); }
public bool UpsertAccount(Entity account) { RepositoryResult repositoryResult = CreateEntity(account); if (repositoryResult.Result) { return(true); } else if (repositoryResult.hasDuplicate) { string phone = account.GetAttributeValue <string>("telephone1"); string email = account.GetAttributeValue <string>("emailaddress1"); string name = account.GetAttributeValue <string>("name"); string freshdeskId = String.Empty; if (account.Contains("isw_freshdeskid")) { freshdeskId = account.GetAttributeValue <string>("isw_freshdeskid"); } FilterExpression feGroup = new FilterExpression(LogicalOperator.And); FilterExpression fe2 = new FilterExpression(); ConditionExpression ce1 = new ConditionExpression("isw_isobsoletedata", ConditionOperator.Equal, 0); ConditionExpression ce2 = new ConditionExpression("statecode", ConditionOperator.Equal, 0); fe2.AddCondition(ce1); fe2.AddCondition(ce2); FilterExpression fe = new FilterExpression(LogicalOperator.Or); if (!string.IsNullOrEmpty(phone)) { ConditionExpression ce = new ConditionExpression("telephone1", ConditionOperator.Equal, phone); fe.AddCondition(ce); } if (!string.IsNullOrEmpty(email)) { ConditionExpression ce3 = new ConditionExpression("emailaddress1", ConditionOperator.Equal, email); fe.AddCondition(ce3); } if (!string.IsNullOrEmpty(name)) { ConditionExpression ce4 = new ConditionExpression("name", ConditionOperator.Equal, name); fe.AddCondition(ce4); } if (!string.IsNullOrEmpty(freshdeskId)) { ConditionExpression ce5 = new ConditionExpression("isw_freshdeskid", ConditionOperator.Equal, freshdeskId); fe.AddCondition(ce5); } feGroup.AddFilter(fe); feGroup.AddFilter(fe2); CheckExistenceResult existenceResult = CheckExistence("account", feGroup); if (existenceResult.Exists) { account.Id = existenceResult.RecordId; var r = UpdateEntity(account); return(r.Result); } return(false); } return(false); }
public RepositoryResult UpsertContact(Entity contact) { RepositoryResult repositoryResult = CreateEntity(contact); if (repositoryResult.Result) { return(repositoryResult); } else if (repositoryResult.hasDuplicate) { string phone = contact.GetAttributeValue <string>("telephone1"); string email = contact.GetAttributeValue <string>("emailaddress1"); //string name = contact.GetAttributeValue<string>("fullname"); string freshdeskId = contact.GetAttributeValue <string>("isw_freshdeskid"); FilterExpression fe = new FilterExpression(LogicalOperator.Or); if (!string.IsNullOrEmpty(phone)) { ConditionExpression ce = new ConditionExpression("telephone1", ConditionOperator.Equal, phone); fe.AddCondition(ce); } if (!string.IsNullOrEmpty(email)) { ConditionExpression ce1 = new ConditionExpression("emailaddress1", ConditionOperator.Equal, email); fe.AddCondition(ce1); } /* * if (!string.IsNullOrEmpty(name)) * { * ConditionExpression ce2 = new ConditionExpression("fullname", ConditionOperator.Equal, name); * fe.AddCondition(ce2); * } */ if (!string.IsNullOrEmpty(freshdeskId)) { ConditionExpression ce3 = new ConditionExpression("isw_freshdeskid", ConditionOperator.Equal, freshdeskId); fe.AddCondition(ce3); } CheckExistenceResult existenceResult = CheckExistence("contact", fe); if (existenceResult.Exists) { contact.Id = existenceResult.RecordId; var r = UpdateEntity(contact); r.EntityId = existenceResult.RecordId; return(r); } return(repositoryResult); } return(repositoryResult); }