public async Task <IActionResult> AddWebRequest([FromBody] AddWebSongRequest addWebSongRequest)
        {
            try
            {
                var requestSongViewModel = new AddWebSongRequest
                {
                    Title              = addWebSongRequest.Title,
                    Artist             = addWebSongRequest.Artist,
                    SelectedInstrument = addWebSongRequest.SelectedInstrument,
                    IsVip              = addWebSongRequest.IsVip,
                    IsSuperVip         = addWebSongRequest.IsSuperVip
                };

                var result = await _playlistService.AddWebRequest(requestSongViewModel, addWebSongRequest.Username)
                             .ConfigureAwait(false);

                var responseModel = new AddRequestResponse
                {
                    Result           = result,
                    PlaylistPosition = 0
                };

                return(new JsonResult(responseModel));
            }
            catch (Exception e)
            {
                _logger.LogError(e, "Error in AddWebRequest", addWebSongRequest);
                return(BadRequest());
            }
        }
Exemplo n.º 2
0
        public AddRequestResponse AddRequest(string sessionId, Request request)
        {
            IRequestProvider requestProvider = RequestProviderFactory.GetRequestProvider();
            var response = new AddRequestResponse();

            try
            {
                Core.Model.Request modelRequest = request.ToModel();

                IAccountProvider accountProvider = AccountProviderFactory.GetAccountProvider();
                Account account = accountProvider.GetAccount(request.AccountId);

                if (account != null)
                {
                    string errorMessage;
                    modelRequest = requestProvider.AddRequest(modelRequest, out errorMessage);

                    IEmailProvider emailProvider = EmailProviderFactory.GetEmailProvider();

                    if (modelRequest != null)
                    {
                        response.IsSuccess = true;
                        response.Id = modelRequest.RequestId;
                        response.Order = modelRequest.WaitListPosition;
                        response.UniqueNumber = modelRequest.FriendlyRequestId;

                        emailProvider.SendWLEmail(account.Email, modelRequest.RequestId, modelRequest.FriendlyRequestId,
                                                  modelRequest.TravelDate,
                                                  modelRequest.FromAirport, modelRequest.ToAirport,
                                                  modelRequest.Passengers);
                        Task.Factory.StartNew(() => AddPassengersInTravellerlist(sessionId, modelRequest));
                    }
                    else
                    {
                        response.ErrorMessage = errorMessage;
                    }
                }
                else
                {
                    response.ErrorMessage = "Account invalid. Please try again.";
                }
            }
            catch (Exception exception)
            {
                response.ErrorMessage = "Something is not quite right here. Please try again later.";

                Logger.LogException(exception, Source, "AddRequest", Severity.Major);
            }
            return response;
        }