public override async Task <ConfirmedTicketResponse> FinalizeTickets(TicketRequest request, ServerCallContext context) { var response = new ConfirmedTicketResponse() { Success = false }; try { var tickets = await _repository.GetTicketsAsync(request.TicketIds.ToArray()); if (tickets.Count() == request.TicketIds.Count()) { // TODO actually remove, I'm just deleting it for demo foreach (var ticket in tickets) { var ticketMessage = _mapper.Map <TicketMessage>(ticket); response.Tickets.Add(ticketMessage); _repository.Delete(ticket); } if (await _repository.SaveAllAsync()) { response.Success = true; } } } catch (Exception ex) { _logger.LogError("Failed to finalize tickets.", ex); response.UserMessage = "Failed to finalize your tickets. Error occurred."; } return(response); }
public void GivenATicketInZendeskWithTheSubjectAndDescription(string subject, string description) { var requesterId = _supportUserClient.Search.Find<User>(new ZendeskQuery<User>().WithCustomFilter("email", ConfigurationManager.AppSettings["zendeskenduserusername"], FilterOperator.Equals)).Results.First().Id; var ticket = new Ticket { Subject = subject, Comment = new TicketComment {Body = description}, RequesterId = requesterId, Type = TicketType.question, Status = TicketStatus.Solved }; var ticketRequest = new TicketRequest {Item = ticket}; _ticket = _supportUserClient.Tickets.Post(ticketRequest).Item; _ticket.Status = TicketStatus.Solved; _ticket = _supportUserClient.Tickets.Put(new TicketRequest { Item = _ticket } ).Item; }
protected void Page_Load(object sender, EventArgs e) { // Define some configuration options for the QlikView Server TicketConfiguration config = new TicketConfiguration() { GetWebTicketUri = new Uri("http://localhost/QvAJAXZfc/GetWebTicket.aspx") }; // Create a ticket request with userid and groups (semicolon separated) TicketRequest request = new TicketRequest() { UserId = "rikard", Groups = new string[] { "PreSales", "Stockholm" } }; // The response will contain the generated ticket, a redirect uri and possible error message TicketResponse response = new TicketResponse().GetTicket(request, config); if (response.ErrorMessage == null) { Response.Redirect(response.RedirectUri, true); } else { Response.Write("Error: " + response.ErrorMessage); } }
/// <summary> /// 写用户认证 /// </summary> /// <param name="ticketRequest">用户票据</param> /// <param name="createPersistentCookie">是否创建持久性Cookie</param> public void Ticket(TicketRequest ticketRequest, bool createPersistentCookie) { var ticket = new FormsAuthenticationTicket( 1, ticketRequest.SysNo.ToString(), DateTime.Now, DateTime.Now.Add(FormsAuthentication.Timeout), createPersistentCookie, ticketRequest.ToJson(), FormsAuthentication.FormsCookiePath); var encryptedTicket = FormsAuthentication.Encrypt(ticket); var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket) { HttpOnly = true }; if (ticket.IsPersistent) { cookie.Expires = ticket.Expiration; } cookie.Secure = FormsAuthentication.RequireSSL; cookie.Path = FormsAuthentication.FormsCookiePath; if (FormsAuthentication.CookieDomain != null) { cookie.Domain = FormsAuthentication.CookieDomain; } HttpContext.Current.Response.Cookies.Add(cookie); }
public override async Task <TicketResponse> ReserveTickets(TicketRequest request, ServerCallContext context) { var response = new TicketResponse() { Success = false }; try { var tickets = await _repository.GetTicketsAsync(request.TicketIds.ToArray()); if (tickets.Count() == request.TicketIds.Count()) { // TODO actually reserve, but for demo not necessary response.Success = true; } } catch (Exception ex) { _logger.LogError("Failed to reserve tickets.", ex); response.UserMessage = "Failed to reserve your tickets. Error occurred."; } return(response); }
public void GivenATicketInZendeskWithTheSubjectAndDescription(string subject, string description) { var requesterId = _supportUserClient.Search.Find <User>(new ZendeskQuery <User>().WithCustomFilter("email", ConfigurationManager.AppSettings["zendeskenduserusername"], FilterOperator.Equals)).Results.First().Id; var ticket = new Ticket { Subject = subject, Comment = new TicketComment { Body = description }, RequesterId = requesterId, Type = TicketType.question, Status = TicketStatus.Solved }; var ticketRequest = new TicketRequest { Item = ticket }; _ticket = _supportUserClient.Tickets.Post(ticketRequest).Item; _ticket.Status = TicketStatus.Solved; _ticket = _supportUserClient.Tickets.Put(new TicketRequest { Item = _ticket } ).Item; }
public Ticket(TicketRequest request, Flight flight, int id) { Id = id; Price = request.Price; FlightId = flight.Id; Flight = flight; }
// PUT api/<controller>/5 /// <summary> /// Modifica un ticket /// </summary> /// <param name="ticket">Ticket a modificar</param> /// <returns></returns> public IHttpActionResult Put(int id, TicketRequest ticket) { var originalTicket = TicketService.GetById(id); var ret = TicketService.UpdateTicket(originalTicket, ticket); return(Ok()); }
public IHttpActionResult Post(TicketRequest ticket) { var result = TicketService.CreateTicket(ticket); return(Created <Entidad>("", new Entidad { Id = result.Id })); }
public static Ticket ToTicket(this TicketRequest ticket) { return(new Ticket { EventName = ticket.EventName, Owner = ticket.Owner }); }
public void Tickets_BuyTickets(TicketRequest request) { // TODO: Place your code here for processing the TicketRequest transaction //this method will do the following // a) validate there is sufficient seats left for the show // b) create a record for each requested ticket // c) this must be done as a transaction }
public Ticket CreateTicket(TicketRequest ticketRequest) { const string apiMethod = "/Tickets/Ticket"; ticketRequest.EnsureValidData(RequestTypes.Create); var parameters = new RequestBodyBuilder(); parameters.AppendRequestData("subject", ticketRequest.Subject); parameters.AppendRequestData("fullname", ticketRequest.FullName); parameters.AppendRequestData("email", ticketRequest.Email); parameters.AppendRequestData("contents", ticketRequest.Contents); parameters.AppendRequestData("departmentid", ticketRequest.DepartmentId); parameters.AppendRequestData("ticketstatusid", ticketRequest.TicketStatusId); parameters.AppendRequestData("ticketpriorityid", ticketRequest.TicketPriorityId); parameters.AppendRequestData("tickettypeid", ticketRequest.TicketTypeId); if (ticketRequest.AutoUserId != null) { parameters.AppendRequestData("autouserid", Convert.ToInt32(ticketRequest.AutoUserId)); } else if (ticketRequest.UserId != null) { parameters.AppendRequestData("userid", ticketRequest.UserId); } else if (ticketRequest.StaffId != null) { parameters.AppendRequestData("staffid", ticketRequest.StaffId); } if (ticketRequest.OwnerStaffId != null) { parameters.AppendRequestData("ownerstaffid", ticketRequest.OwnerStaffId); } if (ticketRequest.TemplateGroupId != null) { parameters.AppendRequestData("templategroup", ticketRequest.TemplateGroupId); } else if (!string.IsNullOrEmpty(ticketRequest.TemplateGroupName)) { parameters.AppendRequestData("templategroup", ticketRequest.TemplateGroupName); } if (ticketRequest.IgnoreAutoResponder != null) { parameters.AppendRequestData("ignoreautoresponder", Convert.ToInt32(ticketRequest.IgnoreAutoResponder)); } if (ticketRequest.CreationType != null) { parameters.AppendRequestData("type", EnumUtility.ToApiString(ticketRequest.CreationType)); } var tickets = this.Connector.ExecutePost <TicketCollection>(apiMethod, parameters.ToString()); return(tickets.Count > 0 ? tickets[0] : null); }
public static Ticket MapToTicket(TicketRequest ticketRequest) { return(new Ticket() { Id = ticketRequest.Id, Owner = ticketRequest.Owner, EventName = ticketRequest.EventName }); }
public async Task <bool> ReserveTickets(int[] tickets) { var client = new TicketMessageService.TicketMessageServiceClient(_channelProvider.ProvideChannel()); var request = new TicketRequest(); request.TicketIds.Add(tickets); var response = await client.ReserveTicketsAsync(request); return(response.Success); }
public Ticket CreateTicket(TicketRequest ticket) { var entityToInsert = new Ticket() { }; MergeTicket(entityToInsert, ticket); TicketRepository.Insert(entityToInsert); return(entityToInsert); }
public async Task <SendMessageResponse> SendMessageToSqsQueue(TicketRequest request) { SendMessageRequest sendMessageRequest = new SendMessageRequest { QueueUrl = "https://sqs.eu-west-1.amazonaws.com/891123523376/TicketRequest", MessageBody = request.Serialize(request) }; return(await _amazonSqsClient.SendMessageAsync(sendMessageRequest)); }
public async Task <IActionResult> SendMessage(TicketRequest request) { var response = await sqsService.SendMessageToSqsQueue(request); if (response == null) { return(BadRequest()); } return(Ok()); }
/// <summary> /// Return print ticket in Cloud Job Ticket (CJT) format for the print job (for GCP 2.0, currently not implemented since the need of cdd) /// Reference: https://developers.google.com/cloud-print/docs/proxyinterfaces#fetch /// </summary> /// <param name="jobId">The id of the job</param> /// <param name="cancellationToken">Cancellation token</param> /// <returns>The print ticket</returns> public async Task <CloudJobTicket> GetCloudJobTicketAsync(TicketRequest request, CancellationToken cancellationToken = default(CancellationToken)) { await UpdateTokenAsync(cancellationToken); return(await GoogleCloudPrintBaseUrl .AppendPathSegment("ticket") .WithOAuthBearerToken(_token.AccessToken) .PostUrlEncodedAsync(new { jobid = request.JobId, use_cjt = request.UseCjt }, cancellationToken) .ReceiveJsonButThrowIfFails <CloudJobTicket>() .ConfigureAwait(false)); }
public async Task RaiseTicketAsync_WhenTicketRequestIsCreated_ShouldReturnId() { // Arrange TicketRequest request = new TicketRequest("foo", "foo", 1); // Act int actualId = await this.sut.RaiseTicketAsync(request); // Assert actualId.Should().Be(createdTicketRequestId); }
public async Task <SendMessageResponse> SendMessageToSqsQueue(TicketRequest request) { var sendMessageRequest = new SendMessageRequest { //demo QueueUrl = "https://sqs.us-east-1.amazonaws.com/.../sqs_name", MessageBody = request.Serialize() }; return(await SqsClient.SendMessageAsync(sendMessageRequest)); }
public async Task <ActionResult <TicketResponse> > SendMessage([FromBody] TicketRequest ticketRequest) { var response = await _sqsService.SendMessageToSqsQueue(ticketRequest); if (response == null) { return(BadRequest()); } return(Ok(response)); }
public void Put_Called_BuildsUri() { // Given var request = new TicketRequest { Item = new Ticket { Subject = "blah blah", Id = 123 } }; var ticketResource = new TicketResource(_client.Object); // When ticketResource.Put(request); // Then _client.Setup(b => b.BuildUri(It.IsAny<string>(), "")); }
public void UpdateTicket_TemplateGroupName() { var ticketRequest = new TicketRequest { Id = 39, TemplateGroupName = "templatename" }; const string parameters = "templategroup=templatename"; this.UpdateTicketRequest(parameters, ticketRequest); }
private void UpdateTicketRequest(string parameters, TicketRequest ticketRequest) { var apiMethod = string.Format("/Tickets/Ticket/{0}", ticketRequest.Id); this.kayakoApiRequest.Setup(x => x.ExecutePut <TicketCollection>(apiMethod, parameters)).Returns(this.responseTicketCollection); var ticket = this.ticketController.UpdateTicket(ticketRequest); this.kayakoApiRequest.Verify(x => x.ExecutePut <TicketCollection>(apiMethod, parameters), Times.Once()); Assert.That(ticket, Is.EqualTo(this.responseTicketCollection.FirstOrDefault())); }
public async Task <string> Update(TicketRequest request) { var json = JsonConvert.SerializeObject(request); var httpContent = new StringContent(json, Encoding.UTF8, "application/json"); var client = _httpClientFactory.CreateClient(); client.BaseAddress = new Uri("https://localhost:5001"); var response = await client.PostAsync("api/Ticket/Update", httpContent); return(await response.Content.ReadAsStringAsync()); }
private void CreateTicketRequest(string parameters, TicketRequest ticketRequest) { const string apiMethod = "/Tickets/Ticket"; this.kayakoApiRequest.Setup(x => x.ExecutePost <TicketCollection>(apiMethod, parameters)).Returns(this.responseTicketCollection); var ticket = this.ticketController.CreateTicket(ticketRequest); this.kayakoApiRequest.Verify(x => x.ExecutePost <TicketCollection>(apiMethod, parameters), Times.Once()); Assert.That(ticket, Is.EqualTo(this.responseTicketCollection.FirstOrDefault())); }
public void UpdateTicket_TemplateGroupId() { var ticketRequest = new TicketRequest { Id = 39, TemplateGroupId = 1 }; const string parameters = "templategroup=1"; UpdateTicketRequest(parameters, ticketRequest); }
public async Task <SendMessageResponse> SendMessageToSqsQueue(TicketRequest request) { var sendMessageRequest = new SendMessageRequest() { QueueUrl = @"https://sqs.us-west-2.amazonaws.com/959393741857/TicketRequest", MessageBody = request.Serialize() }; var response = await _amazonSQS.SendMessageAsync(sendMessageRequest); return(response); }
public async Task <IActionResult> CreateTicketAsync([FromBody] TicketRequest ticket, [FromQuery] Guid?token) { // // Note: // We are mocking out the use of user authorization tokens in this project. This would not be a secure model // in the real world. We would want to implement a proper identity server to handle JWT. // // Example: // https://developer.okta.com/blog/2018/03/23/token-authentication-aspnetcore-complete-guide // http://hamidmosalla.com/2017/12/07/policy-based-authorization-using-asp-net-core-2-identityserver4/ IActionResult response = null; try { if (token == null) { throw new SessionNotFoundException("User session token not provided."); } UserSession userSession = await this.SessionManager.GetSessionAsync(token.Value) .ConfigureAwait(false); Ticket newTicket = new Ticket { Description = ticket.Description, Title = ticket.Title }; Ticket ticketCreated = await this.TicketManager.CreateTicketAsync(userSession, newTicket) .ConfigureAwait(false); response = this.Ok(ticketCreated); } catch (UnauthorizedAccessException exc) { response = this.Forbid(exc.Message); } catch (AccountNotFoundException) { response = this.Unauthorized(); } catch (SessionNotFoundException) { response = this.Unauthorized(); } catch (Exception exc) { response = this.InternalServerError(exc.Message); } return(response); }
public void Setup() { _kayakoApiRequest = new Mock <IKayakoApiRequest>(); _ticketController = new TicketController(_kayakoApiRequest.Object); _responseTicketCollection = new TicketCollection { new Ticket() }; _createTicketRequestRequiredFields = new TicketRequest { Subject = "Subject", FullName = "Fullname", Email = "*****@*****.**", Contents = "Contents", DepartmentId = 1, TicketStatusId = 2, TicketPriorityId = 3, TicketTypeId = 4 }; _createTicketRequiredFieldsParameters = "subject=Subject&fullname=Fullname&[email protected]&contents=Contents&departmentid=1&ticketstatusid=2&ticketpriorityid=3&tickettypeid=4"; _responseTicketCustomFields = new TicketCustomFields { FieldGroups = new List <TicketCustomFieldGroup> { new TicketCustomFieldGroup { Id = 1, Title = "Title", Fields = new[] { new TicketCustomField { Type = TicketCustomFieldType.Text, Name = "FieldName1", FieldContent = "content1" }, new TicketCustomField { Type = TicketCustomFieldType.Text, Name = "FieldName2", FieldContent = "content2" } } } } }; }
public async Task <IActionResult> Delete(TicketRequest request) { try { var response = await _ticketApiClient.Delete(request); return(RedirectToAction("index")); } catch { return(View()); } }
public void ApplyOrderRuleCanHostRequestTest() { var layout = new List <string> { "2 3", "3 4 5", "6 7 8" }; Theatre.Instance.ParseLayout(layout); var ticketRequest = new TicketRequest { PartyName = "Test1", TicketCount = 3 }; Assert.DoesNotThrow(() => Theatre.Instance.ApplyRule(ticketRequest)); }
public void Put_TicketHasNoId_ThrowsException() { // Given var response = new TicketResponse { Item = new Ticket { Subject = "blah blah" } }; var request = new TicketRequest { Item = new Ticket { Subject = "blah blah" } }; _client.Setup(b => b.Put<TicketResponse>(It.IsAny<Uri>(), request, "application/json")).Returns(response); var ticketResource = new TicketResource(_client.Object); // When, Then Assert.Throws<ArgumentException>(() => ticketResource.Put(request)); }
public void Put_CalledWithTicket_ReturnsTicketReponse() { // Given var response = new TicketResponse { Item = new Ticket { Subject = "blah blah" } }; var request = new TicketRequest { Item = new Ticket { Subject = "blah blah", Id = 123 } }; _client.Setup(b => b.Put<TicketResponse>(It.IsAny<Uri>(), request, "application/json")).Returns(response); var ticketResource = new TicketResource(_client.Object); // When var result = ticketResource.Put(request); // Then Assert.That(result, Is.EqualTo(response)); }