public async Task <IActionResult> OnPostCreateOpinionAsync([Bind] CreateOpinionDto createOpinionModel)
        {
            string offerId = createOpinionModel.OfferId;

            if (!ModelState.IsValid)
            {
                return(await this.OnGetAsync(offerId));
            }

            var opinionCreated = await opinionService.CreateOpinion(createOpinionModel.Text, offerId);

            if (opinionCreated == null)
            {
                return(await this.OnGetAsync(offerId));
            }

            var offerRateAdded = await ratingManager.AddOfferRate(createOpinionModel.Rating, opinionCreated.Id, opinionCreated.UserId);

            if (!offerRateAdded)
            {
                await opinionService.DeleteOpinion(opinionCreated.Id, opinionCreated.UserId);

                Alertify.Push("Creating opinion failed", AlertType.Error);
                return(await this.OnGetAsync(offerId));
            }

            return(RedirectToPage("/OfferDetails", new { area = "Offers", id = offerId }));
        }
        public ActionResult CreateOpinion([FromBody] OpinionModel opinion)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            _logger.LogInformation("adding opinion}");

            var newOpinion         = OpinionMapper.SerializeOpinion(opinion);
            var newOpinionResopnse = _opinionService.CreateOpinion(newOpinion);

            return(Ok(newOpinionResopnse));
        }