Ejemplo n.º 1
0
        /// <summary>
        /// Проверяет существование Реестра оплат по id
        /// </summary>
        /// <param name="id">id Реестра оплат</param>
        /// <returns></returns>
        // GET: api/OnlineReestr/5
        public HttpResponseMessage Get(string id)
        {
            Online_log.Info($"Get реестра оплат {0}", id.ToString());

            HttpResponseMessage response;

            Reestr c = new Reestr();

            String ln = "";
            BusinessEntityCollection fcontact = c.searchnew_reestr(id);

            foreach (DynamicEntity cont1 in fcontact.BusinessEntities)
            {
                ln = cont1["new_txn_id"].ToString();
            }

            if ((ln != ""))
            {
                response = Request.CreateResponse(HttpStatusCode.OK, ln);
            }
            else
            {
                response = Request.CreateResponse(HttpStatusCode.NoContent, ln);
            }

            return(response);
        }
        public HttpResponseMessage Get(string id)
        {
            Online_log.Info($"Get Contact {id.ToString()}");

            HttpResponseMessage response;

            Contact c = new Contact();

            String ln = "";
            BusinessEntityCollection fcontact = c.searchContact(id);

            foreach (DynamicEntity cont1 in fcontact.BusinessEntities)
            {
                ln = cont1["lastname"].ToString();
            }

            if ((ln != ""))
            {
                response = Request.CreateResponse(HttpStatusCode.OK, ln);
            }
            else
            {
                response = Request.CreateResponse(HttpStatusCode.NoContent, ln);
            }

            return(response);
        }
Ejemplo n.º 3
0
        public Guid Create( BusinessEntity entity )
        {
            Guid id = Guid.NewGuid();

            string name = entity.GetType().Name;
            if( data.ContainsKey( name ) == false ) {
                data.Add( name, new BusinessEntityCollection() );
            }

            if( name == "DynamicEntity" ) {
                DynamicEntity de = ( DynamicEntity )entity;
                name = de.Name;
                de.Properties.Add( new KeyProperty( de.Name + "id", new Key( id ) ) );
            }
            else {
                entity.GetType().GetProperty( name + "id" ).SetValue( entity, new Key( id ), null );
            }

            if( !data.ContainsKey( name ) ) {
                data[ name ] = new BusinessEntityCollection();
            }
            data[ name ].BusinessEntities.Add( entity );

            if( m_persist ) {
                PersistToDisk( m_filename );
            }

            return id;
        }
Ejemplo n.º 4
0
        public void TestDynamic()
        {
            QueryBase query = Djn.Crm.CrmQuery
                              .Select()
                              .From("mydynamic")
                              .Where("mydynamic", "prop1", ConditionOperator.Equal, new object[] { "foo" }).Query;

            BusinessEntityCollection bec = m_service.RetrieveMultiple(query);

            Fest.AssertTrue(bec.BusinessEntities.Count > 0, "found more than zero entities");
        }
Ejemplo n.º 5
0
        public BusinessEntityCollection RetrieveMultiple(Microsoft.Crm.Sdk.Query.QueryBase query)
        {
            QueryExpression          queryExpression = ( QueryExpression )query;
            BusinessEntityCollection retval          = new BusinessEntityCollection();

            if (data.ContainsKey(query.EntityName))
            {
                foreach (BusinessEntity entity in data[query.EntityName].BusinessEntities)
                {
                    if (true == EvaluateFilters(queryExpression.Criteria, entity) && true == EvaluateLinks(queryExpression.LinkEntities, entity))
                    {
                        retval.BusinessEntities.Add(entity);
                    }
                }
            }
            return(retval);
        }
Ejemplo n.º 6
0
        public void TestFilters()
        {
            ConditionExpression cond  = new ConditionExpression("address1_name", ConditionOperator.Equal, new string[] { "Dan" });
            ConditionExpression cond2 = new ConditionExpression("address1_city", ConditionOperator.Equal, new string[] { "Bethesda" });
            FilterExpression    fe    = new FilterExpression();

            fe.FilterOperator = LogicalOperator.And;
            fe.Conditions.Add(cond);
            fe.Conditions.Add(cond2);

            QueryExpression qe = new QueryExpression("contact");

            qe.Criteria = fe;

            BusinessEntityCollection bec = m_service.RetrieveMultiple(qe);

            Console.WriteLine("TestFilters() found: " + bec.BusinessEntities.Count + " entity. ");
            Fest.AssertTrue(bec.BusinessEntities.Count > 0, "found more than zero entities");
        }
