/// <summary> /// Записывает "описание операции" в хранилище /// </summary> /// <param name="operationDescription">"описание операции"</param> public void Save(int argument1, int argument2, decimal operationResult, OperationTypes operationType) { var operationDescription = new OperationDescription { //аргумент 1 Argument1 = argument1, //аргумент 2 Argument2 = argument2, //тип операции OperationType = operationType, //результат операции OperationResult = operationResult, //время операции (проставляется текущее) OperationTime = dateTimeService.DateTimeNow() }; //сохраняем "описание операции" в хранилище this.Save(operationDescription); }
/// <summary> /// Операция сохранения /// </summary> /// <param name="operationDescription">"описание операции"</param> private void SaveAsync(OperationDescription operationDescription) { //служба домена должна записать "описание операции" в хранилище this.repository.Save(operationDescription); }
/// <summary> /// Подготовка полей для сохранения /// </summary> /// <param name="operationDescription">"описание операции"</param> private void SaveFields(OperationDescription operationDescription) { XElement element = new XElement("OperationDescription"); element.Add(new XAttribute("Argument1", operationDescription.Argument1.ToString())); element.Add(new XAttribute("Argument2", operationDescription.Argument2.ToString())); element.Add(new XAttribute("OperationType", operationDescription.OperationType.ToString())); element.Add(new XAttribute("OperationResult", operationDescription.OperationResult.ToString())); element.Add(new XAttribute("OperationTime", operationDescription.OperationTime.ToString())); _document.Root.Add(element); }
/// <summary> /// Запуск операции сохранения в отдельном потоке /// </summary> /// <param name="operationDescription">"описание операции"</param> /// <returns></returns> private Task Save(OperationDescription operationDescription) { Task task = Task.Factory.StartNew(() => SaveAsync(operationDescription)); return task; }
/// <summary> /// Сохранение "описания операции" в хранилище /// </summary> /// <param name="operationDescription">"описание операции"</param> public void Save(OperationDescription operationDescription) { this.SaveFields(operationDescription); this.SaveChanges(); }