CreateItemAsync() публичный статический Метод

public static CreateItemAsync ( item ) : Task
Результат Task
 public async Task <Document> AddNote([FromBody] Note value)
 {
     value.Id   = Guid.NewGuid().ToString();
     value.Date = DateTime.Now;
     return(await repository.CreateItemAsync(value));
 }
Пример #2
0
        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);
        }
Пример #3
0
 public async Task Create_New_LifeLongMovie()
 {
     Movie movie = new LifeLongMovie("Reservoir Dogs");
     await DocumentDBRepository <Movie> .CreateItemAsync(movie);
 }
Пример #4
0
        /// <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);
            }
        }
Пример #5
0
 public async Task Create_New_TwoDaysMovie()
 {
     Movie movie = new TwoDaysMovie("Pulp Fiction");
     await DocumentDBRepository <Movie> .CreateItemAsync(movie);
 }
Пример #6
0
 public async Task Create_New_Customer()
 {
     Customer cust = new Customer(CustomerName.Create("Fred").Value,
                                  Email.Create("*****@*****.**").Value);
     await DocumentDBRepository <Customer> .CreateItemAsync(cust);
 }
Пример #7
0
        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);
        }
Пример #9
0
        public async Task <Document> Add(Project model)
        {
            var result = await DocumentDBRepository <Project> .CreateItemAsync(model);

            return(result);
        }