Пример #1
0
 public void AddOrUpdate(Context context)
 {
     if (context.IsNew())
     {
         _contextRepository.Add(context);
     }
     else
     {
         _contextRepository.Update(context);
     }
 }
            public void Then_expected_methods_are_called_the_correct_times()
            {
                _sut.Update(_foo);

                Assert.Multiple(() =>
                {
                    _contextService.Received(_expectedContextManageCount).InitContext();
                    _contextService.Received(_expectedContextManageCount).ClearCurrentContext();
                    _dbSet.Received(1).Update(_foo);
                    _flushService.Received(1).FlushChanges(_context);
                });
            }
Пример #3
0
        /// <inheritdoc />
        /// <summary>
        /// </summary>
        /// <param name="contextModel"></param>
        /// <returns></returns>
        public async Task <ContextModel> CreateOrUpdate(ContextModel contextModel)
        {
            if (contextModel.Id == Guid.Empty)
            {
                contextModel = NewContextModel(contextModel);
            }

            var contextDb = await _contextRepository.FindBy(s => s.Id == contextModel.Id).ConfigureAwait(false);

            if (contextDb == null)
            {
                var context = AutoMapper.Mapper.Map <Context>(contextModel);
                _contextRepository.Create(context);
                _contextRepository.Save(false, false, contextModel.Id);
            }
            else
            {
                AutoMapper.Mapper.Map(contextModel, contextDb);
                _contextRepository.Update(contextDb);
                _contextRepository.Save(false, false, contextModel.Id);
            }

            var contract = await BenChainApi.Client.Contract.AddContractWithHttpMessagesAsync(contextModel.Id, contextModel.Token1, contextModel.Token2, contextModel.FileCheckSum, contextModel.ContextHash).ConfigureAwait(false);


            //First Signator
            await _signatorServices.CreateOrUpdate(CreatedNewSignator(contextModel));

            switch (contextModel.Ref)
            {
            case 0:
                //Case 1
                //Second Signator
                var signator = CreatedNewSignator(contextModel);
                signator.ParticipantId = Guid.NewGuid(); // tweede
                await _signatorServices.CreateOrUpdate(signator);

                break;

            case 1:
                //Case 2
                //Second Signator
                break;

            case 2:
                //Case 3
                //Second Signator
                break;
            }

            return(contextModel);
        }
Пример #4
0
        //Полиморфный объект общий для всех журналов выполненных работ.
        //По тиму модели базы вызывается необходимая стратегия

        /// <summary>
        /// Удалить запись журнала
        /// </summary>
        private async System.Threading.Tasks.Task <JsonResult> DeleteAsync <ModelDb>(int id) where ModelDb : class
        {
            #region Проверка существования записи в соответствующем журнале
            // CollectionStrategyWorksJournal Коллекция стратегий в одтельном файле - CollectionStrategyWorksJournal
            var strategy = new CollectionStrategyWorksJournal <ModelDb>(UnitOfWork)
                           .GetStategyCore();

            if ((await strategy.SelectByIdAsync(id)) == null)
            {
                LogProxy.Log(new DataLog(level: LogLevel.Warn, message: "Ошибка при удалении. Не удалось найти запись", id: id.ToString(), context: ContexLog.ExecutedWorkJournal));
                return(Json(ConstMessage.DeleteUnexpectedError, JsonRequestBehavior.AllowGet));
            }

            #endregion

            try
            {
                var repExecutedWorksJournal = new ContextRepository <ExecutedWorkJournal>(UnitOfWork.RepositoryExecutedWorkJournal);

                var journal = await UnitOfWork.RepositoryExecutedWorksJournal.SelectByIdAsync(id);

                var machine = await UnitOfWork.RepositoryRefMachine.SelectByIdAsync(journal.FkMachine);

                var workArea = await UnitOfWork.RepositoryRefWorkArea.SelectByIdAsync(machine.WorkArea);

                //Пометим как удаленную
                journal.IsDeleted = OracleBoolCharExtentions.ToString(true);
                repExecutedWorksJournal.Update(journal);

                LogProxy.Log(new DataLog(level: LogLevel.Info, message: "Удалено. Участок - " + workArea.Name + ", станок " + machine.Name, id: id.ToString(), jsonData: journal, context: ContexLog.ExecutedWorkJournal));

                return(Json(ConstMessage.DeleteSuccess, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                LogProxy.Log(new DataLog(level: LogLevel.Error, message: "Ошибка при удалении записи журнала выполненных работ", id: id.ToString(), context: ContexLog.ExecutedWorkJournal, e: e));

                return(Json(ConstMessage.DeleteUnexpectedError, JsonRequestBehavior.AllowGet));
            }
        }
 public void When_updating_a_null_entity_Then_an_exception_is_thrown()
 {
     Assert.That(() => _sut.Update(null), Throws.ArgumentNullException);
 }