Exemplo n.º 1
0
        public void GetFromAmoCRMSendTo1C(String hostAmoCRM, String ClientId, String ClientSecret, String host1CGet, String host1CPost)
        {
            var getDataFromAmoCRM = new GetDataFromAmoCRM(hostAmoCRM, ClientId, ClientSecret);

            var leads = getDataFromAmoCRM.GetLeads();

            leads = leads.Where(item => item.pipeline_id == 498874).ToList();
            Log.WriteInfo("leads load, count: " + leads.Count());
            var users = getDataFromAmoCRM.GetUsers();

            Log.WriteInfo("users load, count: " + users.Count());

            var dataFor1CList = new List <DataFor1C>();

            foreach (var item in leads)
            {
                if (leads.IndexOf(item) != 0 && leads.IndexOf(item) % 50 == 0)
                {
                    Log.WriteInfo("processed " + leads.IndexOf(item) + " leads");
                }

                var dataFor1C = new DataFor1C();

                dataFor1C.codeLead = item.id;

                FillDataFromContacts(getDataFromAmoCRM, dataFor1C, item);
                dataFor1C.name       = item.name;
                dataFor1C.createDate = item.date_create.ToString();
                dataFor1C.closeDate  = item.date_close.ToString();

                var user = users.Find(p => p.id == item.responsible_user_id);
                if (user == null)
                {
                    continue;
                }

                dataFor1C.managerId   = user.id;
                dataFor1C.managerName = user.name;

                SetFieldFromCustomField(dataFor1C, item);

                dataFor1CList.Add(dataFor1C);
            }
            Log.WriteInfo("processed all leads, " + leads.Count());
            Log.WriteInfo("dataFor1CList, count: " + dataFor1CList.Count());

            SendDataFor1C(dataFor1CList, host1CPost);
        }
Exemplo n.º 2
0
        public void GetFromAmoCRMSendTo1C(String hostAmoCRM, String ClientId, String ClientSecret, String host1CGet, String host1CPost)
        {
            var getDataFromAmoCRM = new GetDataFromAmoCRM(hostAmoCRM, ClientId, ClientSecret);

            var mm = Provider.SendGetResponse(host1CGet + "GetLastDateSuccess");

            Log.WriteError("11" + mm);

            var users = getDataFromAmoCRM.GetUsers();
            var json  = JsonConvert.SerializeObject(users);

            Provider.SendPOSTResponse(host1CPost + "UpdateUsers", json);
            //Provider.GetUrlOfData(host1CGet + "UpdateUser", users[0]);
            //var noteTypes = getDataFromAmoCRM.GetNoteTypes();
            //var taskTypes = getDataFromAmoCRM.GetTaskTypes();

            //foreach (var item in noteTypes)
            //{
            //    var url = Provider.GetUrlOfData(host1C + "UpdateNoteType", item);
            //    Provider.SendGetResponse(url);
            //}

            //foreach (var item in taskTypes)
            //{
            //    var url = Provider.GetUrlOfData(host1C + "UpdateTaskType", item);
            //    Provider.SendGetResponse(url);
            //}

            var emails = getDataFromAmoCRM.GetEmails();

            SendEmails(emails, host1CPost);

            var calls = getDataFromAmoCRM.GetCalls();

            SendCalls(calls, host1CPost);

            //var leads = getDataFromAmoCRM.GetLeads();

            //var pipelines = getDataFromAmoCRM.GetPipelines(leads);
            //foreach (var item in leads)
            //{
            //    Log.WriteInfo(leads.IndexOf(item).ToString());

            //    var dataFor1C = new DataFor1C();
            //    dataFor1C.pipelineName = pipelines.Where(pipeline => pipeline.id == item.pipeline_id).First().name;

            //    var company = new List<ContactResponse>();
            //    if (item.linked_company_id != "" && item.linked_company_id != "0")
            //    {
            //        company = getDataFromAmoCRM.GetContacts(false, item.linked_company_id);
            //    }
            //    else
            //    {
            //        company = getDataFromAmoCRM.GetContacts(item.main_contact_id, "");
            //    }

            //    if (company != null && company.Count() > 0)
            //    {
            //        dataFor1C.nameContact = company[0].name;
            //        dataFor1C.codeContact = company[0].id.ToString();
            //        foreach (var custom_field in company[0].custom_fields)
            //        {
            //            switch (custom_field.name)
            //            {
            //                case "Реквизиты компании":
            //                    dataFor1C.requisites = custom_field.values[0].value; break;
            //                case "Адрес":
            //                    dataFor1C.address = custom_field.values[0].value; break;
            //            }
            //        }
            //    }
            //    else
            //    {
            //        Log.WriteInfo("not found contact for " + item.name);
            //    }

            //    var contacts1 = getDataFromAmoCRM.GetContacts(item.main_contact_id, "");
            //    SetContactsData(dataFor1C, contacts1, "1");


            //    var leadsAndContacts = getDataFromAmoCRM.GetLeadsAndContacts(item.id);
            //    foreach (var itemLinks in leadsAndContacts)
            //    {
            //        if (itemLinks.contact_id == item.main_contact_id.ToString())
            //        {
            //            continue;
            //        }

            //        var contacts2 = getDataFromAmoCRM.GetContacts(itemLinks.contact_id, "");
            //        SetContactsData(dataFor1C, contacts2, "2");
            //    }

            //    var url = Provider.GetUrlOfData(host1CGet + "UpdateCustomer", dataFor1C);
            //    Provider.SendGetResponse(url);
            //}
        }
Exemplo n.º 3
0
        private void FillDataFromContacts(GetDataFromAmoCRM getDataFromAmoCRM, DataFor1C dataFor1C, LeadResponse item)
        {
            var contacts = getDataFromAmoCRM.GetContacts(item.main_contact_id, item.linked_company_id);

            if (contacts != null && contacts.Count() > 0)
            {
                dataFor1C.nameContact1 = contacts[0].name;
                dataFor1C.codeContact  = contacts[0].id.ToString();
                if (contacts.Count() >= 1)
                {
                    foreach (var custom_field in contacts[0].custom_fields)
                    {
                        switch (custom_field.name)
                        {
                        case "Телефон":
                            foreach (var phone in custom_field.values)
                            {
                                if (dataFor1C.phonesContact1 == "")
                                {
                                    dataFor1C.phonesContact1 += phone.value;
                                }
                                else
                                {
                                    dataFor1C.phonesContact1 += "|" + phone.value;
                                }
                            }
                            break;

                        case "Email":
                            dataFor1C.email = custom_field.values[0].value; break;
                        }
                    }
                }
            }
            else
            {
                Log.WriteInfo("not found contact for " + item.name);
            }

            var leadsAndContacts = getDataFromAmoCRM.GetLeadsAndContacts(item.id);

            foreach (var itemLinks in leadsAndContacts)
            {
                if (itemLinks.contact_id == item.main_contact_id.ToString())
                {
                    continue;
                }

                var contacts2 = getDataFromAmoCRM.GetContacts(itemLinks.contact_id, "");

                dataFor1C.nameContact2 = contacts2[0].name;
                foreach (var custom_field in contacts2[0].custom_fields)
                {
                    switch (custom_field.name)
                    {
                    case "Телефон":
                        foreach (var phone in custom_field.values)
                        {
                            if (phone.value == "")
                            {
                                continue;
                            }

                            if (dataFor1C.phonesContact2 == "")
                            {
                                dataFor1C.phonesContact2 += phone.value;
                            }
                            else
                            {
                                dataFor1C.phonesContact2 += "|" + phone.value;
                            }
                        }
                        break;
                    }
                }
            }
        }