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