Exemplo n.º 1
0
        public ActionResult CheckIfLogged()
        {
            AjaxTypedResult<ChatUser> result = new AjaxTypedResult<ChatUser>();

            if (User.Identity.IsAuthenticated)
            {
                using (var context = new ChatContext())
                {
                    User user = context.Users.FirstOrDefault(x => x.Name == User.Identity.Name);

                    if (user != null)
                    {
                        result.Model = new ChatUser()
                        {
                            Name = user.Name,
                            Id = user.Id
                        };
                        result.Success = true;

                        user.LastActivity = DateTime.Now;
                        context.Entry(user).State = EntityState.Modified;
                        context.SaveChanges();
                    }
                }
            }

            return this.JsonCamelCase(result, JsonRequestBehavior.AllowGet);
        }
Exemplo n.º 2
0
        public ActionResult CheckConnectedUsers()
        {
            AjaxTypedResult<List<ChatUser>> result = new AjaxTypedResult<List<ChatUser>>();

            if (User.Identity.IsAuthenticated)
            {
                using (var chatContext = new ChatContext())
                {
                    List<ChatUser> chatUsers = new List<ChatUser>();
                    var users = chatContext.Users.Where(x =>
                        x.LastActivity >= EntityFunctions.AddMinutes(DateTime.Now, -30) &&
                        x.HubConnections.Count > 0);

                    foreach (var user in users)
                    {
                        chatUsers.Add(new ChatUser()
                        {
                            Id = user.Id,
                            Name = user.Name
                        });
                    }

                    result.Model = chatUsers;
                    result.Success = true;
                }
            }

            return this.JsonCamelCase(result, JsonRequestBehavior.AllowGet);
        }
Exemplo n.º 3
0
        public ActionResult Create(ChatUser model)
        {
            AjaxTypedResult<ChatUser> result = new AjaxTypedResult<ChatUser>();

            if (!User.Identity.IsAuthenticated && ModelState.IsValid)
            {
                using (var context = new ChatContext())
                {
                    User user = context.Users.FirstOrDefault(x => x.Name == model.Name);

                    if (user == null)
                    {
                        User newUser = new User()
                        {
                            Name = model.Name,
                            LastActivity = DateTime.Now
                        };
                        context.Entry(newUser).State = EntityState.Added;
                        context.SaveChanges();

                        result.Model = new ChatUser()
                        {
                            Name = newUser.Name,
                            Id = newUser.Id
                        };
                        result.Success = true;
                        result.SuccessMessage = "Użytkownik został dodany.";
                        FormsAuthentication.SetAuthCookie(model.Name, true);
                    }
                    else
                        result.Errors.Add("Wystąpił błąd. Nazwa użytkownika jest zajęta.");
                }
            }
            else
                result.Errors.Add("Wystąpił błąd. Użytkownik jest już zalogowany lub nazwa jest niepoprawna.");

            return this.JsonCamelCase(result);
        }