Beispiel #1
0
        public void SavingsAccount_InterestCalc_LastDebitLessThanThirty()
        {
            decimal         initalBalance = 100;
            decimal         expected      = 100;
            PrivateCustomer pc            = new PrivateCustomer()
            {
                CustomerID         = Guid.NewGuid(),
                ContactInformation = new Contact()
                {
                    FirstName    = "test",
                    LastName     = "test",
                    Address      = "test",
                    Email        = "test",
                    PhoneNumbers = new List <string>()
                    {
                        "123-122"
                    }
                }
            };
            BonusSavingsAccount ba = new BonusSavingsAccount(new List <PrivateCustomer>()
            {
                pc
            }, initalBalance);

            ba.CalculateInterest();

            decimal actual = ba.Balance;

            Assert.AreEqual(expected, actual);
        }
        public void OverdraftAccount_Debit_ExceedLimit()
        {
            decimal         debitAmount    = 250;
            decimal         initalBalance  = 100;
            decimal         expected       = 100;
            decimal         overdraftLimit = 100;
            PrivateCustomer pc             = new PrivateCustomer()
            {
                CustomerID         = Guid.NewGuid(),
                ContactInformation = new Contact()
                {
                    FirstName    = "test",
                    LastName     = "test",
                    Address      = "test",
                    Email        = "test",
                    PhoneNumbers = new List <string>()
                    {
                        "123-122"
                    }
                }
            };
            OverdraftAccount ba = new OverdraftAccount(initalBalance, new List <PrivateCustomer>()
            {
                pc
            }, overdraftLimit);

            ba.Debit(debitAmount);

            decimal actual = ba.Balance;

            Assert.AreEqual(expected, actual);
        }
        public ActionResult Create([Bind(Include = "FullName,Address,Phone,Email,Vat,Note,Description")] PrivateCustomer privateCustomer)
        {
            if (ModelState.IsValid)
            {
                privateCustomer.PrivateCustomerID = Guid.NewGuid();

                privateCustomer.DateCreated  = DateTime.Now;
                privateCustomer.DateModified = privateCustomer.DateCreated;

                privateCustomer.CreatedBy  = Guid.Parse(User.Identity.GetUserId());
                privateCustomer.ModifiedBy = privateCustomer.CreatedBy;

                db.PrivateCustomer.Add(privateCustomer);
                db.SaveChanges();

                Customers customers = new Customers();
                customers.CustomerID = Guid.NewGuid();

                customers.DateCreated  = privateCustomer.DateCreated;
                customers.DateModified = privateCustomer.DateModified;

                customers.CreatedBy  = privateCustomer.CreatedBy;
                customers.ModifiedBy = privateCustomer.ModifiedBy;

                customers.PrivateCustomerID = privateCustomer.PrivateCustomerID;

                db.Customers.Add(customers);
                db.SaveChanges();

                return(RedirectToAction("Index", "Customers"));
            }

            return(View(privateCustomer));
        }
Beispiel #4
0
        public void SavingsAccount_Debit_InvalidAmount()
        {
            decimal         debitAmount   = -5;
            decimal         initalBalance = 100;
            decimal         expected      = 100;
            PrivateCustomer pc            = new PrivateCustomer()
            {
                CustomerID         = Guid.NewGuid(),
                ContactInformation = new Contact()
                {
                    FirstName    = "test",
                    LastName     = "test",
                    Address      = "test",
                    Email        = "test",
                    PhoneNumbers = new List <string>()
                    {
                        "123-122"
                    }
                }
            };
            SavingsAccount ba = new SavingsAccount(new List <PrivateCustomer>()
            {
                pc
            }, initalBalance);

            ba.Debit(debitAmount);

            decimal actual = ba.Balance;

            Assert.AreEqual(expected, actual);
        }
