Ejemplo n.º 1
0
        public async Task <IActionResult> GetFactor([FromQuery] string id)
        {
            try
            {
                PreFactor factor = await _unitOfWork.PreFactorRepository.GetDbSet().Include(f => f.Images).Include(f => f.User).SingleOrDefaultAsync(f => f.Id == Guid.Parse(id));

                if (factor != null)
                {
                    var x = new
                    {
                        factor.Id,
                        Images = StaticTools.GetImages(factor.Images, _configuration.GetValue <string>("url")),
                        factor.IsDone,
                        factor.SubmittedFactorId,
                        UserPhone = factor.User.Phone
                    };
                    return(Ok(x));
                }
                else
                {
                    return(NotFound("factor not found"));
                }
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message);
                return(Problem(e.Message));
            }
        }
Ejemplo n.º 2
0
        public IActionResult GetUserUndoneFactors([FromQuery] string phone)
        {
            try
            {
                if (StaticTools.PhoneValidator(phone))
                {
                    if (!_unitOfWork.UserRepository.GetDbSet().Any(u => u.Phone == phone))
                    {
                        return(NotFound("User not found"));
                    }

                    IEnumerable <PreFactor> result = _unitOfWork.PreFactorRepository.GetDbSet().Include(f => f.Images).Include(f => f.User).Where(f => f.User.Phone == phone && !f.IsDone).OrderBy(f => f.CreationDate).AsEnumerable();
                    var x = from item in result
                            select new
                    {
                        item.Id,
                        item.Title,
                        UserId = item.User.Id,
                        Images = StaticTools.GetImages(item.Images, _configuration.GetValue <string>("url")),
                        item.IsDone,
                        item.SubmittedFactorId
                    };
                    return(Ok(x));
                }
                else
                {
                    return(BadRequest(StaticTools.PhoneValidationError));
                }
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message);
                return(Problem(e.Message));
            }
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> GetAllUndoneFactorsGroupedByUser()
        {
            try
            {
                List <PreFactor> factors = await _unitOfWork.PreFactorRepository.GetDbSet().Include(f => f.Images).Include(f => f.User).Where(f => !f.IsDone).OrderBy(f => f.CreationDate).ToListAsync();

                var x = from factor in factors
                        select new
                {
                    factor.Id,
                    factor.CreationDate,
                    factor.Title,
                    Images = StaticTools.GetImages(factor.Images, _configuration.GetValue <string>("url")),
                    factor.SubmittedFactorId,
                    factor.User
                };
                var query = x.GroupBy(f => f.User, (u, pf) => new { UserId = u.Id, PreFactor = pf });
                return(Ok(query));
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message);
                return(Problem(e.Message));
            }
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> GetProjectPreFactors(string projectId)
        {
            try
            {
                var user = await _unitOfWork.UserRepository.DbSet.Include(u => u.Projects).ThenInclude(p => p.PreFactors).SingleOrDefaultAsync(u => Guid.Parse((HttpContext.User.Identity as ClaimsIdentity).Claims.Select(c => c.Value).ToList()[0]) == u.Id);

                if (user == null)
                {
                    return(NotFound("user not found"));
                }
                var project = user.Projects.SingleOrDefault(p => p.Id == Guid.Parse(projectId));
                if (project == null)
                {
                    return(NotFound("Project not found"));
                }
                var x = from pf in project.PreFactors
                        select new
                {
                    pf.Id,
                    Images = StaticTools.GetImages(pf.Images, _configuration.GetValue <string>("url")),
                    pf.IsDone,
                    pf.Title,
                    pf.SubmittedFactorId
                };
                return(Ok(x));
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message);
                return(Problem(e.Message));
            }
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> GetUserFactor([FromQuery] string factorId)
        {
            string id   = (HttpContext.User.Identity as ClaimsIdentity).Claims.ElementAt(0).Value.Split(' ').Last();
            User   user = await _unitOfWork.UserRepository.GetDbSet().Include(u => u.PreFactors).ThenInclude(f => f.Images).SingleOrDefaultAsync(u => u.Id == Guid.Parse(id));

            var preFactor = user.PreFactors.SingleOrDefault(f => f.Id == Guid.Parse(factorId));
            var x         = new
            {
                preFactor.Id,
                preFactor.Title,
                Images = StaticTools.GetImages(preFactor.Images, url),
                preFactor.SubmittedFactorId,
                preFactor.IsDone,
                preFactor.Description
            };

            return(Ok(x));
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> GetAllUserFactors()
        {
            string id   = (HttpContext.User.Identity as ClaimsIdentity).Claims.ElementAt(0).Value.Split(' ').Last();
            User   user = await _unitOfWork.UserRepository.GetDbSet().Include(u => u.PreFactors).ThenInclude(f => f.Images).SingleOrDefaultAsync(u => u.Id == Guid.Parse(id));

            var preFactors = user.PreFactors.OrderByDescending(f => f.CreationDate).ThenBy(f => f.IsDone);
            var x          = from item in preFactors
                             select new
            {
                item.Id,
                item.CreationDate,
                item.Title,
                item.UserId,
                Images = StaticTools.GetImages(item.Images, url),
                item.IsDone,
                item.SubmittedFactorId,
                item.Description
            };

            return(Ok(x));
        }