public async Task <IActionResult> GetMessages([FromQuery] string boxId) { _logger.LogInformation("Getting message for box {BoxId}", boxId); var messages = await _textMediaServiceProvider.GetItems(boxId); LogMetric("Messages returned", messages.Count(), boxId); return(Ok(messages)); }
public async Task <IActionResult> GetImages([FromQuery] string boxId) { _logger.LogInformation("Getting images for box {BoxId}", boxId); var images = await _imageMediaServiceProvider.GetItems(boxId); LogMetric("Images returned", images.Count(), boxId); return(Ok(images)); }
private async Task <WhatsappResponse> ProcessSystemMessage(UserCommand userCommand, UserInfo userInfo, WhatsappMessage whatsappMessage) { string responseMessage; object[] pars = { userInfo.Name }; bool accepted = false; switch (userCommand) { case UserCommand.Statistics: _logger.LogWarning("The user {phoneNumber} asked for statitics of box {boxId}", userInfo.PhoneNumber, userInfo.BoxInfo?.BoxId); if (!String.IsNullOrEmpty(userInfo.BoxInfo?.BoxId)) { var box = await _boxStore.Get(userInfo.BoxInfo.BoxId); if (box.AdminUserPhone == userInfo.PhoneNumber) { var lastConnectedDateTime = await _boxStore.GetLastConnectedDateTime(userInfo.BoxInfo.BoxId); pars = new object[] { userInfo.Name, box.Status, lastConnectedDateTime.ToString("d MMM yyyy HH:mm:ss"), _userStore.GetUsersFromTenant(userInfo.BoxInfo.BoxId).Result.Count(), _messageServiceProvider.GetItems(userInfo.BoxInfo.BoxId).Result.Count(), _imageServiceProvider.GetItems(userInfo.BoxInfo.BoxId).Result.Count() }; StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("{0}, dit zijn de statistics van uw box:"); stringBuilder.AppendLine("Box status: {1}"); stringBuilder.AppendLine("Laatst geraadpleegde datum: {2}"); stringBuilder.AppendLine("Aantal gekoppelde gebruikers: {3}"); stringBuilder.AppendLine("Aantal berichten: {4}"); stringBuilder.AppendLine("Aantal afbeeldingen: {5}"); responseMessage = stringBuilder.ToString(); } else { pars = new object[] { userInfo.Name }; responseMessage = "Alleen de Admin van de box kan statistics opvragen {0}."; } } else { pars = new object[] { userInfo.Name }; responseMessage = "U bent nog niet gekoppeld aan een box, {0}"; } break; case UserCommand.BoxStatus: _logger.LogWarning("The user {phoneNumber} asked for status of box {boxId}", userInfo.PhoneNumber, userInfo.BoxInfo?.BoxId); if (!String.IsNullOrEmpty(userInfo.BoxInfo?.BoxId)) { var lastConnectedDateTime = await _boxStore.GetLastConnectedDateTime(userInfo.BoxInfo.BoxId); pars = new object[] { userInfo.Name, lastConnectedDateTime.ToString("d MMM yyyy HH:mm:ss") }; responseMessage = "De box is voor het laatst geraadpleegd op {1}, {0}."; } else { pars = new object[] { userInfo.Name }; responseMessage = "U bent nog niet gekoppeld aan een box, {0}"; } break; case UserCommand.ClearMedia: _logger.LogWarning("The user {phoneNumber} asked for clearing all media of box {boxId}", userInfo.PhoneNumber, userInfo.BoxInfo?.BoxId); if (!String.IsNullOrEmpty(userInfo.BoxInfo?.BoxId)) { var box = await _boxStore.Get(userInfo.BoxInfo.BoxId); if (box.AdminUserPhone == userInfo.PhoneNumber) { await _messageServiceProvider.DeleteContent(userInfo); await _imageServiceProvider.DeleteContent(userInfo); pars = new object[] { userInfo.Name }; responseMessage = "Alle content van de box is verwijderd {0}."; } else { pars = new object[] { userInfo.Name }; responseMessage = "Alleen de Admin van de box kan alle content verwijderen {0}."; } } else { pars = new object[] { userInfo.Name }; responseMessage = "U bent nog niet gekoppeld aan een box, {0}"; } break; case UserCommand.LeaveBox: userInfo.ConversationState = ConversationState.AwaitingActivation; userInfo.BoxInfo = null; pars = new object[] { userInfo.Name }; await _userStore.UpdateUser(userInfo); _logger.LogWarning("The user {phoneNumber} got discoupled from the box {boxId}", userInfo.PhoneNumber, userInfo.BoxInfo?.BoxId); responseMessage = "We hebben u ontkoppeld van de box, {0}"; accepted = true; break; case UserCommand.ViewBox: _logger.LogWarning("The user {phoneNumber} asked a view link for the box {boxId}", userInfo.PhoneNumber, userInfo.BoxInfo?.BoxId); if (!string.IsNullOrEmpty(userInfo.BoxInfo?.BoxId)) { pars = new object[] { $"https://coditfamilyview.azurewebsites.net?boxId={userInfo.BoxInfo.BoxId}" }; responseMessage = "U kan hier de box zien: {0}"; accepted = true; } else { pars = new object[] { userInfo.Name }; responseMessage = "U bent nog niet gekoppeld aan een box, {0}"; } break; default: responseMessage = $"Het spijt ons, maar we hebben nog geen ondersteuning voor het commando {whatsappMessage.MessageContent}"; break; } return(new WhatsappResponse { ResponseMessage = (await _messageTranslater.Translate(userInfo.GetLanguage(), responseMessage, pars)), Accepted = accepted }); }