Beispiel #5
0
        public void PrivateCustomer()
        {
            Customers.PrivateCustomer privateCustomer = new PrivateCustomer(new TestingCustomers.TestPrivateCustomer());

            // Testing get
            Assert.AreEqual(true, privateCustomer.Active);
            Assert.AreEqual("testAltPhoneNo", privateCustomer.AltPhoneNo);
            Assert.AreEqual("testEmail", privateCustomer.Email);
            Assert.AreEqual("testHomeAddress", privateCustomer.HomeAddress);
            Assert.AreEqual("testName", privateCustomer.Name);
            Assert.AreEqual("testPhoneNo", privateCustomer.PhoneNo);
            Assert.AreEqual(new TestingCustomers.PostNumberTest().Id, privateCustomer.PostNo.Id);
            Assert.AreEqual(1, privateCustomer.PrivateCustomersNo);
            Assert.AreEqual("testName", privateCustomer.Name);

            // Testing set
            privateCustomer.Active = false;
            Assert.AreEqual(false, privateCustomer.Active);
            privateCustomer.AltPhoneNo = "NewTestAltPhoneNo";
            Assert.AreEqual("NewTestAltPhoneNo", privateCustomer.AltPhoneNo);
            privateCustomer.Email = "newTestEamil";
            Assert.AreEqual("newTestEamil", privateCustomer.Email);
            privateCustomer.HomeAddress = "newTestHomeAddress";
            Assert.AreEqual("newTestHomeAddress", privateCustomer.HomeAddress);
            privateCustomer.Name = "newTestName";
            Assert.AreEqual("newTestName", privateCustomer.Name);
            privateCustomer.PhoneNo = "newTestPhoneNo";
            Assert.AreEqual("newTestPhoneNo", privateCustomer.PhoneNo);
            privateCustomer.PostNo = new TestingCustomers.PostNumberTest();
            Assert.AreEqual(new TestingCustomers.PostNumberTest().Id, privateCustomer.PostNo.Id);
            privateCustomer.Name = "newTestName";
            Assert.AreEqual("newTestName", privateCustomer.Name);
        }
        public void OverdraftAccount_InterestCalc_Overdraft()
        {
            decimal         initalBalance  = -100;
            decimal         expected       = -103.25M;
            decimal         overdraftLimit = 10000;
            PrivateCustomer pc             = new PrivateCustomer()
            {
                CustomerID         = Guid.NewGuid(),
                ContactInformation = new Contact()
                {
                    FirstName    = "test",
                    LastName     = "test",
                    Address      = "test",
                    Email        = "test",
                    PhoneNumbers = new List <string>()
                    {
                        "123-122"
                    }
                }
            };
            OverdraftAccount ba = new OverdraftAccount(initalBalance, new List <PrivateCustomer>()
            {
                pc
            }, overdraftLimit);

            ba.CalculateInterest();

            decimal actual = ba.Balance;

            Assert.AreEqual(expected, actual);
        }
Beispiel #7
0
        public async Task <IActionResult> EditPrivateCustomer(PrivateCustomer privateCustomer)
        {
            if (ModelState.IsValid)
            {
                string endPointGetPrivateCustomer = $"PrivateCustomer?id={privateCustomer.PrivateCustomerID}";
                string baseUrl = configuration.GetValue <string>("Urls:CustomerBaseUrl");

                int statusCode = await PrivateCustomerHandler.PutHttp(privateCustomer, baseUrl, endPointGetPrivateCustomer);

                if (statusCode == StatusCodes.Status204NoContent)
                {
                    return(RedirectToAction("GetPrivateCustomers"));
                }

                string endPointGetCompanyCustomer = $"PrivateCustomer/{privateCustomer.PrivateCustomerID}";
                var    updatedCustomer            = await PrivateCustomerHandler.CallHttpGetByID(baseUrl, endPointGetCompanyCustomer);

                PrivateCustomerEditViewModel privateCustomerEditViewModel = new();
                privateCustomerEditViewModel.PrivateCustomer = updatedCustomer;

                var ErrorMessageForConflict = "Nogen har sandsynligvis lavet ændringer i mellemtiden. Nyeste version er nu hentet.";
                privateCustomerEditViewModel.ErrorMessage = $"Fejlede med statuskode {statusCode}. {(statusCode == 409 ? ErrorMessageForConflict : "")}";
                ModelState.Clear();

                return(View("EditPrivateCustomer", privateCustomerEditViewModel));
            }
            return(View());
        }
