/// <summary>
        /// Creates a new client account.
        /// </summary>
        /// <param name="parameters">Client account creation parameters. Contains all the client account information.</param>
        /// <returns>Client account model.</returns>
        public ClientAccountModel Add(ClientAccountCreationParams parameters)
        {
            this.ValidateParameters(parameters);

            var dbClientAccount = new ClientAccount
            {
                Email    = parameters.Email,
                FullName = parameters.FullName,
                Phone    = parameters.Phone,
            };

            this.dbContext.ClientAccounts.Add(dbClientAccount);
            this.dbContext.SaveChanges();

            return(dbClientAccount.ToModel());
        }
Example #2
0
        public void AddClientAccountTest()
        {
            using (var context = new CarRentalDbContext(this.dbContextOptions))
            {
                var service = new ClientAccountService(context);
                ClientAccountCreationParams parameters = new ClientAccountCreationParams
                {
                    Email    = "*****@*****.**",
                    FullName = "Add Client",
                    Phone    = "+12345",
                };

                var clientAccountModel = service.Add(parameters);

                Assert.AreEqual(parameters.Email, clientAccountModel.Email);
                Assert.AreEqual(parameters.Phone, clientAccountModel.Phone);
                Assert.AreEqual(parameters.FullName, clientAccountModel.FullName);
                Assert.IsTrue(clientAccountModel.ClientId > 0);

                try
                {
                    service.Add(null);
                    Assert.Fail();
                }
                catch (InvalidParameterException)
                {
                }
                catch
                {
                    Assert.Fail();
                }

                try
                {
                    service.Add(new ClientAccountCreationParams());
                    Assert.Fail();
                }
                catch (InvalidParameterException)
                {
                }
                catch
                {
                    Assert.Fail();
                }
            }
        }