}     //	End private coroutine mehtod playComment

    public static void raiseEvent(CommentEvent myEvent)
    {
        if (observer != null)
        {
            observer.OnNotify(myEvent);
        }
    }    //	End public static method raiseEvent
Example #2
0
        public IHttpActionResult AddComment(AddCommentDTO comment)
        {
            int CurrenUser = 0;

            using (var db = new UserDAL())
            {
                CurrenUser = db.GetUserByUserNameOrEmail(User.Identity.Name).UserID;
            }
            var newComment = new CommentEvent
            {
                UserId      = CurrenUser,
                EventId     = comment.ThreadId,
                Content     = comment.CommentContent,
                Status      = true,
                CommentDate = DateTime.Now
            };

            using (var db = new EventDAL())
            {
                newComment = db.AddNewComment(newComment);
            }
            return(Ok(new HTTPMessageDTO {
                Status = WsConstant.HttpMessageType.SUCCESS, Data = newComment
            }));
        }
        private void CommentSubscriber(CommentEvent param)
        {
            switch (param.Type)
            {
            case CommentEventType.Reply:
                ReplyCommentId = param.Comment.id;
                IsReplingTo    = true;
                ReplyTip       = string.Format(StringUtil.GetString("ReplyTip"), param.Comment.author);
                break;

            case CommentEventType.Delete:
                if (CommentList.Count > 1)
                {
                    var comment = CommentList[0].SingleOrDefault(o => o.id == param.Comment.id);
                    if (comment != null)
                    {
                        CommentList[0].Remove(comment);
                        return;
                    }

                    comment = CommentList[1].SingleOrDefault(o => o.id == param.Comment.id);
                    if (comment != null)
                    {
                        CommentList[1].Remove(comment);
                        return;
                    }
                }
                break;
            }
        }
Example #4
0
        public PartialViewResult ChildrenEventComment(CommentEvent childCom)
        {
            ApplicationUser user = null;
            string          id   = GetUserId();

            if (id != string.Empty && id != null)
            {
                user = context.Users.Where(a => a.Id == id).First();
            }



            CurrentCommentGameEventViewModel vm = new CurrentCommentGameEventViewModel
            {
                LoggedUser = user,
                Com        = childCom
            };

            if (vm.Com.Children != null && vm.Com.Children.Count > 1)
            {
                vm.Com.Children = vm.Com.Children.OrderBy(a => a.DateOfInsert).ToList();
            }

            return(PartialView("_ChildrenComments", vm));
        }
Example #5
0
        public object Serdes(object existing, AssetInfo config, AssetMapping mapping, ISerializer s)
        {
            if (s == null)
            {
                throw new ArgumentNullException(nameof(s));
            }
            var events = new List <IEvent>();

            foreach (var line in ReadLines(s))
            {
                IEvent e;
                if (string.IsNullOrEmpty(line))
                {
                    e = new CommentEvent(null);
                }
                else if (line.StartsWith(";", StringComparison.Ordinal))
                {
                    e = new CommentEvent(line.Substring(1));
                }
                else
                {
                    e = Event.Parse(line);
                }

                if (e == null)
                {
                    ApiUtil.Assert($"Script line \"{line}\" could not be parsed to an event");
                    e = new UnparsableEvent(line);
                }

                events.Add(e);
            }

            return(events);
        }
Example #6
0
 public CommentEvent AddNewComment(CommentEvent comment)
 {
     using (var db = new Ws_DataContext())
     {
         var newComment = db.CommentEvents.Add(comment);
         db.SaveChanges();
         return(newComment);
     }
 }
