Esempio n. 1
0
        public async Task GetStudents(int projectId, StatusInProject status)
        {
            if (status != StatusInProject.Approved && status != StatusInProject.Canceled && status != StatusInProject.InProccessing)
            {
                Response.StatusCode = 400;
                return;// null;
            }

            string userId = AuthJWT.GetCurrentId(HttpContext, out int statusId);

            if (statusId != 0 || userId == null)
            {
                Response.StatusCode = 401;
                return;// null;
            }

            var proj = await ApplicationUser.CheckAccessEditProject(_db, projectId, userId);

            if (proj == null)
            {
                Response.StatusCode = 404;
                return;// null;
            }

            var usersShort = await proj.GetStudentsShortEntity(_db, status);

            Response.ContentType = "application/json";
            await Response.WriteAsync(JsonConvert.SerializeObject(usersShort, new JsonSerializerSettings {
                Formatting = Formatting.Indented
            }));

            //return usersShort;
        }
Esempio n. 2
0
        //список id пользователей проекта с определенным статусом
        public async Task <List <string> > GetStudents(ApplicationDbContext db, StatusInProject status)
        {
            return(await this.GetStudentsQuery(db, status).ToListAsync());

            //List<UserShort> res = new List<UserShort>();
            // return await db.Entry(this).Collection(x1 => x1.ProjectUsers).Query().Where(x1 => x1.Status == status).Select(x1 => x1.UserId).ToListAsync();
        }
Esempio n. 3
0
 public async Task <bool> ChangeStatus(ApplicationDbContext db, StatusInProject newStatus)
 {
     try
     {
         this.Status = newStatus;
         await db.SaveChangesAsync();
     }
     catch (DbUpdateConcurrencyException ex)
     {
         return(false);
     }
     return(true);
 }
Esempio n. 4
0
        //не создает запись если ее нет,нет валидации
        public async Task <bool?> ChangeStatusUser(ApplicationDbContext db, StatusInProject newStatus, string userId)
        {
            var record = await db.Entry(this).Collection(x1 => x1.ProjectUsers).Query().FirstOrDefaultAsync(x1 => x1.UserId == userId);

            if (record == null)
            {
                return(false);
            }
            if (!await record.ChangeStatus(db, newStatus))
            {
                return(null);
            }
            return(true);
        }
Esempio n. 5
0
        //создает если надо и изменяет запись .(если записи нет то создаст ее.) у записи будет переданный статус, нет валидации
        //null-если ошибка
        public async Task <bool?> CreateChangeStatusUser(ApplicationDbContext db, StatusInProject newStatus, string userId)
        {
            bool exists = false;
            var  record = await db.Entry(this).Collection(x1 => x1.ProjectUsers).Query().FirstOrDefaultAsync(x1 => x1.UserId == userId);

            if (record == null)
            {
                db.ProjectUsers.Add(new ProjectUser(userId, this.Id, newStatus));
                await db.SaveChangesAsync();
            }
            else
            {
                exists = true;
                if (!await record.ChangeStatus(db, newStatus))
                {
                    return(null);
                }
            }


            return(exists);
        }
        public async Task GetUserRequests(StatusInProject statusInProject)
        {
            string userId = AuthJWT.GetCurrentId(HttpContext, out int status);

            if (status != 0 || userId == null)
            {
                Response.StatusCode = 401;
                return;// null;
            }

            var res = await ApplicationUser.GetUserRequests(_db, userId, statusInProject);

            //res.ForEach(x1=>
            //{

            //});
            Response.ContentType = "application/json";
            await Response.WriteAsync(JsonConvert.SerializeObject(res, new JsonSerializerSettings {
                Formatting = Formatting.Indented
            }));

            //return await ApplicationUser.GetUserRequests(_db, userId,statusInProject);
        }
Esempio n. 7
0
        public async Task <bool> ChangeStatusUserProject([FromForm] int projectId, [FromForm] string studentId, [FromForm] StatusInProject newStatus)
        {
            if (newStatus != StatusInProject.InProccessing && newStatus != StatusInProject.Canceled && newStatus != StatusInProject.Approved && newStatus != StatusInProject.Moderator)
            {
                Response.StatusCode = 400;
                return(false);
            }
            string userId = AuthJWT.GetCurrentId(HttpContext, out int statusId);

            if (statusId != 0 || userId == null)
            {
                Response.StatusCode = 401;
                return(false);
            }

            var proj = await ApplicationUser.CheckAccessEditProject(_db, projectId, userId);

            if (proj == null)
            {
                Response.StatusCode = 404;
                return(false);
            }
            bool?res = await proj.ChangeStatusUserByLead(_db, newStatus, studentId);

            if (res == null)
            {
                Response.StatusCode = 527;
                return(false);// null;
            }

            return((bool)res);
        }
Esempio n. 8
0
        //проекты в которые пользователь подал заявки, картинки устанавливаются,без сортировки по актуальности
        public async static Task <List <ProjectShort> > GetUserRequests(ApplicationDbContext db, string userId, StatusInProject statusInProject)
        {
            var res = await db.ProjectUsers.Where(x1 => x1.UserId == userId && x1.Status == statusInProject).
                      Join(db.Projects, x1 => x1.ProjectId, x2 => x2.Id, (x1, x2) => x2).Select(x1 => new ProjectShort(x1.Name, x1.Id)
            {
                Status = statusInProject
            }).ToListAsync();

            await ProjectShort.SetMainImages(db, res);

            return(res);
        }
Esempio n. 9
0
 //список  пользователей проекта с определенным статусом
 public async Task <List <UserShort> > GetStudentsShortEntity(ApplicationDbContext db, StatusInProject status)
 {
     //List<UserShort> res = new List<UserShort>();
     return(await this.GetStudentsQuery(db, status).Join(db.Users, x1 => x1, x2 => x2.Id, (x1, x2) => new UserShort(x2.Name, x2.Id)).ToListAsync());
 }
Esempio n. 10
0
 private IQueryable <string> GetStudentsQuery(ApplicationDbContext db, StatusInProject status)
 {
     //List<UserShort> res = new List<UserShort>();
     return(db.Entry(this).Collection(x1 => x1.ProjectUsers).Query().Where(x1 => x1.Status == status).Select(x1 => x1.UserId));
 }
Esempio n. 11
0
 public ProjectUser(string userId, int projectId, StatusInProject status) : this(userId, projectId)
 {
     Status = status;
 }