Exemplo n.º 1
0
        protected async Task <Ticket> ExportSingleTicket(CommitCRM.Ticket ticket, int?defaultLocationId, string customerId, SQLiteConnection connection, string remoteHost)
        {
            return(await Task.Factory.StartNew(() =>
            {
                var myNameValueCollection = new NameValueCollection();
                string subject = string.Empty;
                if (!string.IsNullOrEmpty(ticket.Description))
                {
                    if (ticket.Description.Length > 255)
                    {
                        subject = ticket.Description.Substring(0, 255);
                    }
                    else
                    {
                        subject = ticket.Description;
                    }
                }

                if (defaultLocationId.HasValue)
                {
                    myNameValueCollection.Add("location_id", defaultLocationId.Value.ToString());
                }
                myNameValueCollection.Add("subject", subject);
                myNameValueCollection.Add("customer_id", customerId);
                if (!string.IsNullOrEmpty(ticket.TicketType))
                {
                    myNameValueCollection.Add("problem_type", ticket.TicketType);
                }
                myNameValueCollection.Add("status", "Resolved");
                myNameValueCollection.Add("comment_body", GetComment(ticket));
                if (!string.IsNullOrEmpty(ticket.Status_Text))
                {
                    myNameValueCollection.Add("comment_subject", ticket.Status_Text);
                }
                myNameValueCollection.Add("comment_hidden", "1");
                myNameValueCollection.Add("comment_do_not_email", "1");
                string createDate = HttpUtility.UrlEncode(ticket.UpdateDate.ToString("yyyy-MM-dd H:mm:ss"));
                myNameValueCollection.Add("created_at", createDate);

                var newTicket = RepairShoprUtils.ExportTicket(myNameValueCollection, remoteHost);
                if (newTicket != null)
                {
                    using (SQLiteCommand cmdINewItem = new SQLiteCommand(string.Format("INSERT INTO  Ticket (TicketId,RTicketId) VALUES('{0}','{1}')", ticket.TicketREC_ID, newTicket.Id), connection))
                        cmdINewItem.ExecuteNonQuery();
                }

                return newTicket;
            }));
        }
Exemplo n.º 2
0
        protected async Task <Customer> CreateCustomerForTicket(CommitCRM.Ticket ticket, SQLiteConnection connection, string remoteHost)
        {
            var accounts = new CommitCRM.ObjectQuery <CommitCRM.Account>(CommitCRM.LinkEnum.linkAND, 1);

            accounts.AddCriteria(CommitCRM.Account.Fields.AccountREC_ID, CommitCRM.OperatorEnum.opEqual, ticket.AccountREC_ID);

            var accountsResult = accounts.FetchObjects();
            var account        = accountsResult.SingleOrDefault();

            if (account != null)
            {
                return(await ExportSingleCustomer(account, connection, remoteHost));
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 3
0
        private string GetComment(CommitCRM.Ticket ticket)
        {
            var sb = new StringBuilder();

            sb.Append(string.Format("Ticket Number: {0}", ticket.TicketNumber.Replace("-", string.Empty)));
            sb.AppendFormat(" , Cause: {0}", ticket.GetFieldValue("FLDTKTCAUSE"));
            sb.AppendFormat(" , Source: {0}", ticket.Source);
            sb.AppendFormat(" , Category: {0}", ticket.GetFieldValue("FLDTKTCATEGORY"));
            sb.AppendFormat(" , Note: {0}", ticket.Notes);
            sb.AppendFormat(" , Resolution : {0}", ticket.Resolution);

            var charges = new CommitCRM.ObjectQuery <CommitCRM.Charge>();

            charges.AddCriteria(CommitCRM.Charge.Fields.TicketREC_ID, CommitCRM.OperatorEnum.opEqual, ticket.TicketREC_ID);

            var chargesResult = charges.FetchObjects();

            foreach (CommitCRM.Charge charge in chargesResult)
            {
                sb.AppendFormat(", Charge :{0}", charge.Description);
                sb.AppendFormat(", Amount : {0}", charge.GetFieldValue("FLDSLPBILLTOTAL"));
                sb.AppendFormat(", Quantity: {0}", charge.GetFieldValue("FLDSLPQUANTITY"));
                sb.AppendFormat(", Date : {0}", charge.Date);
            }

            var history = new CommitCRM.ObjectQuery <CommitCRM.HistoryNote>();

            history.AddCriteria(CommitCRM.HistoryNote.Fields.RelLinkREC_ID, CommitCRM.OperatorEnum.opEqual, ticket.TicketREC_ID);

            var historyResult = history.FetchObjects();

            foreach (CommitCRM.HistoryNote historyNote in historyResult)
            {
                sb.AppendFormat(" History Note :{0}", historyNote.Description);
                sb.AppendFormat(", Date : {0}", historyNote.Date);
            }

            return(sb.ToString());
        }