public IActionResult SubmitTicket([FromBody] SubmitTicketViewModel bodyRequest)
        {
            var addedTicket = _ticketService.SubmitTicket(bodyRequest.PickedNumbers, bodyRequest.UserEmail);
            var apiBaseUrl  = _configuration.GetValue <string>("ApiBaseUrl");
            var response    = new
            {
                WinnersBoardLink = $"{apiBaseUrl}/api/winner?drawId={addedTicket.DrawId}",
                Message          = "You should wait for the draw and if you get a prize you will see your name on the board"
            };
            var ticketLink = $"{apiBaseUrl}/api/ticket/{addedTicket.Id}";//TODO: implement this(HttpGet action to read specific ticket)

            return(Created(ticketLink, response));
        }
Example #2
0
        public IActionResult SubmitTicket(SubmitTicketViewModel model)
        {
            if (!_settings.ShowTickets)
            {
                return(RedirectToAction(nameof(Index), Name));
            }

            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            if (String.IsNullOrEmpty(model.CaptchaText))
            {
                ModelState.AddModelError(nameof(model.CaptchaText), Languages.LanguageStrings.CodeNotValid);
            }

            if (_settings.ShowCaptchaText)
            {
                HelpdeskCacheItem helpdeskCache = GetCachedHelpdeskItem(true);

                if (!model.CaptchaText.Equals(helpdeskCache.CaptchaText, StringComparison.CurrentCultureIgnoreCase))
                {
                    ModelState.AddModelError(nameof(model.CaptchaText), Languages.LanguageStrings.CodeNotValid);
                }
            }

            if (ModelState.IsValid)
            {
                if (_helpdeskProvider.SubmitTicket(UserId(), model.Department, model.Priority,
                                                   model.Username, model.Email, model.Subject, model.Message, out HelpdeskTicket ticket))
                {
                    return(RedirectToAction(nameof(ViewTicket), Name, new { ticket.Id }));
                }

                ModelState.AddModelError(String.Empty, Languages.LanguageStrings.OopsError);
            }

            return(View(GetSubmitTicketViewModel(model.Subject, model.Message, model.Username, model.Email)));
        }