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); }
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); }