Ejemplo n.º 7
0
        public void TestLinks()
        {
            ConditionExpression cond = new ConditionExpression("title", ConditionOperator.Equal, new string[] { "child" });
            FilterExpression    fe   = new FilterExpression();

            fe.FilterOperator = LogicalOperator.And;
            fe.Conditions.Add(cond);

            LinkEntity le = new LinkEntity("subject", "subject", "subjectid", "parentsubject", JoinOperator.Inner);

            le.LinkCriteria = fe;

            QueryExpression qe = new QueryExpression("subject");

            qe.LinkEntities.Add(le);

            BusinessEntityCollection bec = m_service.RetrieveMultiple(qe);

            Console.WriteLine("TestLinks() found: " + bec.BusinessEntities.Count + " entity. ");
            Fest.AssertTrue(bec.BusinessEntities.Count > 0, "found more than zero entities");
        }
Ejemplo n.º 8
0
        public BusinessEntityCollection searchContact(string new_config_allid)
        {
            try
            {
                CrmConnection crmc       = new CrmConnection("Crm");
                CrmService    crmService = crmc.CreateCrmService();

                QueryExpression qe = new QueryExpression("new_config_all")
                {
                    ColumnSet = new ColumnSet(new String[] {
                        "new_config_allid", "new_name", "new_count", "new_current_amount", "new_period", "new_period"
                    }),
                    Criteria = new FilterExpression()
                    {
                        FilterOperator = LogicalOperator.And,
                        Conditions     =
                        {
                            new ConditionExpression("new_config_allid", ConditionOperator.Equal, new_config_allid),
                        }
                    }
                };
                RetrieveMultipleResponse retrived = new RetrieveMultipleResponse();

                RetrieveMultipleRequest retrive = new RetrieveMultipleRequest();
                retrive.Query = qe;
                retrive.ReturnDynamicEntities = true;

                BusinessEntityCollection results = ((RetrieveMultipleResponse)crmService.Execute(retrive)).BusinessEntityCollection;

                return(results);
            }
            catch (SoapException ex)
            {
                logger.Error($"Не удалось осуществить поиск конфига с id {new_config_allid}. Ошибка: {ex.Message}");

                throw new System.ArgumentException($"Не удалось осуществить поиск конфига с id {new_config_allid}. Ошибка: {ex.Message}", "original");
            }
        }
Ejemplo n.º 9
0
        public BusinessEntityCollection searchContact(string contactid)
        {
            try
            {
                CrmConnection crmc       = new CrmConnection("Crm");
                CrmService    crmService = crmc.CreateCrmService();

                QueryExpression qe = new QueryExpression("contact")
                {
                    ColumnSet = new ColumnSet(new String[] {
                        "contactid", "salutation", "lastname", "firstname", "middlename", "mobilephone", "emailaddress1", "address1_name", "address1_line1", "address1_city", "address1_stateorprovince", "address1_country", "new_seria", "new_nomer", "new_giveoutby", "gendercode", "new_nationality", "new_type", "familystatuscode", "birthdate", "new_openles", "new_dategiveout", "ownerid" //" address1_postalcode" //
                    }),
                    Criteria = new FilterExpression()
                    {
                        FilterOperator = LogicalOperator.And,
                        Conditions     =
                        {
                            new ConditionExpression("contactid", ConditionOperator.Equal, contactid),
                        }
                    }
                };
                RetrieveMultipleResponse retrived = new RetrieveMultipleResponse();

                RetrieveMultipleRequest retrive = new RetrieveMultipleRequest();
                retrive.Query = qe;
                retrive.ReturnDynamicEntities = true;

                BusinessEntityCollection results = ((RetrieveMultipleResponse)crmService.Execute(retrive)).BusinessEntityCollection;

                return(results);
            }
            catch (SoapException ex)
            {
                logger.Error($"Не удалось осуществить поиск контакта с id {contactid}. Ошибка: {ex.Message}");

                throw new System.ArgumentException($"Не удалось осуществить поиск контакта с id {contactid}. Ошибка: {ex.Message}", "original");
            }
        }