Example #7
0
        public PartialViewResult AddChildCommentEvent(int idOfParentId, string content)
        {
            if (SpamDetector.IsContentSpam(content))
            {
                return(null);
            }

            var         parentComment = context.CommentEvents.Find(idOfParentId);
            GamingEvent gameEvent     = context.GamingEvents.Where(a => a.GamingEventId == parentComment.GamingEventId).First();

            ApplicationUser user = null;
            string          id   = User.Identity.GetUserId();

            if (id != string.Empty && id != null)
            {
                user = context.Users.Where(a => a.Id == id).First();
            }


            CommentEvent commentEvent = new CommentEvent()
            {
                Body                 = content,
                DateOfInsert         = DateTime.Now,
                GamingEventId        = gameEvent.GamingEventId,
                UserId               = User.Identity.GetUserId(),
                User                 = user,
                ParentCommentEventId = parentComment.CommentEventId,
                Parent               = parentComment
            };

            var sentimentalInt = new SentimentalInterpreter();
            var isContentHappy = sentimentalInt.IsHappy(commentEvent.Body);

            if (isContentHappy)
            {
                commentEvent.IsHappy = true;
            }

            parentComment.Children.Add(commentEvent);
            context.CommentEvents.Add(commentEvent);

            context.SaveChanges();


            CurrentCommentGameEventViewModel vm = new CurrentCommentGameEventViewModel
            {
                LoggedUser = user,
                Com        = parentComment
            };


            if (vm.Com.Children != null && vm.Com.Children.Count > 1)
            {
                vm.Com.Children = vm.Com.Children.OrderBy(a => a.DateOfInsert).ToList();
            }
            return(PartialView("~/Views/GamingEvent/_ChildrenComments.cshtml", vm));
        }
    }    //	End Unity method Start

    //	Additional methods

    private void OnNotify(CommentEvent myEvent)
    {
        if (library == null || (int)myEvent >= library.Length || source == null)
        {
            return;
        }
        bool volumeChange = (myEvent == CommentEvent.CommentsTurnedUp || myEvent == CommentEvent.CommentsTurnedDown);

        StartCoroutine(playComment(library[(int)myEvent], volumeChange));
        if (source != null && source.isPlaying && volumeChange)
        {
            source.volume = Game.getCommentVolume();
        }
    }    //	End private method OnNotify
Example #9
0
        public async Task NotifyCommentPublished(
            CommentEvent message,
            ILogger log,
            CancellationToken ct)
        {
            try
            {
                var url = (await settings.GetSettings())?.WebHookCommentPublished ?? "";

                await InvokeWebHook(url, message, "comment published", ct, log);
            }
            catch (Exception ex)
            {
                log.LogError(ex, "Failed to invoke webhook for comment published");
            }
        }
Example #10
0
        public PartialViewResult AddComment(int gamingEventId, string content)
        {
            if (SpamDetector.IsContentSpam(content))
            {
                return(null);
            }

            var             gameEvent = context.GamingEvents.Where(a => a.GamingEventId == gamingEventId).First();
            ApplicationUser user      = null;
            string          id        = User.Identity.GetUserId();

            if (id != string.Empty && id != null)
            {
                user = context.Users.Where(a => a.Id == id).First();
            }

            CommentEvent commentEvent = new CommentEvent()
            {
                Body   = content, DateOfInsert = DateTime.Now, GamingEventId = gameEvent.GamingEventId,
                UserId = User.Identity.GetUserId(), User = user
            };

            var sentimentalInt = new SentimentalInterpreter();
            var isContentHappy = sentimentalInt.IsHappy(commentEvent.Body);

            if (isContentHappy)
            {
                commentEvent.IsHappy = true;
            }

            context.CommentEvents.Add(commentEvent);
            context.SaveChanges();

            gameEvent.Comments.Add(commentEvent);

            CurrentGameEventUserViewModel vm = new CurrentGameEventUserViewModel
            {
                LoggedUser  = user,
                GamingEvent = gameEvent
            };

            vm.GamingEvent.Comments = vm.GamingEvent.Comments.OrderBy(a => a.DateOfInsert).ToList();
            return(PartialView("_ListOfComments", vm));
        }
Example #11
0
        private async Task InvokeWebHook(string url, CommentEvent message, string eventName, CancellationToken ct, ILogger log)
        {
            if (string.IsNullOrWhiteSpace(url))
            {
                log.LogInformation("No webhook configured for {event}.", eventName);
                return;
            }

            if (!TryParseUri(url, out var webhookUri))
            {
                log.LogWarning("Webhook for {event} is invalid: '{url}'", eventName, url);
                throw new InvalidOperationException($"Webhook URI for {eventName} is invalid.");
            }

            try
            {
                var json = System.Text.Json.JsonSerializer.Serialize(message, serializationOptions);

                using var client = new HttpClient();
                var httpRequest = new HttpRequestMessage(HttpMethod.Post, webhookUri)
                {
                    Content = new StringContent(json, Encoding.UTF8, "application/json")
                };

                log.LogDebug("Invoking {event} webhook at '{url}' with body {body}", eventName, url, json);
                var response = await client.SendAsync(httpRequest, ct);

                if (!response.IsSuccessStatusCode)
                {
                    log.LogError("Webhook for {event} failed: {status} {reason}", eventName, response.StatusCode, response.ReasonPhrase);
                    throw new InvalidOperationException($"Failed to invoke {eventName} web hook: {response.StatusCode} {response.ReasonPhrase}");
                }
                else
                {
                    log.LogInformation("Webhook {event} at '{url}' completed with status {status} {reason}", eventName, url, response.StatusCode, response.ReasonPhrase);
                }
            }
            catch (Exception ex)
            {
                log.LogError(ex, "Webhook for {event} failed.", eventName);
                throw new InvalidOperationException($"Failed to invoke {eventName} web hook.", ex);
            }
        }