Beispiel #8
0
        public static void Main(string[] args)
        {
            // initialise new private customer and all types of accounts with it
            var privateGosho      = new PrivateCustomer("Gosho", "Ubawetsa", "9005062452", "P0001620");
            var newDepositPrivate = new Deposit("DP00001", 1m, privateGosho);
            var newLoanPrivate    = new Loan("LP00001", 20m, privateGosho);
            var newMortPrivate    = new Mortgage("MP00001", 15m, privateGosho);

            // initialise ne corporate customer and all types of accounts with it
            var corporatePesho = new CorporateCustomer("Kurti ltd", "BG130607427", "C00012368");
            var newDepositCorp = new Deposit("DC00001", 0.5m, corporatePesho);
            var newLoanCorp    = new Loan("LC00001", 30m, corporatePesho);
            var newMortCorp    = new Mortgage("MC00001", 25, corporatePesho);

            // prit the corporate deposit account to ches the ToStrig() overriding
            Console.WriteLine(newDepositCorp);

            // deposit money to the corporatie deposit
            newDepositCorp.DepositMoney(2000m);

            // newDepositCorp.Withdraw(200m); // Shoud throw exeption (insufficient money)

            // prints the interest for 5 monts
            Console.WriteLine();
            Console.WriteLine(newDepositCorp.CalculateIntersetAmount(5));

            // deposit money to private loan
            newLoanPrivate.DepositMoney(100m);

            // print interest fow 2 monts for private loan
            Console.WriteLine();
            Console.WriteLine(newLoanPrivate.CalculateIntersetAmount(2));

            // and so on..
        }
Beispiel #9
0
        public void SavingsAccount_ResetDebit()
        {
            decimal         initalBalance = 100;
            DateTime        expected      = default(DateTime);
            PrivateCustomer pc            = new PrivateCustomer()
            {
                CustomerID         = Guid.NewGuid(),
                ContactInformation = new Contact()
                {
                    FirstName    = "test",
                    LastName     = "test",
                    Address      = "test",
                    Email        = "test",
                    PhoneNumbers = new List <string>()
                    {
                        "123-122"
                    }
                }
            };
            BonusSavingsAccount ba = new BonusSavingsAccount(new List <PrivateCustomer>()
            {
                pc
            }, initalBalance);

            ba.ResetDebitCounter();

            DateTime actual = ba.LastDebit;

            Assert.AreEqual(expected, actual);
        }
        public PrivateCustomerView(PrivateCustomer model)
        {
            Mapper.CreateMap<PrivateCustomer, PrivateCustomerView>();
            Mapper.Map<PrivateCustomer, PrivateCustomerView>(model, this);

            this.created = model.created.ToString().Replace('T', ' ');
            this.updated = model.updated.ToString().Replace('T', ' ');
        }
