public async Task <int> CreateOrder(int userid, CreateorderPayload createorderPayload) { List <Task> addticketstoorder = new List <Task>(); var order = new Order(); order.Orderitems = createorderPayload.Ordertoreserve; var occurrencedateintid = await WithConnection(async c => { return(c.Query <int>("select Activity_occurrence_id from Activity_occurrence where Activity_id = @activityid and Start_datetime = @activitydate", new { activityid = createorderPayload.Activityid, @activitydate = createorderPayload.Activityoccurrencedate }, commandType: CommandType.Text).FirstOrDefault()); }); var orderid = await WithConnection(async c => { DynamicParameters parameters = new DynamicParameters(); parameters.Add("@activityoccurrenceid", occurrencedateintid, DbType.Int32); parameters.Add("@userid", userid, DbType.Int32); parameters.Add("@amount", order.Orderamount, DbType.Int32); parameters.Add("@output", DbType.Int32, direction: ParameterDirection.Output); await c.ExecuteAsync("Createorder", parameters, commandType: CommandType.StoredProcedure); int output = parameters.Get <int>("@output"); return(output); }); foreach (var ticket in createorderPayload.Ordertoreserve) { ICurrency currency = null; await new TicketRepository(_config).AddTickettoorder(occurrencedateintid, orderid, ticket.Id, ticket.Quantity); } //await Task.WhenAll(addticketstoorder); return(orderid); }
public async Task <IActionResult> Createorder([FromBody] CreateorderPayload value) { if (ModelState.IsValid) { int orderid; var sessionId = HttpContext.Session.Id; if (User.Identity.Name != null) { int userid = int.Parse(User.Identity.Name); orderid = await _orderRepository.CreateOrder(userid, value); return(RedirectToAction("Get", new { id = orderid, userid = userid })); } else { var user = new AppUser { UserName = Guid.NewGuid().ToString() }; //var Usercreated = await _userManager.CreateAsync(user, Guid.NewGuid().ToString()); orderid = await _orderRepository.CreateOrder(user.Id, value); return(RedirectToAction("Get", new { id = orderid, userid = user.Id })); } } else { return(BadRequest(modelState: ModelState)); } }