Ejemplo n.º 10
0
        public BusinessEntityCollection searchnew_reestr(string txn_id)
        {
            CrmConnection crmc       = new CrmConnection("Crm");
            CrmService    crmService = crmc.CreateCrmService();

            QueryExpression qe = new QueryExpression("new_reestr")
            {
                ColumnSet = new ColumnSet(new String[] { "new_txn_id", "new_reestrid", "new_name" }),
                Criteria  = new FilterExpression()
                {
                    FilterOperator = LogicalOperator.And,
                    Conditions     =
                    {
                        new ConditionExpression("new_txn_id", ConditionOperator.Equal, txn_id),
                        new ConditionExpression("statecode",  ConditionOperator.Equal,      0),
                    }
                }
            };

            try
            {
                RetrieveMultipleResponse retrived = new RetrieveMultipleResponse();

                RetrieveMultipleRequest retrive = new RetrieveMultipleRequest();
                retrive.Query = qe;
                retrive.ReturnDynamicEntities = true;

                BusinessEntityCollection results = ((RetrieveMultipleResponse)crmService.Execute(retrive)).BusinessEntityCollection;

                return(results);
            }
            catch (SoapException ex)
            {
                logger.Error($"Не удалось осуществить поиск Реестра оплат txn_id = {txn_id}. Ошибка: {ex.Message}");
                throw;
            }
        }
Ejemplo n.º 11
0
        public Guid Create(BusinessEntity entity)
        {
            Guid id = Guid.NewGuid();

            string name = entity.GetType().Name;

            if (data.ContainsKey(name) == false)
            {
                data.Add(name, new BusinessEntityCollection());
            }

            if (name == "DynamicEntity")
            {
                DynamicEntity de = ( DynamicEntity )entity;
                name = de.Name;
                de.Properties.Add(new KeyProperty(de.Name + "id", new Key(id)));
            }
            else
            {
                entity.GetType().GetProperty(name + "id").SetValue(entity, new Key(id), null);
            }


            if (!data.ContainsKey(name))
            {
                data[name] = new BusinessEntityCollection();
            }
            data[name].BusinessEntities.Add(entity);

            if (m_persist)
            {
                PersistToDisk(m_filename);
            }

            return(id);
        }
Ejemplo n.º 12
0
        public String CreateConfig(Guid new_config_allid, Config config)
        {
            Guid configid = new_config_allid;

            try
            {
                DynamicEntity conf = new DynamicEntity("new_reestr");
                conf.Name = "new_reestr";

                CrmConnection crmc       = new CrmConnection("Crm");
                CrmService    crmService = crmc.CreateCrmService();

                if (new_config_allid == new Guid("{00000000-0000-0000-0000-000000000000}"))
                {
                    configid = crmService.Create(conf);
                }

                // Создаем экземпляр динамческого объекта и указываем его имя
                DynamicEntity myDEUpdate = new DynamicEntity();
                myDEUpdate.Name = "new_config_allid";


                // Создаем KeyProperty для хранения GUID’а обновляемой записи
                KeyProperty myConfigGuid = new KeyProperty();
                myConfigGuid.Name = "new_config_allid";

                // Указываем GUID обновляемой записи
                Key myConfigKey = new Key();
                myConfigKey.Value  = configid;
                myConfigGuid.Value = myConfigKey;
                myDEUpdate.Properties.Add(myConfigGuid);


                //if (conf.new_count != 0)
                //    myDEUpdate.Properties.Add(new CrmNumberProperty("new_count", new CrmNumber(conf.new_count)));


                ////Кем выдан
                //if (conf.new_giveoutby != null)
                //    myDEUpdate.Properties.Add(new StringProperty("new_giveoutby", contact.new_giveoutby));



                ////День рождения
                //if (contact.birthdate != null)
                //    myDEUpdate.Properties.Add(new CrmDateTimeProperty("birthdate", CrmDateTime.FromUser(DateTime.ParseExact(contact.birthdate, "yyyyMMddHHmmss", CultureInfo.InvariantCulture))));

                crmService.Update(myDEUpdate);


                //поиск контакта для переназначения ответственного, если таковой меняется
                Owner ownerID = new Owner();
                if (new_config_allid != new Guid("{00000000-0000-0000-0000-000000000000}"))
                {
                    try
                    {
                        string ln = ""; //фамилия
                        BusinessEntityCollection fcontact = searchContact(new_config_allid.ToString());
                        foreach (DynamicEntity cont1 in fcontact.BusinessEntities)
                        {
                            ln = cont1["lastname"].ToString();
                            if (cont1.Properties.Contains("ownerid"))
                            {
                                ownerID = (Owner)cont1["ownerid"];
                            }
                        }

                        logger.Info($"Нашли контакт {ln}. ownerid={ownerID.Value.ToString()}");
                    }
                    catch (Exception ex)
                    {
                        logger.Error($"Ошибка: {ex.ToString()}");
                    }
                }

                return(configid.ToString());
            }
            catch (SoapException ex)
            {
                logger.Error($"Ошибка: {ex.Detail.InnerText}");
                return(ex.Detail.InnerText);
            }
        }
