public async Task <Document> AddNote([FromBody] Note value) { value.Id = Guid.NewGuid().ToString(); value.Date = DateTime.Now; return(await repository.CreateItemAsync(value)); }
private async Task <Activity> HandleSystemMessage(Activity message) { if (message.Type == ActivityTypes.DeleteUserData) { // Implement user deletion here // If we handle user deletion, return a real message } else if (message.Type == ActivityTypes.ConversationUpdate) { // Handle conversation state changes, like members being added and removed // Use Activity.MembersAdded and Activity.MembersRemoved and Activity.Action for info // Not available in all channels if (message.MembersAdded.Any(m => m.Id.Contains(message.Recipient.Id))) { try { var connectorClient = new ConnectorClient(new Uri(message.ServiceUrl)); var channelData = message.GetChannelData <TeamsChannelData>(); var TeamorConversationId = channelData.Team != null ? channelData.Team.Id : message.Conversation.Id; if (channelData.Team == null) { await AddtoDatabase(message, TeamorConversationId, message.From.Id); //await Conversation.SendAsync(message, () => new EchoBot()); ThumbnailCard card = EchoBot.GetWelcomeMessage(); var reply = message.CreateReply(); reply.TextFormat = TextFormatTypes.Xml; reply.Attachments.Add(card.ToAttachment()); await connectorClient.Conversations.ReplyToActivityAsync(reply); return(null); } var members = await connectorClient.Conversations.GetConversationMembersAsync(TeamorConversationId); foreach (var meb in members) { await AddtoDatabase(message, TeamorConversationId, meb.Id); ThumbnailCard card = EchoBot.GetWelcomeMessage(); //ThumbnailCard card = EchoBot.GetHelpMessage(); var replyMessage = Activity.CreateMessageActivity(); var parameters = new ConversationParameters { Members = new ChannelAccount[] { new ChannelAccount(meb.Id) }, ChannelData = new TeamsChannelData { Tenant = channelData.Tenant, Notification = new NotificationInfo() { Alert = true } } }; var conversationResource = await connectorClient.Conversations.CreateConversationAsync(parameters); replyMessage.ChannelData = new TeamsChannelData() { Notification = new NotificationInfo(true) }; replyMessage.Conversation = new ConversationAccount(id: conversationResource.Id.ToString()); replyMessage.TextFormat = TextFormatTypes.Xml; replyMessage.Attachments.Add(card.ToAttachment()); await connectorClient.Conversations.SendToConversationAsync((Activity)replyMessage); } return(null); } catch (Exception ex) { return(null); } // Bot Installation // Bot is added. Let's send welcome message. //var connectorClient = new ConnectorClient(new Uri(message.ServiceUrl)); } // For Add new member for (int i = 0; i < message.MembersAdded.Count; i++) { if (message.MembersAdded[i].Id != message.Recipient.Id) { try { var connectorClient = new ConnectorClient(new Uri(message.ServiceUrl)); var userId = message.MembersAdded[i].Id; var channelData = message.GetChannelData <TeamsChannelData>(); var user = new UserDetails(); var TeamorConversationId = channelData.Team != null ? channelData.Team.Id : message.Conversation.Id; //string emailid = await GetUserEmailId(userId, message.ServiceUrl, TeamorConversationId); //user.EmaildId = emailid; user.EmaildId = await GetUserEmailId(userId, message.ServiceUrl, TeamorConversationId); user.UserId = userId; user.UserName = await GetUserName(userId, message.ServiceUrl, TeamorConversationId); var parameters = new ConversationParameters { Members = new ChannelAccount[] { new ChannelAccount(userId) }, ChannelData = new TeamsChannelData { Tenant = channelData.Tenant, Notification = new NotificationInfo() { Alert = true } } }; var conversationResource = await connectorClient.Conversations.CreateConversationAsync(parameters); var replyMessage = Activity.CreateMessageActivity(); replyMessage.ChannelData = new TeamsChannelData() { Notification = new NotificationInfo(true) }; replyMessage.Conversation = new ConversationAccount(id: conversationResource.Id.ToString()); var name = await GetUserName(userId, message.ServiceUrl, TeamorConversationId); if (name != null) { name = name.Split(' ').First(); } user.Type = Helper.Constants.NewUser; var existinguserRecord = await DocumentDBRepository.GetItemsAsync <UserDetails>(u => u.EmaildId == user.EmaildId && u.Type == Helper.Constants.NewUser); if (existinguserRecord.Count() == 0) { var NewUserRecord = await DocumentDBRepository.CreateItemAsync(user); } ThumbnailCard card = EchoBot.GetWelcomeMessage(); replyMessage.Attachments.Add(card.ToAttachment()); await connectorClient.Conversations.SendToConversationAsync((Activity)replyMessage); } catch (Exception ex) { Console.WriteLine(ex); } } } } else if (message.Type == ActivityTypes.ContactRelationUpdate) { // Handle add/remove from contact lists // Activity.From + Activity.Action represent what happened } else if (message.Type == ActivityTypes.Typing) { // Handle knowing tha the user is typing } else if (message.Type == ActivityTypes.Ping) { } return(null); }
public async Task Create_New_LifeLongMovie() { Movie movie = new LifeLongMovie("Reservoir Dogs"); await DocumentDBRepository <Movie> .CreateItemAsync(movie); }
/// <summary> /// Runs job /// </summary> /// <param name="state">state information</param> private async void RunJob(object state) { try { DateTime utcTimeNow = DateTime.UtcNow; utcTimeNow = utcTimeNow.AddSeconds(-utcTimeNow.Second); utcTimeNow = utcTimeNow.AddTicks(-(utcTimeNow.Ticks % TimeSpan.TicksPerSecond)); var schedules = await DocumentDBRepository.GetItemsAsync <VirtualEvent>(e => e.IsActive == true); schedules.ToList(); var currentSchedules = schedules.Where(s => s.StartTime != null && DateTime.Equals(utcTimeNow, Convert.ToDateTime(s.StartTime).AddSeconds(-Convert.ToDateTime(s.StartTime).Second).AddTicks(-(Convert.ToDateTime(s.StartTime).Ticks % TimeSpan.TicksPerSecond)))).ToList(); foreach (var currentSchedule in currentSchedules) { var currentEvent = await DocumentDBRepository.GetItemAsync <VirtualEvent>(currentSchedule.Id); var encodedChatId = currentEvent.JoinWebUrl.Split('/')[5]; var chatId = Uri.UnescapeDataString(encodedChatId); var sectionName = currentEvent.Subject + " Section "; var pageName = currentEvent.Subject + " Page " + DateTime.Now.ToShortDateString(); var notebookId = await _graph.CreateNoteBook(_configuration["GroupId"], currentEvent.Subject); var sectionId = await _graph.CreateSection(_configuration["GroupId"], notebookId, sectionName); var pageId = await _graph.CreatePage(_configuration["GroupId"], sectionId, pageName); var newNotebookSectionPage = new OneNoteInfo { ChatId = chatId, CreatedDate = DateTime.UtcNow.ToString(), NotebookName = currentEvent.Subject, NoteBookId = notebookId, SectionName = sectionName, SectionId = sectionId, PageName = pageName, PageId = pageId, EventId = currentEvent.Id }; await DocumentDBRepository.CreateItemAsync <OneNoteInfo>(newNotebookSectionPage); var callId = await _graph.PostIncidentAsync(currentEvent.ListOfParticipants, currentEvent.JoinWebUrl); if (callId != null) { var callInfo = new CallInfo() { Id = Guid.NewGuid().ToString(), CallId = callId, CreatedDate = DateTime.UtcNow.ToString(), EventId = currentSchedule.Id }; await DocumentDBRepository.CreateItemAsync(callInfo); } currentEvent.IsActive = false; await DocumentDBRepository.UpdateItemAsync(currentEvent.Id, currentEvent); } } catch (Exception e) { _logger.LogError(e.Message + ' ' + e.StackTrace); } }
public async Task Create_New_TwoDaysMovie() { Movie movie = new TwoDaysMovie("Pulp Fiction"); await DocumentDBRepository <Movie> .CreateItemAsync(movie); }
public async Task Create_New_Customer() { Customer cust = new Customer(CustomerName.Create("Fred").Value, Email.Create("*****@*****.**").Value); await DocumentDBRepository <Customer> .CreateItemAsync(cust); }
public async Task <IActionResult> Post([FromBody] EventViewModel eventViewModel) { string userPrincipleName = null; string objectId = null; string displayName = null; var idToken = Request.Headers["Authorization"].ToString()?.Split(" ")[1]; if (!string.IsNullOrEmpty(idToken)) { var handler = new JwtSecurityTokenHandler(); if (handler.ReadToken(idToken) is JwtSecurityToken tokenS) { userPrincipleName = tokenS.Claims.Where(a => a.Type.Equals("upn")).Select(b => b).FirstOrDefault() ?.Value; objectId = tokenS.Claims.Where(a => a.Type.Equals("oid")).Select(b => b).FirstOrDefault()?.Value; displayName = tokenS.Claims.Where(a => a.Type.Equals("name")).Select(b => b).FirstOrDefault()?.Value; } } try { var graphServiceClient = await _graph.GetGraphServiceClient(); var participants = await _graph.PrepareParticipants(graphServiceClient, eventViewModel.Participants); var calendarEvent = await _graph.CreateOnlineEvent(graphServiceClient, eventViewModel, participants); var betaGraphServiceClient = await _graph.GetBetaGraphServiceClient(); await _graph.InstallAppAndAddTabToCalendarEvent(betaGraphServiceClient, calendarEvent.OnlineMeeting.JoinUrl); participants.Add(new Participant() { Name = displayName, AadId = objectId, EmailId = userPrincipleName }); var virtualEvent = new VirtualEvent() { Id = Guid.NewGuid().ToString(), CreatedDate = DateTime.UtcNow.ToString(), Subject = eventViewModel.Subject, StartTime = eventViewModel.StartDate.ToString(), EndTime = eventViewModel.EndDate.ToString(), IsActive = true, JoinWebUrl = calendarEvent.OnlineMeeting.JoinUrl, ListOfParticipants = participants }; await DocumentDBRepository.CreateItemAsync(virtualEvent); return(Ok()); } catch (Exception e) { _logger.LogError(e.Message + ' ' + e.StackTrace); return(BadRequest("Something went wrong!")); } }
public static async Task Run([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest webHook, ILogger log, ExecutionContext context) { var config = new ConfigurationBuilder() .SetBasePath(context.FunctionAppDirectory) .AddEnvironmentVariables() .Build(); TranscriptionData transcriptionText; var speechAPIsubscriptionKey = config[nameof(AppSettings.SpeechAPISubscriptionKey)]; var speechAPIEndpoint = config[nameof(AppSettings.SpeechAPIEndpoint)]; var webHookPayload = await new StreamReader(webHook.Body).ReadToEndAsync(); var completedTranscriptionID = JsonConvert.DeserializeObject <TranscriptionCompletedResponseModel>(webHookPayload).Id; var transcriptionURI = $"{speechAPIEndpoint}/api/speechtotext/v2.0/transcriptions/{completedTranscriptionID}"; s_client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", speechAPIsubscriptionKey); var transcriptionDetail = JsonConvert.DeserializeObject <TranscriptionResponseModel>(await s_client.GetStringAsync(transcriptionURI)); var response = await s_client.GetAsync(transcriptionDetail.ResultsUrls["channel_0"], HttpCompletionOption.ResponseHeadersRead); response.EnsureSuccessStatusCode(); var stream = await response.Content.ReadAsStreamAsync(); using (var streamReader = new StreamReader(stream)) using (var jsonReader = new JsonTextReader(streamReader)) { var serializer = new JsonSerializer(); transcriptionText = serializer.Deserialize <TranscriptionData>(jsonReader); } var transcriptionSegments = transcriptionText.AudioFileResults .SelectMany(m => m.SegmentResults .SelectMany(n => n.NBest .Select(o => new TranscriptionSegment { Sentence = o.Display, Duration = n.Duration / TimeSpan.TicksPerSecond, Offset = n.Offset / TimeSpan.TicksPerSecond }))) .ToList(); var temp = Path.GetFileNameWithoutExtension(transcriptionDetail.Name); var transcriptionResult = new TranscriptionResult { Title = temp.Split(new string[] { "_" }, 2, StringSplitOptions.RemoveEmptyEntries)[1], PublishDate = temp.Split(new string[] { "_" }, 2, StringSplitOptions.RemoveEmptyEntries)[0], PodcastURL = transcriptionDetail.Description, TranscriptionSegments = transcriptionSegments }; var endpoint = config[nameof(AppSettings.CosmosDBEndpoint)]; var authKey = config[nameof(AppSettings.CosmosDBAuthKey)]; var collectionId = config[nameof(AppSettings.CosmosDBCollectionName)]; var databaseId = config[nameof(AppSettings.CosmosDBDatabaseName)]; var repository = new DocumentDBRepository <TranscriptionResult>(databaseId, collectionId, endpoint, authKey) .Initialize(); await repository.CreateItemAsync(transcriptionResult); }
public async Task <Document> Add(Project model) { var result = await DocumentDBRepository <Project> .CreateItemAsync(model); return(result); }