コード例 #1
0
        public async Task Create()
        {
            CreateBonusCardApiModel createBonusCardApiModel = new CreateBonusCardApiModel();

            createBonusCardApiModel.FirstName   = _firstName;
            createBonusCardApiModel.LastName    = _lastName;
            createBonusCardApiModel.PhoneNumber = _phoneNumber;

            try
            {
                //ErrorMessage = "";
                FullInfoBonusCardModel fullinfo = await _apiHelper.CreateBonusCard(createBonusCardApiModel);

                await _events.PublishOnUIThreadAsync(new FindCardEvent(fullinfo));
            }
            catch (Exception)
            {
                //  ErrorMessage = ex.Message;
            }
        }
コード例 #2
0
        public async Task <FullInfoBonusCardModel> CreateBonusCard(CreateBonusCardApiModel createBonusCard)
        {
            using (HttpResponseMessage response = await apiClient.PostAsJsonAsync(ApiRoutes.CreateCard, createBonusCard).ConfigureAwait(false))
            {
                var result = await response.Content.ReadAsAsync <FullInfoBonusCard>();

                if (response.IsSuccessStatusCode && result.ErrorMessage == null)
                {
                    _fullInfoBonusCardModel.CardNumber     = result.CardNumber;
                    _fullInfoBonusCardModel.Balance        = result.Balance;
                    _fullInfoBonusCardModel.ExpirationDate = result.ExpirationDate;
                    _fullInfoBonusCardModel.FirstName      = result.FirstName;
                    _fullInfoBonusCardModel.LastName       = result.LastName;
                    _fullInfoBonusCardModel.PhoneNumber    = result.PhoneNumber;
                    return(_fullInfoBonusCardModel);
                }
                else
                {
                    throw new Exception(response.ReasonPhrase);
                }
            }
        }
コード例 #3
0
        public async Task <FullInfoBonusCard> CreateBonusCard([FromBody] CreateBonusCardApiModel createCard)
        {
            // The message when we fail to login
            var invalidErrorMessage = "Please provide all required details to register for an account";

            // The error response for a failed login
            var errorResponse = new FullInfoBonusCard
            {
                // Set error message
                ErrorMessage = invalidErrorMessage
            };

            // If we have no credentials...
            if (createCard == null)
            {
                return(errorResponse);
            }

            // Check if we have both a first and last name
            var firstOrLastNameMissing = string.IsNullOrEmpty(createCard?.FirstName) || string.IsNullOrEmpty(createCard?.LastName);

            // Check if enough details are provided for creating
            var notEnoughSearchDetails =
                // First and last name
                firstOrLastNameMissing &&
                // Phone number
                string.IsNullOrEmpty(createCard?.PhoneNumber);

            // If we don't have enough details
            if (notEnoughSearchDetails)
            {
                return new FullInfoBonusCard
                       {
                           ErrorMessage = "Please provide a first and last name or phone number"
                       }
            }
            ;


            // Create the desired client from the given details
            var newClient = new Client
            {
                // ClientId = (Context.Clients.Max(e => e.ClientId) + 1),
                FirstName   = createCard.FirstName,
                LastName    = createCard.LastName,
                PhoneNumber = createCard.PhoneNumber
            };

            DateTime initialDate    = DateTime.Today.AddYears(1);
            decimal  initialBalance = 0;

            Random generator = new Random();
            string initialCardNumber;

            do
            {
                var randomNum = generator.Next(1, 1000000);

                initialCardNumber = Math.Abs((305914 * (randomNum - 100000) + 151647) % 999983).ToString();
            } while (Context.Clients.Any(x => x.BonusCard.CardNumber == initialCardNumber));

            Context.BonusCards.Add(new BonusCard
            {
                CardNumber     = initialCardNumber,
                Balance        = initialBalance,
                ExpirationDate = initialDate,
                Client         = newClient
            });

            await Context.SaveChangesAsync();

            return(new FullInfoBonusCard()
            {
                CardNumber = initialCardNumber,
                Balance = initialBalance,
                ExpirationDate = initialDate,
                FirstName = createCard.FirstName,
                LastName = createCard.LastName,
                PhoneNumber = createCard.PhoneNumber
            });
        }