6.3.8 Модификация данных объекта
Как правило, фоновые задачи создаются для выполнения различных модификаций объектов системы. Для модификаций объектов используются стандартные методы Entity Framework, либо методы расширения, чтобы запустить конвейер middleware для сущностей,
Пример добавления РК документа:
|
// Добавление РК документаvar docRc = _dataContext.CreateDocRc();
docRc.IsnDoc = _dataContextHelper.GetSeqAsync(SeqConstants.SEQ_DOCPRJ_RC).Result;
docRc.DocDate = DateTime.UtcNow.Date;
docRc.IsnDocvid = 0;
docRc.FreeNum = Guid.NewGuid().ToString("N");
docRc.Consists = "1";
docRc.Securlevel = 1;
docRc.DueDocgroup = "0.2TZ.2U7.";
docRc.Annotat = "Содержание РК";
docRc.AdressFlag = 3;
_dataContext.Add(docRc);
var resSave = _dataContext.SaveChangesAsync().Result;
|
Пример добавления РК документа, с запуском конвейера middleware:
|
// Добавление РК документа с запуском конвейера middlewarevar docRc = _dataContext.CreateDocRc();
docRc.DocDate = DateTime.UtcNow;
docRc.FreeNum = Guid.NewGuid().ToString("N");
docRc.Consists = "1";
docRc.Annotat = "Содержание РК";
_dataContext.Add(docRc);
var userId = DaemonsDomain.Instance.LoadDomainConfiguration().UserID;
var user = await _userService.GetUserAsync(userId);
var context = MiddlewareHelper.CreateMutationContext(_dataContext, user, null,
ExtProtOperationType.Mutation, Token);
var resSave = await _dataContext.SaveChangesAsync(_serviceProvider, context);
|
Пример добавления подразделения и ДЛ внутри него:
|
// Добавление подразделения и ДЛ внутри негоvar department = _dataContext.CreateDepartment();
var parentNode = _dataContext.CreateDepartment();
department.ClassifName = "Тест";
department.ParentNode = parentNode;
parentNode.IsnHighNode = 1;
parentNode.ClassifName = "Тест dep";
_dataContext.Add(department);
_dataContext.Add(parentNode);
var userId = DaemonsDomain.Instance.LoadDomainConfiguration().UserID;
var user = await _userService.GetUserAsync(userId);
var context = MiddlewareHelper.CreateMutationContext(_dataContext, user, null,
ExtProtOperationType.Mutation, Token);
var resSave = await _dataContext.SaveChangesAsync(_serviceProvider, context);
|
Пример изменения и удаления сущности:
|
// Изменение и удаление сущностиvar docRc = await _dataContext.DocRcs.Where(b => b.IsnDoc == 1)
.AsNoTracking()
.FirstOrDefaultAsync();
var docRc2 = await _dataContext.DocRcs.Where(b => b.IsnDoc == 2)
.AsNoTracking()
.FirstOrDefaultAsync();
_dataContext.EnsureTracked(docRc);
docRc.Annotat = "Тест1";
_dataContext.Remove(docRc2);
var userId = DaemonsDomain.Instance.LoadDomainConfiguration().UserID;
var user = await _userService.GetUserAsync(userId);
var context = MiddlewareHelper.CreateMutationContext(_dataContext, user, null,
ExtProtOperationType.Mutation, Token);
var resSave = await _dataContext.SaveChangesAsync(_serviceProvider, context);
|
