예제 #1
0
        public async Task <(bool, string)> CreateClient(Domain.ApplicationUser user, string url)
        {
            var success = true;
            var msg     = string.Empty;

            using (TransactionScope tx = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                //  Create Domain in DB.
                var newUser = await accesscontrol.CreateUser(user, url, new[] { Core.LogicConstants.Roles.Client });

                var client = new Domain.Client
                {
                    ApplicationUser = newUser,
                    Id = newUser.Id
                };
                clientParticipantRepo.Insert(client);

                await clientParticipantRepo.SaveAsync();

                //  Create Blockchain data.
                (success, msg) = await bcClientParticipants.Create(ClientDomainToApiModel(client));

                if (success)
                {
                    tx.Complete();
                }
            }
            return(success, msg);
        }
        public async Task <Guid> Handle(CreateClientCommandRequest request, CancellationToken cancellationToken)
        {
            var client = new Domain.Client(
                request.FirstName,
                request.LastName,
                request.PhoneNumber,
                request.Email,
                request.DocumentNumber,
                request.BirthDate,
                new Domain.Address(
                    request.Address.PostalCode,
                    request.Address.AddressLine,
                    request.Address.Number,
                    request.Address.Complement,
                    request.Address.Neighborhood,
                    request.Address.City,
                    request.Address.State));

            if (await _context.Clients.AnyAsync(x => x.DocumentNumber == client.DocumentNumber))
            {
                throw new BadRequestException("Document already exists");
            }

            await _context.Clients.AddAsync(client, cancellationToken);

            await _context.SaveChangesAsync(cancellationToken);

            return(client.Id);
        }
