public IActionResult Update(long id, [FromBody] NetPromoterScore item)
        {
            if (item == null || item.Id != id)
            {
                return(BadRequest());
            }

            var record = _context.NetPromoterScores.FirstOrDefault(t => t.Id == id);

            if (record == null)
            {
                return(NotFound());
            }

            record.BrandId           = item.BrandId;
            record.ConsumerProfileId = item.ConsumerProfileId;
            record.Respondent        = item.Respondent;
            record.Year  = item.Year;
            record.Month = item.Month;
            record.RecomendationQuestion    = item.RecomendationQuestion;
            record.NumberOfPositiveResponds = item.NumberOfPositiveResponds;
            record.NumberOfNegativeResponds = item.NumberOfNegativeResponds;
            record.NumberOfNeutralResponds  = item.NumberOfNeutralResponds;

            _context.NetPromoterScores.Update(record);
            _context.SaveChanges();
            return(new NoContentResult());
        }
Esempio n. 2
0
            public async Task <Result <Contract> > Handle(Contract request, CancellationToken cancellationToken)
            {
                var userId = ObjectId.Parse(request.UserId);
                var user   = await GetUser(userId, cancellationToken);

                if (user == null)
                {
                    return(Result.Fail <Contract>("Usuário não encontrado"));
                }

                var npsBase = await _db.NetPromoterScoresCollection
                              .AsQueryable()
                              .Where(x => x.UserId == userId)
                              .FirstOrDefaultAsync();

                if (npsBase != null)
                {
                    return(Result.Fail <Contract>("Você ja avaliou o sistema"));
                }

                var nps = NetPromoterScore.Create(userId, request.Grade, user.Name, user.Email,
                                                  user.TracksInfo, user.ModulesInfo, user.EventsInfo);

                if (nps.IsFailure)
                {
                    return(Result.Fail <Contract>("Ocorreu um erro na criação da avaliação"));
                }

                await _db.NetPromoterScoresCollection.InsertOneAsync(nps.Data);

                return(Result.Ok(request));
            }
        public IActionResult Post([FromBody] NetPromoterScore item)
        {
            if (item == null)
            {
                return(BadRequest());
            }

            item.Id = _context.NetPromoterScores.Count() + 1;
            _context.NetPromoterScores.Add(item);
            _context.SaveChanges();

            return(CreatedAtRoute("GetBrand", new { id = item.Id }, item));
        }