Пример #1
0
        public async Task <TotalEarningForCustomerInMonth> CalculateAndSaveCustomerEarningsForMonthAsync(int customerId, Month month)
        {
            var customer = await _customerReadRepository.GetAsync(customerId);

            var result = await _customerOperation.CalculateCustomerEarningsForMonthAsync(customer, month);

            await _totalEarningWriteRepository.AddAsync(result);

            return(result);
        }
        public async virtual Task <IEnumerable <T> > GetAsync()
        {
            var result = await _ReadRepo.GetAsync();

            if (result != null)
            {
                return(result);
            }

            return(result);
        }
Пример #3
0
        public async Task <IActionResult> Get(string id)
        {
            var company = await _readRepository.GetAsync(id);

            if (company == null)
            {
                return(NotFound());
            }

            return(Ok(company));
        }
        public async Task <IActionResult> Get(string id)
        {
            var product = await _readRepository.GetAsync(id);

            if (product == null)
            {
                return(NotFound());
            }

            return(Ok(product));
        }
        public async Task <IActionResult> Get(string id)
        {
            var seller = await _readRepository.GetAsync(id);

            if (seller == null)
            {
                return(NotFound());
            }

            return(Ok(UserFactory.CreateUserDTOFromUser(seller)));
        }
Пример #6
0
        public void Can_save_entity_by_id_twice()
        {
            var expected = config.ReadModel.GetTestEntityA();

            readRepository.InsertAsync(expected).Wait();
            var loaded = (ITestEntityA)readRepository.GetAsync(expected.GetType(), expected.Id).Result;

            loaded.Value.Should().Be(expected.Value);

            loaded.Value = "test2";
            readRepository.UpdateAsync(loaded).Wait();

            loaded = (ITestEntityA)readRepository.GetAsync(expected.GetType(), expected.Id).Result;
            loaded.Value.Should().Be("test2");
        }
Пример #7
0
        public async Task <IActionResult> SetPassword(
            [FromForm] string code,
            [FromForm] string userId,
            [FromForm] string password,
            [FromForm] string confirmPassword)
        {
            if (password.Length < 8 || password != confirmPassword)
            {
                return(BadRequest());
            }

            var validation = (await _readEmailValidationRepository.FindAsync(x => x.ValidationCode == code && x.UserId == userId)).SingleOrDefault();

            if (validation == null)
            {
                return(BadRequest());
            }

            var user = await _readUserRepository.GetAsync(userId);

            user.CreatePasswordHashAndSalt(password);
            user.IsActive = true;
            try
            {
                await _writeUserRepository.UpdateAsync(user);
            }
            catch
            {
                return(BadRequest());
            }

            await _writeEmailValidationRepository.DeleteManyAsync(x => x.UserId == user.Id);

            return(Ok());
        }
Пример #8
0
        public static Task <IEnumerable <TEntity> > GetAllAsync <TEntity>(
            this IReadRepository <TEntity> repository)
            where TEntity : class, IEntity
        {
            Contract.Requires(repository != null);
            Contract.Ensures(Contract.Result <Task <IEnumerable <TEntity> > >() != null);

            return(repository.GetAsync(query => query, CancellationToken.None));
        }
Пример #9
0
        public async Task <TotalEarningForCustomerInMonth> CalculateAndSaveCustomerEarningsForMonthAsync(int customerId, Month month)
        {
            var customer = await _customerReadRepository.GetAsync(customerId);

            var earnings = customer.Earnings.Where(x => x.MonthInYear == month).Sum(s => s.Value);

            var result = new TotalEarningForCustomerInMonth
            {
                CustomerId   = customer.Id,
                Month        = month,
                Name         = customer.Name,
                TotalEarning = earnings
            };

            await _totalEarningWriteRepository.AddAsync(result);

            return(result);
        }
Пример #10
0
        public async Task UpdateByIdAsync <TReadModel, TKey>(TKey id, Action <TReadModel> action)
            where TReadModel : class, IReadModel <TKey>, new()
        {
            var readModel = await readRepository.GetAsync <TReadModel>(id).ConfigureAwait(false);

            action(readModel);

            await readRepository.UpdateAsync(readModel).ConfigureAwait(false);
        }
Пример #11
0
        public static Task <IEnumerable <TEntity> > FindByAsync <TEntity>(
            this IReadRepository <TEntity> repository,
            Expression <Func <TEntity, bool> > predicate)
            where TEntity : class, IEntity
        {
            Contract.Requires(repository != null);
            Contract.Requires(predicate != null);
            Contract.Ensures(Contract.Result <Task <IEnumerable <TEntity> > >() != null);

            return(repository.GetAsync(query => query.Where(predicate), CancellationToken.None));
        }
Пример #12
0
        public static Task <TResult> GetAsync <TEntity, TResult>(
            this IReadRepository <TEntity> repository,
            Func <IQueryable <TEntity>, TResult> queryShaper)
            where TEntity : class, IEntity
        {
            Contract.Requires(repository != null);
            Contract.Requires(queryShaper != null);
            Contract.Ensures(Contract.Result <Task <TResult> >() != null);

            return(repository.GetAsync(queryShaper, CancellationToken.None));
        }
Пример #13
0
        public async Task <IActionResult> GetPageAsync(string searchText, int skip, int take)
        {
            if (skip < 0 || take < 1)
            {
                var badMessage = string.Empty;
                if (skip < 0)
                {
                    badMessage += BadSkipMessage;
                }
                if (take < 1)
                {
                    badMessage += BadTakeMessage;
                }
                return(BadRequest(badMessage));
            }

            var page = await Repository.GetAsync(searchText, skip, take).ConfigureAwait(false);

            var links = PageLinksBuilder.Build(page, Request);

            Response.Headers.Add(LinkHeaderValue, links);
            return(Ok(page.Items));
        }
Пример #14
0
        public static async Task <TEntity> GetSingleAsync <TEntity>(
            this IReadRepository <TEntity> repository,
            Expression <Func <TEntity, bool> > predicate,
            CancellationToken cancellationToken)
            where TEntity : class, IEntity
        {
            Contract.Requires(repository != null);
            Contract.Requires(predicate != null);
            Contract.Ensures(Contract.Result <Task <TEntity> >() != null);

            var items = await repository.GetAsync(query => query.Where(predicate), cancellationToken);

            return(items.SingleOrDefault());
        }
Пример #15
0
        public async Task <IActionResult> Token([FromForm] string grant_type, [FromForm] string email, [FromForm] string password, [FromForm] string refresh_token)
        {
            object userResponse = null;

            if (grant_type == "refresh_token")
            {
                var userId = GetUserIdFromRefreshToken(refresh_token);

                if (userId == null)
                {
                    return(BadRequest());
                }

                var user = await _readRepository.GetAsync(userId);

                userResponse = new { IdToken = GetIdToken(user), RefreshToken = GetRefreshToken(user) };
            }

            if (grant_type == "token")
            {
                var user = (await _readRepository.FindAsync(x => x.Email == email)).SingleOrDefault();

                if (user == null)
                {
                    return(BadRequest());
                }

                var passwordHash = GetPasswordHash(password, user.PasswordSalt);

                for (int i = 0; i < passwordHash.Length; i++)
                {
                    if (passwordHash[i] != user.PasswordHash[i])
                    {
                        return(BadRequest());
                    }
                }

                userResponse = new { IdToken = GetIdToken(user), RefreshToken = GetRefreshToken(user) };
            }

            return(Ok(userResponse));
        }
 public async Task <IEnumerable <Product> > GetAll()
 {
     return(await repository.GetAsync());
 }