Beispiel #1
0
        public async Task <ActionResult <TelegroundResponse> > Branch48en548([FromBody] TelegroundRequest request)
        {
            //get language
            LanguagesEnum language = LanguagesEnum.Yiddish;

            try
            {
                if (request.Variables[TGCustomVariables.LANGUAGE] == "EN")
                {
                    language = LanguagesEnum.English;
                }
            }
            catch (Exception ex)
            {
                _logger.LogInformation($"variable {TGCustomVariables.LANGUAGE} not found.");
            }

            int?goTo = null;

            string matzohType = null;

            //example
            matzohType = MatzahTypeInputs.CHABIRA_REG;

            decimal matzohTypeId = MatzosHelper.GetIdForMatzahTypeInput(matzohType);

            //get item info
            MLItemView itemInfo = await this._ad_repository.GetMatzahTypeItemInfoAsync(matzohTypeId);

            var response = new TelegroundResponse();

            response.Variables = new Dictionary <string, string>(request.Variables);

            //check if type exists
            if (itemInfo == null)
            {
                _logger.LogInformation("MatzahItemType specified was not found.");
                goTo = (language == LanguagesEnum.Yiddish) ? 1000 : 1060;
            }
            else
            {
                //check if in stock
                if (itemInfo.Quantity < 1)
                {
                    goTo = (language == LanguagesEnum.Yiddish) ? 1000 : 1060;
                }
                else
                {
                    response.Variables[TGCustomVariables.MATZAHTYPEID]       = matzohTypeId.ToString();
                    response.Variables[TGCustomVariables.MATZAHTYPEQUANTITY] = itemInfo.Quantity?.ToString();
                    response.Variables[TGCustomVariables.MATZAHTYPEPRICE]    = itemInfo.Price.ToString();

                    goTo = (language == LanguagesEnum.Yiddish) ? 50 : 518;
                }
            }

            response.Goto = goTo;

            return(response);
        }
Beispiel #2
0
        public IActionResult DoSomething()   //<IEnumerable<WeatherForecast>
        // https://docs.microsoft.com/en-us/aspnet/core/web-api/action-return-types?view=aspnetcore-3.1
        {
            var response = new TelegroundResponse
            {
                Goto = 5
                       //, todo
            };

            return(Ok(response));


            //var rng = new Random();
            //return Ok(Enumerable.Range(1, 5).Select(index => new WeatherForecast
            //{
            //    Date = DateTime.Now.AddDays(index),
            //    TemperatureC = rng.Next(-20, 55)
            //    //Summary = Summaries[rng.Next(Summaries.Length)]
            //})
            //.ToArray());
        }
Beispiel #3
0
        public async Task <ActionResult <TelegroundResponse> > InquireCustomerStatus([FromBody] TelegroundRequest request)
        {
            //get language
            LanguagesEnum language   = LanguagesEnum.Yiddish;
            var           branchData = request.BranchData.Last();

            if (branchData.Branch == 550)
            {
                language = LanguagesEnum.English;
            }

            //get variable $homephone
            string phoneNumber = null; // request.Variables.TryGetValue("$homephone",out phoneNumber);

            int?goTo = null;

            if ((!request.Variables.TryGetValue(TGCustomVariables.PHONENUMBER, out phoneNumber)) || (string.IsNullOrEmpty(phoneNumber)))
            {
                return(this.BadRequest("phone number variable not exists"));
            }

            //validate usa-canada phone number format
            string validatedPhoneNum;

            if (!validatePhoneNumber(phoneNumber, out validatedPhoneNum))
            {
                return(BadRequest("phone number invalid format"));
            }

            var receiver = await _ad_repository.GetReceiversByPhone(phoneNumber).FirstOrDefaultAsync();

            if (receiver != null)
            {
                //if the Receiver is in the db it will check if they have already ordered
                bool hasOrders = await this._ad_repository.ReceiverHasOrdersAsync(receiver.ReceiverId);

                if (hasOrders)
                {
                    switch (language)
                    {
                    case LanguagesEnum.English:
                        goTo = 1053;
                        break;

                    case LanguagesEnum.Yiddish:
                        goTo = 1043;
                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    switch (language)
                    {
                    case LanguagesEnum.English:
                        goTo = 515;
                        break;

                    case LanguagesEnum.Yiddish:
                        goTo = 44;
                        break;

                    default:
                        break;
                    }
                }
            }
            else
            {
                //Not registered yet! so lets register him!
                _logger.LogInformation("Starting new custumer registration.");

                //try to get name
                //request.cname not implemented yet

                receiver = await _ad_repository.AddNewReceiverAsync("BLANK", "BLANK", validatedPhoneNum);

                switch (language)
                {
                case LanguagesEnum.English:
                    goTo = 515;
                    break;

                case LanguagesEnum.Yiddish:
                    goTo = 44;
                    break;

                default:
                    break;
                }
            }

            //We should add custom vars to response with first and last name!

            string firstName = receiver.FirstName;
            string lastName  = receiver.LastName;

            var response = new TelegroundResponse
            {
                Goto = goTo
            };


            response.Variables = (request.Variables != null) ? (new Dictionary <string, string>(request.Variables)) : new Dictionary <string, string>();
            response.Variables[TGCustomVariables.LANGUAGE]   = (language == LanguagesEnum.English) ? "EN":"YI";
            response.Variables[TGCustomVariables.FIRSTNAME]  = firstName;
            response.Variables[TGCustomVariables.LASTNAME]   = lastName;
            response.Variables[TGCustomVariables.RECEIVERID] = receiver.ReceiverId.ToString();
            return(response);
        }