public async Task <IEnumerable <GetOrderModelOut> > GetByCustomerAsync(GetOrderByCustomerModelIn modelIn) { //set yy-mm-dd modelIn.StartDate = new DateTime(modelIn.StartDate.Year, modelIn.StartDate.Month, modelIn.StartDate.Day); modelIn.EndDate = new DateTime(modelIn.EndDate.Year, modelIn.EndDate.Month, modelIn.EndDate.Day); var ret = db.Database.SqlQuery <GetOrderModelOut>("SELECT * FROM v_order WHERE CustomerId=@CustomerId AND OrderDate BETWEEN @StartDate AND @EndDate", new SqlParameter("CustomerId", modelIn.CustomerId), new SqlParameter("StartDate", modelIn.StartDate), new SqlParameter("EndDate", modelIn.EndDate) ); var list = await ret.ToListAsync(); if (list.Count > 0) { list.ForEach(o => { var retDetail = db.Database.SqlQuery <GetOrderDetailModelOut>($"SELECT * FROM v_order_detail WHERE OrderId={o.OrderId}"); var _details = retDetail.ToList(); o.OrderDetails = _details; }); } return(list); }
public async Task <IHttpActionResult> GetByCustomer(GetOrderByCustomerModelIn modelIn) { try { if (modelIn.IsNull()) { return(BadRequest(new ApiMessageResponse <IEnumerable <GetOrderModelOut> >("Modelo Inválido"))); } if (!ModelState.IsValid) { var errors = ModelState.GetModelErrors(); return(BadRequest(new ApiMessageResponse <IEnumerable <GetOrderModelOut> >(ModelState.StringifyModelErrors()))); } OrderService _orderService = new OrderService(); return(Ok(new ApiMessageResponse <IEnumerable <GetOrderModelOut> >(await _orderService.GetByCustomerAsync(modelIn)))); } catch (Exception ex) { return(BadRequest(new ApiMessageResponse <IEnumerable <GetOrderModelOut> >(ex.GetFirstException().Message))); } }