/// <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); }
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; }
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"); }
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); }
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"); }
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"); }
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"); } }
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"); } }
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; } }
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); }
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); } }
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; }
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); } }