Пример #1
0
        public async Task <Guid> CreateAsync(CancellationToken token)
        {
            var createdModel = await _someModelRepository.CreateAsync(token : token);

            await _someModelRepository.SaveChangesAsync(token);

            _ = Task.Run(async() =>
            {
                createdModel.Status = StateStatus.Running;
                await _someModelRepository.UpdateAsync(createdModel, token);
                await _someModelRepository.SaveChangesAsync(token);

                await Task.Delay(TimeSpan.FromMinutes(2));

                createdModel.Status = StateStatus.Finished;
                await _someModelRepository.UpdateAsync(createdModel, token);
                await _someModelRepository.SaveChangesAsync(token);
            });

            return(createdModel.Id);
        }
        public async Task <SomeModelContract> UpdateAsync(
            SomeModelContract model)
        {
            _logger.LogTrace(
                $"Updating a SomeModel with Id {model.Id} based on the command data sent: " +
                $"{JsonConvert.SerializeObject(model)}");

            var storedModel = _somemodelRepository.GetAsync(model.Id);

            if (storedModel == null)
            {
                _logger.LogWarning($"No such SomeModel model with Id {model.Id} found.  Doing nothing.");
                return(model);
            }

            var result = await _somemodelRepository.UpdateAsync(CastToDomainModel(model));

            return(CastToContract(result));
        }