public async Task EditCompanyAsyncShouldEditCompany()
        {
            var options = new DbContextOptionsBuilder <PhotoparallelDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;
            var dbContext = new PhotoparallelDbContext(options);

            var creditCompaniesService = new CreditCompaniesService(dbContext);

            var company = new CreditCompany()
            {
                Name     = "TBI",
                Interest = 12,
                Address  = "Sofia, Mladost 4",
            };

            dbContext.CreditCompanies.Add(company);
            await dbContext.SaveChangesAsync();

            company.Name     = "TBICredit";
            company.Interest = 10.5m;
            company.Address  = "Sofia, Mladost 1A";

            await creditCompaniesService.EditCompanyAsync(company);

            var editedCompany = await dbContext.CreditCompanies.FirstOrDefaultAsync(x => x.Name == company.Name);

            Assert.Equal(company.Name, editedCompany.Name);
            Assert.Equal(company.Interest, editedCompany.Interest);
            Assert.Equal(company.Address, editedCompany.Address);
        }
        public async Task ShowCompanyAsync(CreditCompany company)
        {
            company.Hide = false;

            this.context.Update(company);
            await this.context.SaveChangesAsync();
        }
예제 #3
0
        public async Task <string> CreateAsync(string name, DateTime activeSince)
        {
            CreditCompany creditCompany = new CreditCompany
            {
                Name        = name,
                ActiveSince = activeSince,
            };

            bool exists = this.creditCompanyRepository.All()
                          .Where(cc => cc.Name == name)
                          .FirstOrDefault() != null;

            if (exists)
            {
                throw new ServiceException(string.Format(
                                               CreditCompanyNameAlreadyInDb,
                                               name));
            }

            await this.creditCompanyRepository.AddAsync(creditCompany);

            await this.creditCompanyRepository.SaveChangesAsync();

            return(creditCompany.Id);
        }
예제 #4
0
 public CreditCard(CreditCompany company, string owner, uint number, double date)
 {
     _company = company;
     _owner = owner;
     _number = number;
     _date = date;
 }
        public async Task AddCompanyAsync(CreditCompany company)
        {
            if (company == null)
            {
                return;
            }

            this.context.CreditCompanies.Add(company);
            await this.context.SaveChangesAsync();
        }
        public async Task EditCompanyAsync(CreditCompany comapany)
        {
            bool companyExists = await this.context.CreditCompanies.AnyAsync(x => x.Id == comapany.Id);

            if (!companyExists)
            {
                return;
            }

            this.context.Update(comapany);
            await this.context.SaveChangesAsync();
        }
        public async Task AddCompanyAsyncNullEntityShouldNotAddCompany()
        {
            var options = new DbContextOptionsBuilder <PhotoparallelDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;
            var dbContext = new PhotoparallelDbContext(options);

            var creditCompaniesService = new CreditCompaniesService(dbContext);

            CreditCompany company = null;
            await creditCompaniesService.AddCompanyAsync(company);

            var companies = dbContext.CreditCompanies.ToList();

            Assert.Empty(companies);
        }
        public async Task AddCompanyAsyncShouldAddCompany()
        {
            var options = new DbContextOptionsBuilder <PhotoparallelDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;
            var dbContext = new PhotoparallelDbContext(options);

            var creditCompaniesService = new CreditCompaniesService(dbContext);

            var company = new CreditCompany {
                Name = "TBI"
            };
            await creditCompaniesService.AddCompanyAsync(company);

            var products = dbContext.CreditCompanies.ToList();

            Assert.Single(products);
            Assert.Equal(company.Name, products.First().Name);
        }
예제 #9
0
        public async Task CreateAsyncShouldReturnCorrectId()
        {
            const string name        = "name";
            DateTime     activeSince = DateTime.UtcNow.AddDays(-123);

            ApplicationDbContext dbContext = this.GetNewDbContext();

            var creditCompanyRepository = new EfRepository <CreditCompany>(dbContext);

            ICreditCompanyService creditCompanyService = new CreditCompanyService(creditCompanyRepository);

            string id = await creditCompanyService.CreateAsync(name, activeSince);

            CreditCompany creditCompany = dbContext.CreditCompanies
                                          .Where(cc => cc.Id == id)
                                          .FirstOrDefault();

            Assert.NotNull(creditCompany);
            Assert.Equal(name, creditCompany.Name);
            Assert.Equal(activeSince, creditCompany.ActiveSince);
        }
예제 #10
0
        public async Task SetCreditDetailsAsync(CreditContract creditContract, Order order, string address, CreditCompany creditCompany, decimal salary, int months, string ucn, string idNumber)
        {
            creditContract.CreditCompany = creditCompany;
            creditContract.Address       = address;
            creditContract.Months        = months;
            creditContract.PricePerMonth = Math.Round(order.TotalPrice / months, 2) + Math.Round((order.TotalPrice * (creditCompany.Interest / GlobalConstants.HundredPercent)) / GlobalConstants.MonthsInYear, 2);
            creditContract.TotalAmount   = months * creditContract.PricePerMonth;
            creditContract.ActiveUntil   = DateTime.UtcNow.AddHours(GlobalConstants.BulgarianHoursFromUtcNow).AddMonths(months);
            creditContract.Customer      = order.Customer;
            creditContract.Order         = order;
            creditContract.Salary        = salary;
            creditContract.Ucn           = ucn;
            creditContract.IdNumber      = idNumber;

            this.context.Update(creditContract);
            await this.context.SaveChangesAsync();
        }
예제 #11
0
 public void SetCompany(CreditCompany company)
 {
     _company = company;
 }