Exemplo n.º 1
0
        public async Task <IActionResult> GetWorks()
        {
            var user = await _context.Users.FirstOrDefaultAsync(u => u.Email == User.Identity.Name);

            var userWorks = _context.Works.Where(w => w.StudentId == user.Id);

            var result = new List <WorkDataGet>();

            foreach (var work in userWorks)
            {
                var errors = _context.Errors.Where(e => e.WorkId == work.Id).Select(e =>
                                                                                    new
                {
                    id            = e.Id,
                    desc          = e.Description,
                    numberElement = e.NumberElement
                }
                                                                                    ).ToList();

                var dataWork = new WorkDataGet()
                {
                    Id       = work.Id,
                    Errors   = errors,
                    NameFile = work.NameFile,
                    Path     = work.Path,
                    Status   = work.Status,
                    Template = work.Template,
                    Date     = work.DateSend
                };

                result.Add(dataWork);
            }

            return(Ok(result.OrderByDescending(w => w.Status == Status.PENDING_CORRECTION).ThenByDescending(w => w.Date)));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> GetAllWorks()
        {
            if (!User.IsInRole(Role.NORMCONTROL))
            {
                return(StatusCode(403));
            }

            var allWorks = new Dictionary <string, List <WorkDataGet> >();

            foreach (var work in _context.Works)
            {
                var errors = _context.Errors.Where(e => e.WorkId == work.Id).Select(e =>
                                                                                    new
                {
                    id            = e.Id,
                    desc          = e.Description,
                    numberElement = e.NumberElement
                }
                                                                                    ).ToList();

                var student = await _context.Users.FindAsync(work.StudentId);

                var dataWork = new WorkDataGet()
                {
                    Id       = work.Id,
                    Errors   = errors,
                    NameFile = $"{student.LastName} {student.Name}",
                    Path     = work.Path,
                    Status   = work.Status,
                    Template = work.Template,
                    Date     = work.DateSend
                };

                if (!allWorks.ContainsKey(student.Group))
                {
                    allWorks.Add(student.Group, new List <WorkDataGet>());
                }

                allWorks[student.Group].Add(dataWork);
            }

            var result = allWorks.OrderBy(w => w.Key).ToDictionary(k => k.Key, v => v.Value);

            return(Ok(result));
        }