Beispiel #11
0
        public ActionResult DeleteConfirmed(int id)
        {
            PrivateCustomer privateCustomer = db.Customers.Find(id) as PrivateCustomer;//had to add "as PrivateCustomer"

            db.Customers.Remove(privateCustomer);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Beispiel #12
0
        public PrivateCustomerView(PrivateCustomer model)
        {
            Mapper.CreateMap <PrivateCustomer, PrivateCustomerView>();
            Mapper.Map <PrivateCustomer, PrivateCustomerView>(model, this);

            this.created = model.created.ToString().Replace('T', ' ');
            this.updated = model.updated.ToString().Replace('T', ' ');
        }
        public ActionResult DeleteConfirmed(Guid id)
        {
            PrivateCustomer privateCustomer = db.PrivateCustomer.Find(id);

            db.PrivateCustomer.Remove(privateCustomer);
            db.SaveChanges();
            return(RedirectToAction("Index", "Customers"));
        }
        public PrivateCustomer getModel()
        {
            var model = new PrivateCustomer();

            Mapper.CreateMap<PrivateCustomerView, PrivateCustomer>().ForSourceMember(x => x.type, y => y.Ignore());
            Mapper.Map<PrivateCustomerView, PrivateCustomer>(this, model);

            return model;
        }
Beispiel #15
0
        public IActionResult NewPrivate(PrivateCustomer customer)
        {
            //Get bank object from file, add customer to bank object, then save!
            var bank = Utility.Utility.GetBankData(_env.WebRootPath);

            bank.PrivateCustomers.Add(customer);
            Utility.Utility.SaveBankData(_env.WebRootPath, bank);
            return(RedirectToAction("Index", "Home", new { message = Message.CreatePrivateCustomerSuccess }));
        }
Beispiel #16
0
        public PrivateCustomer getModel()
        {
            var model = new PrivateCustomer();

            Mapper.CreateMap <PrivateCustomerView, PrivateCustomer>().ForSourceMember(x => x.type, y => y.Ignore());
            Mapper.Map <PrivateCustomerView, PrivateCustomer>(this, model);

            return(model);
        }
Beispiel #17
0
        public async Task <PrivateCustomer> Create(PrivateCustomer privateCustomer)
        {
            using (var context = _contextFactory.CreateDbContext())
            {
                context.PrivateCustomers.Add(privateCustomer);
                await context.SaveChangesAsync();

                return(privateCustomer);
            }
        }
Beispiel #18
0
 public ActionResult Edit([Bind(Include = "CustomerID,Firstname,Lastname,MailAdress,StreetAdress,City,ZipCode,MobileNumber")] PrivateCustomer privateCustomer)
 {
     if (ModelState.IsValid)
     {
         db.Entry(privateCustomer).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(privateCustomer));
 }
Beispiel #19
0
        public ActionResult Create([Bind(Include = "CustomerID,Firstname,Lastname,MailAdress,StreetAdress,City,ZipCode,MobileNumber")] PrivateCustomer privateCustomer)
        {
            if (ModelState.IsValid)
            {
                db.Customers.Add(privateCustomer);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(privateCustomer));
        }
Beispiel #20
0
        public async Task <ActionResult> PutPrivateCustomer(int id, [FromBody] PrivateCustomer privateCustomer)
        {
            if (id != privateCustomer.PrivateCustomerID)
            {
                return(BadRequest());
            }

            var statuscode = await _privateCustomerRepository.Update(privateCustomer);

            return(StatusCode(statuscode));
        }
Beispiel #21
0
        public async Task <IActionResult> CreatePrivateCustomer([Bind("FirstName, LastName, CPR, LandlinePhoneNumber, MobilePhoneNumber, Addresse, PostalCode, City, Email, PrimaryDelpinDepartment")] PrivateCustomer privateCustomer)
        {
            if (ModelState.IsValid)
            {
                string endPointGetCompanyCustomer = "PrivateCustomer";
                string baseUrl = configuration.GetValue <string>("Urls:CustomerBaseUrl");

                await PrivateCustomerHandler.PostHttp(privateCustomer, baseUrl, endPointGetCompanyCustomer);

                return(RedirectToAction("GetPrivateCustomers"));
            }
            return(View());
        }
Beispiel #22
0
        public Customer GetCustomer(string type)
        {
            Customer c = null;

            switch (type)
            {
            case "Privatperson": c = new PrivateCustomer(); break;

            case "Firma": c = new Company(); break;
            }

            return(c);
        }
Beispiel #23
0
        // GET: PrivateCustomer/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PrivateCustomer privateCustomer = db.Customers.Find(id) as PrivateCustomer;//had to add "as PrivateCustomer"

            if (privateCustomer == null)
            {
                return(HttpNotFound());
            }
            return(View(privateCustomer));
        }
