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 })); }
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))); }
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) })); } }
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 })); }
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); }