Ejemplo n.º 13
0
 public BusinessEntityCollection RetrieveMultiple( Microsoft.Crm.Sdk.Query.QueryBase query )
 {
     QueryExpression queryExpression = ( QueryExpression )query;
     BusinessEntityCollection retval = new BusinessEntityCollection();
     if( data.ContainsKey( query.EntityName ) ) {
         foreach( BusinessEntity entity in data[ query.EntityName ].BusinessEntities ) {
             if( true == EvaluateFilters( queryExpression.Criteria, entity ) && true == EvaluateLinks( queryExpression.LinkEntities, entity ) ) {
                 retval.BusinessEntities.Add( entity );
             }
         }
     }
     return retval;
 }
Ejemplo n.º 14
0
        public String CreateContact(Guid contact_ID, Contact contact)
        {
            Guid contactid = contact_ID;

            try
            {
                contact cont = new contact();


                CrmConnection crmc       = new CrmConnection("Crm");
                CrmService    crmService = crmc.CreateCrmService();

                if (contact_ID == new Guid("{00000000-0000-0000-0000-000000000000}"))
                {
                    contactid = crmService.Create(cont);
                }

                // Создаем экземпляр динамческого объекта и указываем его имя
                DynamicEntity myDEUpdate = new DynamicEntity();
                myDEUpdate.Name = "contact";


                // Создаем KeyProperty для хранения GUID’а обновляемой записи
                KeyProperty myContactGuid = new KeyProperty();
                myContactGuid.Name = "contactid";

                // Указываем GUID обновляемой записи
                Key myContactKey = new Key();
                myContactKey.Value  = contactid;
                myContactGuid.Value = myContactKey;
                myDEUpdate.Properties.Add(myContactGuid);



                if (contact.address1_city != null)
                {
                    myDEUpdate.Properties.Add(new StringProperty("address1_city", contact.address1_city));
                }

                if (contact.address1_country != null)
                {
                    myDEUpdate.Properties.Add(new StringProperty("address1_country", contact.address1_country));
                }

                if (contact.address1_line1 != null)
                {
                    myDEUpdate.Properties.Add(new StringProperty("address1_line1", contact.address1_line1));
                }

                if (contact.address1_name != null)
                {
                    myDEUpdate.Properties.Add(new StringProperty("address1_name", contact.address1_name));
                }

                if (contact.address1_postalcode != null)
                {
                    myDEUpdate.Properties.Add(new StringProperty("address1_postalcode", contact.address1_postalcode));
                }

                if (contact.emailaddress1 != null)
                {
                    myDEUpdate.Properties.Add(new StringProperty("emailaddress1", contact.emailaddress1));
                }

                if (contact.firstname != null)
                {
                    myDEUpdate.Properties.Add(new StringProperty("firstname", contact.firstname));
                }

                if (contact.lastname != null)
                {
                    myDEUpdate.Properties.Add(new StringProperty("lastname", contact.lastname));
                }

                if (contact.middlename != null)
                {
                    myDEUpdate.Properties.Add(new StringProperty("middlename", contact.middlename));
                }

                if (contact.mobilephone != null)
                {
                    myDEUpdate.Properties.Add(new StringProperty("mobilephone", contact.mobilephone));
                }

                if (contact.salutation != null)
                {
                    myDEUpdate.Properties.Add(new StringProperty("salutation", contact.salutation));
                }

                //Кем выдан
                if (contact.new_giveoutby != null)
                {
                    myDEUpdate.Properties.Add(new StringProperty("new_giveoutby", contact.new_giveoutby));
                }

                //Номер
                if (contact.new_nomer != null)
                {
                    myDEUpdate.Properties.Add(new StringProperty("new_nomer", contact.new_nomer));
                }

                //Серия
                if (contact.new_seria != null)
                {
                    myDEUpdate.Properties.Add(new StringProperty("new_seria", contact.new_seria));
                }



                //Пол
                if (contact.gendercode != 0)
                {
                    myDEUpdate.Properties.Add(new PicklistProperty("gendercode", new Picklist(contact.gendercode)));
                }

                //Гражданство
                if (contact.new_nationality != 0)
                {
                    myDEUpdate.Properties.Add(new PicklistProperty("new_nationality", new Picklist(contact.new_nationality)));
                }

                //Тип ФЛ
                if (contact.new_type != 0)
                {
                    myDEUpdate.Properties.Add(new PicklistProperty("new_type", new Picklist(contact.new_type)));
                }

                //Семейное положение
                if (contact.familystatuscode != 0)
                {
                    myDEUpdate.Properties.Add(new PicklistProperty("familystatuscode", new Picklist(contact.familystatuscode)));
                }


                //День рождения
                if (contact.birthdate != null)
                {
                    myDEUpdate.Properties.Add(new CrmDateTimeProperty("birthdate", CrmDateTime.FromUser(DateTime.ParseExact(contact.birthdate, "yyyyMMddHHmmss", CultureInfo.InvariantCulture))));
                }

                //Посетил открытый урок
                if (contact.new_openles != null)
                {
                    myDEUpdate.Properties.Add(new CrmDateTimeProperty("new_openles", CrmDateTime.FromUser(DateTime.ParseExact(contact.new_openles, "yyyyMMddHHmmss", CultureInfo.InvariantCulture))));
                }

                //Дата выдачи
                if (contact.new_dategiveout != null)
                {
                    myDEUpdate.Properties.Add(new CrmDateTimeProperty("new_dategiveout", CrmDateTime.FromUser(DateTime.ParseExact(contact.new_dategiveout, "yyyyMMddHHmmss", CultureInfo.InvariantCulture))));
                }


                crmService.Update(myDEUpdate);


                //поиск контакта для переназначения ответственного, если таковой меняется
                Owner ownerID = new Owner();
                if (contact_ID != new Guid("{00000000-0000-0000-0000-000000000000}"))
                {
                    try
                    {
                        string ln = ""; //фамилия
                        BusinessEntityCollection fcontact = searchContact(contact_ID.ToString());
                        foreach (DynamicEntity cont1 in fcontact.BusinessEntities)
                        {
                            ln = cont1["lastname"].ToString();
                            if (cont1.Properties.Contains("ownerid"))
                            {
                                ownerID = (Owner)cont1["ownerid"];
                            }
                        }

                        logger.Info($"Нашли контакт {ln}. ownerid={ownerID.Value.ToString()}");
                    }
                    catch (Exception ex)
                    {
                        logger.Error($"Ошибка: {ex.ToString()}");
                    }
                }

                if (contact.ownerid != new Guid("{00000000-0000-0000-0000-000000000000}"))
                {
                    if (ownerID.Value != contact.ownerid)
                    {
                        TargetOwnedContact target   = new TargetOwnedContact();
                        SecurityPrincipal  assignee = new SecurityPrincipal();
                        assignee.Type        = SecurityPrincipalType.User;
                        assignee.PrincipalId = contact.ownerid;
                        target.EntityId      = contactid;

                        AssignRequest assign = new AssignRequest();
                        assign.Assignee = assignee;
                        assign.Target   = target;
                        AssignResponse res = (AssignResponse)crmService.Execute(assign);
                    }
                }
                return(contactid.ToString());
            }
            catch (SoapException ex)
            {
                logger.Error($"Ошибка: {ex.Detail.InnerText}");
                return(ex.Detail.InnerText);
            }
        }