Beispiel #24
0
 public IActionResult Private(string id)
 {
     try
     {
         if (!ModelState.IsValid)
         {
             return(StatusCode(StatusCodes.Status500InternalServerError, new Response
             {
                 Status = "Error",
                 Messages = new Message[] {
                     new Message {
                         Lang_id = 1,
                         MessageLang = "Model state isn't valid!"
                     },
                     new Message {
                         Lang_id = 2,
                         MessageLang = "Состояние модели недействительно!"
                     },
                     new Message {
                         Lang_id = 3,
                         MessageLang = "Model vəziyyəti etibarsızdır!"
                     }
                 }
             }));
         }
         AppUser appUser = _userDbContext.Users.Where(u => u.Id == id)
                           .Include(u => u.City).ThenInclude(c => c.CityNameTranslates)
                           .Include(u => u.Balance)
                           .Include(u => u.Office).ThenInclude(o => o.OfficeNameTranlates).FirstOrDefault();
         if (appUser == null)
         {
             return(StatusCode(StatusCodes.Status404NotFound));
         }
         PrivateCustomer customer = _privateContext.GetWithCamexId(appUser.CamexId);
         if (customer == null)
         {
             return(StatusCode(StatusCodes.Status404NotFound));
         }
         return(Ok(
                    new PrivateUserAdmin
         {
             User = appUser,
             PrivateCustomer = customer
         }));
     }
     catch (Exception e)
     {
         return(StatusCode(StatusCodes.Status500InternalServerError, e.Message));
     }
 }
        // GET: PrivateCustomers/Edit/5
        public ActionResult Edit(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PrivateCustomer privateCustomer = db.PrivateCustomer.Find(id);

            if (privateCustomer == null)
            {
                return(HttpNotFound());
            }
            return(View(privateCustomer));
        }
Beispiel #26
0
        private void CreatePrivateCustomer(PrivateCustomer privateCustomer)
        {
            string query = Utility.ReadSQLQueryFromFile("CreatePrivateCustomer.txt");

            SQLQuery sQLQuery = new SQLQuery(query);

            sQLQuery.AddParameter("@customerID", privateCustomer.customerID.ToString(), SqlDbType.Int);

            SQLQueryResult sQLQueryResult = SQLDatabaseConnector.QueryDatabase(sQLQuery);

            if (sQLQueryResult.code != 0)
            {
                throw new CantCreateCustomer("", sQLQueryResult.exception);
            }
        }
Beispiel #27
0
        public IActionResult NewPrivate()
        {
            //empty form
            PrivateCustomer customer = new PrivateCustomer()
            {
                CustomerID         = Guid.NewGuid(), //just generate new guid at this time!
                ContactInformation = new Contact()
            };
            List <string> phoneNumbers = new List <string>();

            for (int i = 0; i < 3; i++)
            {
                phoneNumbers.Add(string.Empty);
            }
            customer.ContactInformation.PhoneNumbers = phoneNumbers;
            return(View(customer));
        }
Beispiel #28
0
        public async Task <int> Update(PrivateCustomer privateCustomer)
        {
            using (var context = _contextFactory.CreateDbContext())
            {
                context.Entry(privateCustomer).State = EntityState.Modified;

                try
                {
                    await context.SaveChangesAsync();

                    return(204);
                }
                catch (DbUpdateConcurrencyException)
                {
                    return(409);
                }
            }
        }
        public async Task <IActionResult> Get()
        {
            try
            {
                AppUser user = _user.Users
                               .Where(u => u.UserName == User.Identity.Name)
                               .Include(u => u.Balance)
                               .Include(u => u.Receipts).FirstOrDefault();
                var roles = await _userManager.GetRolesAsync(user);

                foreach (var role in roles)
                {
                    if (role == Helper.Roles.PrivateCustomer.ToString())
                    {
                        PrivateCustomer customer = _privateContext.GetWithCamexId(user.CamexId);
                        UserVm          userVm   = new UserVm
                        {
                            User             = user,
                            PrivateCustomer  = customer,
                            BusinessCustomer = null
                        };
                        return(Ok(userVm));
                    }
                    else if (role == Helper.Roles.BusinessCustomer.ToString())
                    {
                        BusinessCustomer customer = _businesContext.GetWithCamexId(user.CamexId);
                        UserVm           userVm   = new UserVm
                        {
                            User             = user,
                            PrivateCustomer  = null,
                            BusinessCustomer = customer
                        };
                        return(Ok(userVm));
                    }
                }


                return(NotFound());
            }
            catch (Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, e.Message));
            }
        }
