public async Task <IActionResult> Update(int id, [FromBody] UpdateDailyRegisterViewModel dailyRegister) { var userId = _httpContext.HttpContext.User.Claims.FirstOrDefault(x => x.Type == "userid").Value; DailyRegister mappedDailyRegister = new DailyRegister(dailyRegister.Abrantos, dailyRegister.Date, "", dailyRegister.Post); mappedDailyRegister.Id = id; try { var oldRegister = await _context.DailyRegister.FirstOrDefaultAsync(e => (e.Id == id) && (e.UserId == userId)); if (dailyRegister == null) { return(NotFound()); } if ((mappedDailyRegister.Abrantos > 1000) || (mappedDailyRegister.Abrantos < -1000)) { return(StatusCode(400, "Abrantos só vão de -1000 a 1000")); } if (mappedDailyRegister.Post.Length > 140) { return(StatusCode(400, "Um post pode ter no máximo 140 caracteres")); } oldRegister.Abrantos = mappedDailyRegister.Abrantos; oldRegister.Date = mappedDailyRegister.Date; oldRegister.Post = mappedDailyRegister.Post; _context.DailyRegister.Update(oldRegister); await _context.SaveChangesAsync(); return(Ok()); } catch (KeyNotFoundException e) { return(StatusCode(404, e.Message)); } catch (Exception e) { return(StatusCode(500, e.Message)); } }
public async Task <IActionResult> Create([FromBody] CreateDailyRegisterViewModel dailyRegister) { var userId = _httpContext.HttpContext.User.Claims.FirstOrDefault(x => x.Type == "userid").Value; DailyRegister mappedDailyRegister = new DailyRegister(dailyRegister.Abrantos, dailyRegister.Date, userId, dailyRegister.Post); try { var alreadyRegisteredToday = await _context.DailyRegister .Where(d => d.Date.Day == mappedDailyRegister.Date.Day && (d.UserId == userId)).AnyAsync(); if (alreadyRegisteredToday) { return(StatusCode(400, "Você já registrou abrantos hoje")); } if ((mappedDailyRegister.Abrantos > 1000) || (mappedDailyRegister.Abrantos < -1000)) { return(StatusCode(400, "Abrantos só vão de -1000 a 1000")); } if (mappedDailyRegister.Post.Length > 140) { return(StatusCode(400, "Um post pode ter no máximo 140 caracteres")); } _context.DailyRegister.Add(mappedDailyRegister); await _context.SaveChangesAsync(); return(Ok()); } catch (Exception e) { return(StatusCode(500, e.Message)); } }