Esempio n. 1
0
        public bool AccessGrantedForUser(int taskId)
        {
            if (taskId <= 0)
            {
                return(false);
            }

            string UserId = HttpContextExtensions.GetUserId(httpContextAccessor);

            if (HttpContextExtensions.IsAdmin(httpContextAccessor))
            {
                return(true);
            }

            var myTasks = context.UsersInTasks.Where(t => t.MyTaskId == taskId
                                                     ).Join(context.TaskTrackerUser,
                                                            t => t.UserId,
                                                            f => f.UserId,
                                                            (t, f) => new
            {
                f.UserId
            }
                                                            ).Select(t => new { t.UserId });

            return(myTasks.Any(t => t.UserId == UserId));
        }
        public IEnumerable <TaskModelBL> GetNonSubTask(int TaskId)
        {
            IEnumerable <MyTask> list = null;

            if (HttpContextExtensions.IsAdmin(_httpcontext))
            {
                list = context.MyTasks.GetAll();
            }
            else
            {
                var idlist   = context.UsersInTasks.GetAll().Where(u => u.UserId == HttpContextExtensions.GetUserId(_httpcontext)).Select(u => u.MyTaskId);
                var subtasks = context.MyTasks.GetAll().Where(st => st.ParentTaskId == TaskId).Select(u => u.Id);
                list = context.MyTasks.GetAll().Where(t => idlist.Contains(t.Id) && t.Id != TaskId && !subtasks.Any(st => st == t.Id));
            }

            return(list.Select(task => new TaskModelBL()
            {
                Id = task.Id,
                Name = task.Name,
                StartDate = task.StartDate,
                TargetDate = task.TargetDate,
                EndDate = task.EndDate,
                Details = task.Details,
                IsRepeating = task.IsRepeating,
                TaskСategoryId = task.TaskСategoryId,
                TaskPriorityId = task.TaskPriorityId,
                ParentTaskId = task.ParentTaskId,
                files = null
            }));
        }
Esempio n. 3
0
        private bool CheckAccess(int id, out MyTask task)
        {
            task = null;
            if (id <= 0)
            {
                return(false);
            }

            task = context.MyTasks.GetById(id);

            if (task == null)
            {
                return(false);
            }

            return(HttpContextExtensions.IsAdmin(_httpcontext) || context.UsersInTasks.GetAll().Any(u => u.MyTaskId == id && u.UserId == HttpContextExtensions.GetUserId(_httpcontext)));
        }
Esempio n. 4
0
        public IEnumerable <TaskModelBL> GetAll()
        {
            if (HttpContextExtensions.IsAdmin(_httpcontext))
            {
                return(context.MyTasks.GetAll().Select(task => new TaskModelBL()
                {
                    Id = task.Id,
                    Name = task.Name,
                    StartDate = task.StartDate,
                    TargetDate = task.TargetDate,
                    EndDate = task.EndDate,
                    Details = task.Details,
                    IsRepeating = task.IsRepeating,
                    TaskСategoryId = task.TaskСategoryId,
                    TaskPriorityId = task.TaskPriorityId,
                    ParentTaskId = task.ParentTaskId,
                    files = null,
                    IsFriendTask = false
                }));
            }
            else
            {
                var UserId = HttpContextExtensions.GetUserId(_httpcontext);
                var list   = (from MyTask in context.MyTasks.GetAll()
                              join UserInTask in context.UsersInTasks.GetAll() on MyTask.Id equals UserInTask.MyTaskId
                              select new { task = MyTask, usersintask = UserInTask })
                             .Where(x => x.usersintask.UserId == UserId).ToList();

                return(list.Select(item => new TaskModelBL()
                {
                    Id = item.task.Id,
                    Name = item.task.Name,
                    StartDate = item.task.StartDate,
                    TargetDate = item.task.TargetDate,
                    EndDate = item.task.EndDate,
                    Details = item.task.Details,
                    IsRepeating = item.task.IsRepeating,
                    TaskСategoryId = item.task.TaskСategoryId,
                    TaskPriorityId = item.task.TaskPriorityId,
                    ParentTaskId = item.task.ParentTaskId,
                    files = null,
                    IsFriendTask = (item.usersintask.UserInTaskTypeCode == 2)
                }));
            }
        }
Esempio n. 5
0
        public IEnumerable <FileModelBL> GetAll(int TaskId)
        {
            if (!HttpContextExtensions.IsAdmin(httpContext) && !checkUserService.AccessGrantedForUser(TaskId))
            {
                return(null);
            }

            var idlist = context.TasksFiles.Where(tf => tf.TaskId == TaskId).Select(tf => tf.FileId);
            var list   = context.Files.Where(t => idlist.Contains(t.Id));

            return(list.Select(file => new FileModelBL()
            {
                Id = file.Id,
                FileName = file.FileName,
                ContentType = file.ContentType,
                Data = null // тело файла для списка не нужно
            }));
        }
        public async Task <IEnumerable <TaskModelBL> > GetAll(string FriendId)
        {
            var token = await _tokenService.GetIdentityToken(new LoginViewModel()
            {
                UserName = "******",
                Password = "******"
            });

            if (!token.Success)
            {
                throw new Exception(token.Error);
            }

            var friends = await _client.Get <IEnumerable <UserFriendBL> >("api/friends");

            IEnumerable <MyTask> list = null;

            if (HttpContextExtensions.IsAdmin(_httpcontext))
            {
                list = context.MyTasks;
            }
            else
            {
                var idlist = context.UsersInTasks.Where(u => u.UserId == FriendId).Select(u => u.MyTaskId);
                list = context.MyTasks.Where(t => idlist.Contains(t.Id));
            }

            return(list.Select(task => new TaskModelBL()
            {
                Id = task.Id,
                Name = task.Name,
                StartDate = task.StartDate,
                TargetDate = task.TargetDate,
                EndDate = task.EndDate,
                Details = task.Details,
                IsRepeating = task.IsRepeating,
                TaskСategoryId = task.TaskСategoryId,
                TaskPriorityId = task.TaskPriorityId,
                ParentTaskId = task.ParentTaskId,
                files = null
            }));
        }
Esempio n. 7
0
        public bool DeleteForTask(int taskId)
        {
            if (!HttpContextExtensions.IsAdmin(httpContext) && !checkUserService.AccessGrantedForUser(taskId))
            {
                return(false);
            }

            var list = context.TasksFiles.Where(tf => tf.TaskId == taskId).Select(tf => tf.FileId).ToList();

            foreach (int id in list)
            {
                context.Files.Remove(context.Files.Find(id));
            }

            string path = $"{hostingEnvironment.ContentRootPath}\\{optionsForUploadFiles.FilderForFiles}\\{taskId}";

            if (Directory.Exists(path))
            {
                Directory.Delete(path, true);
            }

            return(true);
        }