Example #12
0
        public Script Serdes(Script script, AssetInfo info, AssetMapping mapping, ISerializer s, IJsonUtil jsonUtil)
        {
            if (s == null)
            {
                throw new ArgumentNullException(nameof(s));
            }

            if (s.IsReading())
            {
                script = new Script();
                foreach (var line in ReadLines(s))
                {
                    IEvent e;
                    if (string.IsNullOrEmpty(line))
                    {
                        e = new CommentEvent(null);
                    }
                    else if (line.StartsWith(";", StringComparison.Ordinal))
                    {
                        e = new CommentEvent(line[1..]);
            private void Subscriber(CommentEvent param)
            {
                var commentId = param.Comment.id.ToString();

                switch (param.Type)
                {
                case CommentEventType.Delete:
                    DataRequester.DeleteComment(commentId);
                    break;

                case CommentEventType.Like:
                    if (param.IsLike)
                    {
                        DataRequester.LikeComment(commentId);
                    }
                    else
                    {
                        DataRequester.UnlikeComment(commentId);
                    }
                    break;
                }
            }
        public void GenerateEventComments()
        {
            var repository = DependencyResolver.Current.GetService <IRepository>();
            var users      = repository.Users.ToList();

            var events = repository.Events.ToList();

            foreach (var @event in events)
            {
                var countNew = rand.Next(3) + 2;
                for (int i = 0; i < countNew; i++)
                {
                    var user    = users.OrderBy(p => Guid.NewGuid()).FirstOrDefault();
                    var comment = new Comment()
                    {
                        UserID = user.ID,
                        Text   = Textarium.GetRandomText(1 + rand.Next(2)),
                    };
                    repository.CreateComment(comment);
                    var eventComment = new CommentEvent()
                    {
                        CommentID = comment.ID,
                        EventID   = @event.ID
                    };
                    repository.CreateCommentEvent(eventComment);
                    if (eventComment.Event.UserID != user.ID)
                    {
                        var feed = new Feed()
                        {
                            ActionType = (int)Feed.ActionTypeEnum.AddEventComment,
                            EventID    = eventComment.EventID,
                            CommentID  = comment.ID,
                            UserID     = eventComment.Event.UserID,
                            ActorID    = user.ID,
                            IsNew      = true,
                        };
                        repository.CreateFeed(feed);
                    }
                    Console.WriteLine(string.Format("{0} написал комментарий в блоге {1}", user.FirstName, comment.Text.Teaser(50)));

                    if (rand.Next(100) % 2 == 0)
                    {
                        var user2        = users.OrderBy(p => Guid.NewGuid()).FirstOrDefault();
                        var replyComment = new Comment()
                        {
                            ParentID = comment.ID,
                            UserID   = user2.ID,
                            Text     = Textarium.GetRandomText(1 + rand.Next(2)),
                        };
                        repository.CreateComment(replyComment);
                        var replyEventComment = new CommentEvent()
                        {
                            CommentID = replyComment.ID,
                            EventID   = @event.ID
                        };
                        repository.CreateCommentEvent(replyEventComment);
                        if (replyEventComment.Event.UserID != user.ID)
                        {
                            var feed = new Feed()
                            {
                                ActionType = (int)Feed.ActionTypeEnum.AddEventComment,
                                EventID    = replyEventComment.EventID,
                                CommentID  = comment.ID,
                                UserID     = replyEventComment.Event.UserID,
                                ActorID    = user.ID,
                                IsNew      = true,
                            };
                            repository.CreateFeed(feed);
                        }
                        Console.WriteLine(string.Format("{0} ответил комментарием в блоге {1}", user2.FirstName, replyComment.Text.Teaser(50)));
                    }
                }
            }
        }
Example #15
0
 public void CommentTL_Click(object sender, EventArgs e)
 {
     CommentEvent.Invoke(sender, e);
 }