public JsonResult AddMessage(NewMessageViewModel message)
        {
            if (!string.IsNullOrEmpty(message.MessageBody))
            {
                var context = new EfDbContext();
                var username = User.Identity.IsAuthenticated ? User.Identity.Name : message.Username;

                var newMessage = new Message
                {
                    Username = username,
                    MessageBody = message.MessageBody,
                    PostedDateTime = DateTime.Now,
                    GameId = message.GameId
                };

                var identityManager = new IdentityManager();

                if (User.Identity.IsAuthenticated && !identityManager.IsUserInRole(User.Identity.GetUserId(), "Guest"))
                {
                    if (identityManager.IsUserInRole(User.Identity.GetUserId(), "Member"))
                    {
                        newMessage.Label = "Member";
                    }
                    else if (identityManager.IsUserInRole(User.Identity.GetUserId(), "Admin"))
                    {
                        newMessage.Label = "Admin";
                    }
                }
                else
                {
                    newMessage.Label = "Guest";
                }


                context.Messages.Add(newMessage);
                context.SaveChanges();
                var result = new {message = "Success"};
                return Json(result, JsonRequestBehavior.AllowGet);
            }
            else
            {
                var result = new { message = "Failed" };
                return Json(result, JsonRequestBehavior.AllowGet);
            }
        }
        public async Task<JsonResult> GetMessages(MessageViewModel model)
        {
            var context = new EfDbContext();
            var result = new LinkedList<object>();

            await context.Messages
                .OrderByDescending(x => x.PostedDateTime)
                .Where(x => x.GameId == model.GameId && x.Id > model.MessageId)
                .Take(10)
                .ForEachAsync(message => result.AddFirst(new
                {
                    Id = message.Id,
                    Username = message.Username,
                    Label = message.Label,
                    PostDateTime = message.PostedDateTime.ToString(),
                    MessageBody = message.MessageBody
                }));

            return Json(result, JsonRequestBehavior.AllowGet);
        }
Beispiel #3
0
        public static void AddGameRoles()
        {
            var db = new EfDbContext();
            var roles = new List<Role>()
            {
                new Role(){Name = "Healer", ImgSrc = string.Empty},
                new Role(){Name = "Tank", ImgSrc = string.Empty},
                new Role(){Name = "DPS", ImgSrc = string.Empty}
            };

            foreach (var role in roles)
            {
                if (!db.Roles.Any(r => r.Name == role.Name))
                {
                    db.Roles.Add(role);
                }
            }

            db.SaveChanges();
        }