Пример #1
0
        public async Task InsertMessage(MessageSubmitModel arg)
        {
            try
            {
                GroupUserRepository.DisableLazyLoading();
                var messageGroupUsers = (await GroupUserRepository.GetManyBy(gu => arg.GroupId.Equals(gu.Group.Id) && !gu.Id.Equals(arg.CreatorGroupUserId))).Select(gu => new Models.MessageGroupUser
                {
                    GroupUser       = gu,
                    AlreadyReceived = true,//Add logic with logged userIds at signalR chat
                    CreatorName     = arg.MessageUI.CreatorName,
                    IsCreator       = arg.CreatorGroupUserId == gu.Id,
                    Id = Guid.NewGuid()
                }).ToList();

                Message message = arg.MessageUI.ToActualMessage(messageGroupUsers);

                MessageRepository.InsertEntry(message);

                await MessageRepository.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                Logger.LogError("Exception at InsertMessage", ex);
            }
        }
Пример #2
0
 public MessageService(UsersRepository usersRepository, MessageRepository messageRepository, GroupUserRepository groupUserRepository, ILoggerProvider provider)
 {
     UsersRepository     = usersRepository;
     MessageRepository   = messageRepository;
     GroupUserRepository = groupUserRepository;
     Logger = provider.CreateLogger(nameof(MessageService));
 }
Пример #3
0
        public bool IsInRole(string role)
        {
            if (UserType == (int)EnumHelper.UserType.Admin)
            {
                var lstFullAction = Enum.GetValues(typeof(EnumHelper.Action))
                                    .Cast <int>()
                                    .ToList();
                HttpContext.Current.Session["Action"] = lstFullAction;
                return(true);
            }
            if (role.ToLower() == "noibo" && NoiBo == 1)
            {
                return(true);
            }
            var action     = new GetAction();
            var chucnangid = "";

            if (string.IsNullOrEmpty(chucnangid))
            {
                var httpCookie = HttpContext.Current.Request.Cookies["chucnangid"];
                if (httpCookie != null)
                {
                    chucnangid = httpCookie.Value;
                }
            }
            if (string.IsNullOrEmpty(chucnangid))
            {
                HttpContext.Current.Response.Redirect("/Error/AccessDenined");
            }
            List <int> lstAction = action.Get(GroupUser, Convert.ToInt32(chucnangid));

            if (lstAction.Count == 0)
            {
                HttpContext.Current.Response.Redirect("/Error/AccessDenined");
            }
            else
            {
                //var actionName = HttpContext.Current.Request.RequestContext.RouteData.Values["action"].ToString();

                bool hasPermision = false;
                switch (role.ToLower())
                {
                case "index":
                    if (lstAction.Contains((int)EnumHelper.Action.View))
                    {
                        hasPermision = true;
                    }
                    break;

                case "add":
                case "insert":
                    if (lstAction.Contains((int)EnumHelper.Action.Add))
                    {
                        hasPermision = true;
                    }
                    break;

                case "edit":
                case "update":
                    if (lstAction.Contains((int)EnumHelper.Action.Edit))
                    {
                        hasPermision = true;
                    }
                    break;

                case "delete":
                    if (lstAction.Contains((int)EnumHelper.Action.Delete))
                    {
                        hasPermision = true;
                    }
                    break;

                case "approved":
                    if (lstAction.Contains((int)EnumHelper.Action.Approved))
                    {
                        hasPermision = true;
                    }
                    break;

                case "expandnews":
                    // kiem tra xem co duoc mo rong tin khong
                    var _groupuserRepository = new GroupUserRepository();
                    if (GroupUser != null)
                    {
                        var arrGroupUser = GroupUser.Split(',');
                        int isExpandNews = 0;
                        for (int i = 0; i < arrGroupUser.Count(); i++)
                        {
                            int GroupUserID  = Convert.ToInt32(arrGroupUser[i]);
                            var rowGroupUser = _groupuserRepository.Find(GroupUserID);
                            if (rowGroupUser != null)
                            {
                                bool ExpandNews = rowGroupUser.ExpandNews;
                                if (ExpandNews)
                                {
                                    isExpandNews = 1;
                                }
                            }
                        }
                        if (isExpandNews == 1)
                        {
                            hasPermision = true;
                        }
                    }
                    //
                    break;

                default:
                    if (lstAction.Contains((int)EnumHelper.Action.View))
                    {
                        hasPermision = true;
                    }
                    break;
                }
                if (hasPermision == false)
                {
                    HttpContext.Current.Response.Redirect("/Error/AccessDenined");
                }
                HttpContext.Current.Session["Action"] = lstAction;
            }
            return(true);
        }