예제 #3
0
        private bool KeepContract(Domain.Car car, Domain.Client client)
        {
            Domain.Contract contract = Domain.Contract.CreateContract(car, client);
            contract.CarId    = car.Id;
            contract.ClientId = client.Id;
            Console.WriteLine("Please enter the contract type is Debit or Credit ?");
            string type = Console.ReadLine();

            try
            {
                if (type.ToLower() == ContractType.Debit.ToString().ToLower())
                {
                    contract.TotalCost    = car.Price;
                    contract.Type         = ContractType.Debit;
                    contract.FirstPayment = contract.TotalCost;
                }
                else
                {
                    Console.WriteLine("How much months will contract keep?");
                    short months = short.Parse(Console.ReadLine());
                    contract.Months        = months;
                    contract.FirstPayment  = car.Price / contract.Months.Value;
                    contract.Type          = ContractType.Credit;
                    contract.MonthsPayment = contract.FirstPayment;
                    contract.TotalCost     = car.Price;
                }
                _contractRepository.AddContract(contract);
                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
예제 #4
0
 public ClientParticipantListViewModel ClientDomainToVM(Domain.Client client)
 {
     return(new ClientParticipantListViewModel
     {
         ID = client.Id,
         Name = client.ApplicationUser.UserName
     });
 }
예제 #5
0
        public void SetUp()
        {
            base.SetUp();

            var client = new Domain.Client("Robert", SystemDate.Now.AddYears(-39));

            RunInUnitOfWork(() => Clients.Put(client));

            _robertId = client.Id;
        }
예제 #6
0
        public void SetUp()
        {
            base.SetUp();

            var client = new Domain.Client("Robert", SystemDate.Now.AddYears(-39));

            RunInUnitOfWork(() => Clients.Put(client));

            _robertId = client.Id;
        }
예제 #7
0
 private UserLoginDataViewModel ClientToLoginVM(Domain.Client client)
 {
     return(new UserLoginDataViewModel
     {
         ID = client.Id,
         Active = client.ApplicationUser.Active,
         Roles = client.ApplicationUser.Roles.Select(r => r.Role.Name).ToList(),
         Forename = client.ApplicationUser.Forename,
         Surname = client.ApplicationUser.Surname,
         Email = client.ApplicationUser.Email,
         CanEdit = !IsClientUser
     });
 }
예제 #8
0
        public Domain.Client GetClient(int clientId)
        {
            Domain.Client client = null;
            var           query  = from item in this.m_DataContext.GetTable <Domain.Client>()
                                   where item.ClientId == clientId
                                   select item;

            try
            {
                client = query.Single <Domain.Client>();
            }
            catch {}
            return(client);
        }
예제 #9
0
 private void charge()
 {
     this.clientBusiness = new ClientBussines();
     this.clients        = clientBusiness.clients();
     idClient            = Convert.ToString(Request.QueryString["id"]);
     foreach (Domain.Client game in this.clients)
     {
         if (this.idClient.Equals(game.IdClient))
         {
             tbNameClient.Text = game.Name;
             tbUserClient.Text = game.Email;
             tbPassClient.Text = game.Password;
             tbBorn.Text       = "" + game.Birthday;
             userClient        = game;
         }
     }
 }
예제 #10
0
        public override CommandResult Execute()
        {
            Console.WriteLine("Please enter number of selling car");
            string number = Console.ReadLine();

            Console.WriteLine("Please enter name of cleint");
            string name = Console.ReadLine();

            Console.WriteLine("Please enter pasportID of cleint");
            string pasportId      = Console.ReadLine();
            var    car            = _carRepository.FindCar(number);
            string message        = "";
            bool   isKeptContract = true;

            if (car == null)
            {
                message = $"There is not such car with number of {number}";
            }
            else
            {
                Domain.Client client = _clientRepository.FindClient(pasportId);

                if (client == null)
                {
                    client     = Domain.Client.CreateClient(name, pasportId);
                    car.Client = client;
                    _clientRepository.AddClient(client);
                }
                else
                {
                    car.Client = client;
                }

                _carRepository.SellCar(car, client);

                isKeptContract = KeepContract(car, client);
                message        = $"The number of {number} car was sold succesfully";
            }
            if (!isKeptContract)
            {
                message = "There are something wrong plesae try again";
            }

            return(new CommandResult(isKeptContract, message));
        }
예제 #11
0
        public override CommandResult Execute()
        {
            Console.WriteLine("Plesae enter client full name");
            string clientName = Console.ReadLine();

            Console.WriteLine("Please enter client pasport id");
            string pasportId = Console.ReadLine();

            Domain.Client client  = Domain.Client.CreateClient(clientName, pasportId);
            bool          success = _clientRepository.AddClient(client);
            string        message = "Client added successfuly";

            if (!success)
            {
                message = $"Client with this info {clientName} {pasportId} already exists";
            }

            return(new CommandResult(success, message));
        }
예제 #12
0
        public ClientModule(IAggregateRootRepository repository,
                            IIdGenerator idGenerator)
            :base("/write/client")
        {
            this.RequiresAuthentication();

            Post["/create"] = parameters =>
            {
                var model = this.Bind<EditableClient>();

                var client = new Domain.Client(idGenerator.NextGuid(), model.Name);

                repository.Save(client);

                return Json(new
                {
                    Client = new Client(client)
                });
            };

            Post["/update/{id:guid}"] = parameters =>
            {
                var model = this.Bind<EditableClient>();

                var client = repository.GetById<Domain.Client>((Guid)parameters.id);

                if (client != null)
                {
                    client.ChangeDetails(model.Name);

                    repository.Save(client);

                    return Json(new
                    {
                        Client = new Client(client)
                    });
                }

                return null;
            };
        }
예제 #13
0
        public override CommandResult Execute()
        {
            Console.WriteLine("Please enter client pasport id");
            string pasportId = Console.ReadLine();

            Domain.Client client  = _clientRepository.FindClient(pasportId);
            bool          success = true;
            string        message = "";

            if (client == null)
            {
                message = $"Client with this info {pasportId} not found";
                success = false;
            }
            message = $"Here are client's info \nName: {client.Name}  PasportId: {client.PasportId}";
            foreach (var car in client.Cars)
            {
                message += $"\nNumber of car: {car.Number} Price: {car.Price}";
            }


            return(new CommandResult(success, message));
        }
예제 #14
0
 // PUT api/values/5
 public void Put(Guid id, [FromBody] ClientDto clientDto, [ModelBinder(typeof(EntityModelBinder))] Domain.Client client = null)
 {
 }
예제 #15
0
 // POST api/clients
 public void Post([FromBody] ClientDto clientDto)
 {
     var client = new Domain.Client(clientDto.Name, clientDto.BirthDate);
 }
예제 #16
0
 public ClientService(SicDbContext dbContext)
 {
     _dbContext = dbContext;
     _client    = new Domain.Client(dbContext);
 }
예제 #17
0
 // POST api/clients
 public void Post([FromBody]ClientDto clientDto)
 {
     var client = new Domain.Client(clientDto.Name, clientDto.BirthDate);
 }