Пример #1
0
        public async Task <Result> AddData(AddDataCommand command)
        {
            EnsureArg.IsNotNull(command);

            var userResult = await userService.GetByUsername(command.Username)
                             .ToResult("User not found");

            userResult = await userResult.OnFailureCompensate(
                () => command.FileType == FileType.Input
                ?userService.AddUser(new AddUserCommand(command.Username))
                : Task.FromResult(userResult));

            var userModels = await dataFileReadRepository.Find(file =>
                                                               file.User.Username == command.Username && file.FileType == FileType.Model);

            return(await userResult
                   .Bind(u => DataFile.Create(command.Filename, u, command.FileType))
                   .Tap(df =>
            {
                if (command.FileType == FileType.Input && userModels.Any())
                {
                    df.AddDomainEvent(new NewAccelerometerDataEvent(command.Username, command.Email));
                }
            })
                   .Tap(df =>
            {
                var saveFileCommand = new SaveFileCommand(command.ContentStream, command.Filename, command.Username,
                                                          df.Id);
                fileStorageService.SaveFile(saveFileCommand);
            })
                   .Tap(df => dataFileWriteRepository.Create(df))
                   .Tap(() => dataFileWriteRepository.Commit()));
        }
        /// <summary>
        /// Retrieves the result for the specified query.
        /// </summary>
        /// <param name="query">The query.</param>
        /// <returns>The query result.</returns>
        public IEnumerable <TModel> Retrieve(FindQuery <TModel> query)
        {
            var entities = _repository.Find(query.Filter);
            var model    = _mapper.Map <IEnumerable <TModel> >(entities);

            return(model);
        }
Пример #3
0
        public Task <GetWaitingStepQueryResponse> Handle(GetWaitingStepQuery request, CancellationToken cancellationToken)
        {
            // Build retrieval
            var buildPersistenceModel = _buildRepository.Find(request.BuildID);

            if (buildPersistenceModel == null)
            {
                throw new ArgumentException($"Build with id \"{request.BuildID}\" does not exist.");
            }

            // Conversion
            var buildDomainEntity = _mapper.Map <BuildDomainEntity>(buildPersistenceModel);

            // Retrieval via business logic
            var buildStepContainer = buildDomainEntity.GetNextWaitingStep();

            if (buildStepContainer == null)
            {
                return(Task.FromResult <GetWaitingStepQueryResponse>(null));
            }

            // Conversion to application model
            var stepPersistenceModel = _mapper.Map <BuildStepPersistenceModel>(buildStepContainer.Step);
            var stepApplicationModel = _mapper.Map <BuildStepApplicationModel>(stepPersistenceModel);

            return(Task.FromResult(new GetWaitingStepQueryResponse(stepApplicationModel, buildStepContainer.Index)));
        }
Пример #4
0
        public Task <BuildApplicationModel> Handle(GetBuildQuery request, CancellationToken cancellationToken)
        {
            var buildPersistenceModel = _buildRepository.Find(request.ID);

            if (buildPersistenceModel == null)
            {
                return(Task.FromResult <BuildApplicationModel>(null));
            }

            var buildApplicationModel = _mapper.Map <BuildApplicationModel>(buildPersistenceModel);

            return(Task.FromResult(buildApplicationModel));
        }
Пример #5
0
        public static TEntity Resolve <TEntity>([NotNull] this TEntity entity, [NotNull] IReadRepository <TEntity> repository)
            where TEntity : class, IEntity
        {
            if (entity.Id == Entity.NoId)
            {
                return(entity);
            }

            var entityWithResolvedRefs = repository.Find(entity.Id);

            if (entityWithResolvedRefs == null)
            {
                throw new KeyNotFoundException($"{entity.GetType().Name} with ID {entity.Id} not found.");
            }
            return(entityWithResolvedRefs);
        }
Пример #6
0
        public DescriptiveResponse <FilteredCollection <TRead> > FilterCollection(Filtration filter)
        {
            try
            {
                // Add userId in case of entity of type managed entity
                if (typeof(TRead).IsSubclassOf(typeof(ManagedEntity <TId, TUId>)))
                {
                    if (filter == null)
                    {
                        filter = new Filtration();
                    }

                    if (filter.SearchCriteria == null)
                    {
                        filter.SearchCriteria = new List <FilterSearchCriteria>();
                    }

                    filter.SearchCriteria.Add(new FilterSearchCriteria
                    {
                        Field     = "CreatedBy",
                        Operator  = LogicalOperator.Equal,
                        SearchKey = UserUtility <TUId> .CurrentUser.UserId.ToString()
                    });
                }

                // Find all items that match filteration
                FilteredCollection <TRead> filteredCollection = _readRepository.Find(filter);

                // Return success response
                return(DescriptiveResponse <FilteredCollection <TRead> > .Success(filteredCollection));
            }
            catch (Exception ex)
            {
                // Log error
                Logger.Log(ex);

                // return unexpected error
                return(DescriptiveResponse <FilteredCollection <TRead> > .Error(ErrorStatus.UNEXPECTED_ERROR));
            }
        }
Пример #7
0
 public TEntity Find(long id) => Inner.Find(id)?.DehydrateReferences();
        public async Task Handle(WorkItemReassignedEvent evnt)
        {
            var workItem = await repository.Find(evnt.AggregateId);

            workItem.BrokerId = evnt.BrokerId;
        }
Пример #9
0
 public virtual TEntity Read(long id)
 {
     return(CheckFound(Repository.Find(id), id));
 }
Пример #10
0
 public bool BuildExistsByID(string buildID)
 {
     return(_buildRepository.Find(buildID) != null);
 }