Beispiel #30
0
        public Customer CreateCustomer(Customer customer)
        {
            SqlConnection con = new SqlConnection(Utility.connectionString);

            string query = Utility.ReadSQLQueryFromFile("CreateCustomer.txt");

            SQLQuery sQLQuery = new SQLQuery(query);

            sQLQuery.AddParameter("@phone", customer.phone.ToString(), SqlDbType.VarChar);
            sQLQuery.AddParameter("@name", customer.name.ToString(), SqlDbType.VarChar);
            sQLQuery.AddParameter("@address", customer.address.ToString(), SqlDbType.VarChar);
            sQLQuery.AddParameter("@email", customer.email.ToString(), SqlDbType.VarChar);

            SQLQueryResult sQLQueryResult = SQLDatabaseConnector.QueryDatabase(sQLQuery);

            if (sQLQueryResult.code != 0)
            {
                throw new CantCreateCustomer("", sQLQueryResult.exception);
            }

            int customerID = (int)sQLQueryResult.dataTable.Rows[0]["CustomerID"];


            customer.UpdateID(customerID);

            if (customer.GetType() == typeof(BusinessCustomer))

            {
                //der laves en BusinessCustomer som castes til customer
                BusinessCustomer businessCustomer = (BusinessCustomer)customer;
                CreateBusinessCustomer(businessCustomer);
            }

            if (customer.GetType() == typeof(PrivateCustomer))

            {
                //der laves en PrivateCustomer som castes til customer
                PrivateCustomer privateCustomer = (PrivateCustomer)customer;
                CreatePrivateCustomer(privateCustomer);
            }
            return(customer);
        }
        public ActionResult DeleteConfirmed(Guid id)
        {
            Customers customers = db.Customers.Find(id);

            if (customers.CompanyID != null)
            {
                Company company = db.Company.Find(customers.CompanyID);
                db.Company.Remove(company);
            }

            if (customers.PrivateCustomerID != null)
            {
                PrivateCustomer privateCustomer = db.PrivateCustomer.Find(customers.PrivateCustomerID);
                db.PrivateCustomer.Remove(privateCustomer);
            }

            db.Customers.Remove(customers);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Beispiel #32
0
        public IActionResult GetUser()
        {
            string        UserName = User.Identity.Name;
            List <string> Roles    = User.FindAll(ClaimTypes.Role).Select(c => c.Value.ToString()).ToList();
            AppUser       user     = _userDbContext.Users
                                     .Where(u => u.UserName == UserName)
                                     .Include(u => u.Balance)
                                     .FirstOrDefault();

            foreach (string role in Roles)
            {
                if (role == Helper.Roles.BusinessCustomer.ToString())
                {
                    BusinessCustomer businessCustomer = _businessContext.GetWithCamexId(user.CamexId);
                    UserNavVM        userNav          = new UserNavVM
                    {
                        CompanyName = businessCustomer.CompanyName,
                        UserBalance = user.Balance.UserBalance,
                        Roles       = Roles,
                        Image       = user.Image
                    };

                    return(Ok(userNav));
                }
                else if (role == Helper.Roles.PrivateCustomer.ToString())
                {
                    PrivateCustomer privateCustomer = _privateContext.GetWithCamexId(user.CamexId);
                    UserNavVM       userNav         = new UserNavVM
                    {
                        Name        = privateCustomer.Name,
                        Surname     = privateCustomer.Surname,
                        UserBalance = user.Balance.UserBalance,
                        Roles       = Roles,
                        Image       = user.Image
                    };

                    return(Ok(userNav));
                }
            }
            return(NotFound());
        }
 public PrivateCustomer createPrivateCustomer(PrivateCustomer model)
 {
     db.privateCustomers.Add(model);
     db.SaveChanges();
     return model;
 }