示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }