/// <summary> /// Асинхронно записывает данные объекта на сервере. /// </summary> /// <param name="режимЗаписиДокумента">Режим записи документа (только для документов).</param> /// <param name="режимПроведенияДокумента">Режим проведения документа (только для документов).</param> /// <returns></returns> protected async Task ЗаписатьДанныеАсинх(ежимЗаписиДокумента режимЗаписиДокумента = ежимЗаписиДокумента.Запись, ежимПроведенияДокумента режимПроведенияДокумента = ежимПроведенияДокумента.Неоперативный) { ValueObjectRef tempObject = new ValueObjectRef(this.reference); tempObject.Property = new ValueBase[this.modifiedFields.Count]; int i = 0; foreach (string key in this.modifiedFields) { object value = null; this.data.TryGetValue(key, out value); ValueBase property = ValueBase.From(value); property.Name = key; tempObject.Property[i] = property; i++; } PostObject_Settings settings = new PostObject_Settings( this.ДополнительныеСвойства, режимЗаписиДокумента, режимПроведенияДокумента, this.isExchangeLoadMode ); Task <PostObjectResponse> task = this.Клиент().SoapКлиент.PostObjectAsync(tempObject, settings); ValueObjectRef returnObject = (await task).@return; ОбъектСсылка ссылка = returnObject.GetValue(this.Клиент()) as ОбъектСсылка; this.УстановитьСсылку(ссылка); this.УстановитьЗначенияИзСвойствSOAP(returnObject.Property); this.modifiedFields.Clear(); }
/// <summary> /// Асинхронно загружает данные объекта с сервера. /// </summary> public async Task ЗагрузитьДанныеАсинх() { GetObject_Settings settings = new GetObject_Settings(); settings.FieldAutoinclusion = new RequestFieldAutoinclusionSettings(); settings.FieldAutoinclusion.DefaultFields = true; settings.FieldAutoinclusion.DefaultFieldsSpecified = true; settings.FieldAutoinclusion.CustomFields = true; settings.FieldAutoinclusion.CustomFieldsSpecified = true; settings.FieldAutoinclusion.Tables = true; settings.FieldAutoinclusion.TablesSpecified = true; Task <GetObjectResponse> task = this.Клиент().SoapКлиент.GetObjectAsync(new ValueObjectRef(this.reference), settings); ValueObjectRef refSoap = (await task).@return as ValueObjectRef; this.Клиент().Контекст().УстановитьПредставлениеОбъекта(this.reference, refSoap.Presentation); this.Клиент().Контекст().УстановитьЗначенияИзСвойствSOAP(this.reference, refSoap.Property); this.УстановитьЗначенияИзСвойствSOAP(refSoap.Property); this.modifiedFields.Clear(); }
/// <summary> /// Асинхронно загружает данные объекта с сервера. /// </summary> /// <param name="ссылка">Ссылка на объект.</param> public async Task ЗагрузитьДанныеОбъектаАсинх(ОбъектСсылка ссылка) { GetObject_Settings settings = new GetObject_Settings(); settings.AddSkippedProperties = true; settings.FieldAutoinclusion = new RequestFieldAutoinclusionSettings(); settings.FieldAutoinclusion.DefaultFields = true; settings.FieldAutoinclusion.DefaultFieldsSpecified = true; settings.FieldAutoinclusion.CustomFields = true; settings.FieldAutoinclusion.CustomFieldsSpecified = true; settings.FieldAutoinclusion.Tables = true; settings.FieldAutoinclusion.TablesSpecified = true; Task <GetObjectResponse> task = this.bromClient.SoapКлиент.GetObjectAsync((ValueObjectRef)ValueBase.From(ссылка), settings); ValueObjectRef refSoap = (await task).@return as ValueObjectRef; this.ИнициализироватьДанныеОбъекта(ссылка); this.УстановитьПредставлениеОбъекта(ссылка, refSoap.Presentation); this.УстановитьЗначенияИзСвойствSOAP(ссылка, refSoap.Property); }