public Response <OrderViewDTO> GetOrderBy(SearchDTO request) { OrderViewDTO result = null; BusinessProcess.Current.Process(p => { result = IoC.Get <IOrderBusiness>().GetOrderBy(request); }); return(BusinessProcess.Current.ToResponse(result)); }
public Response <OrderViewDTO> AddOrderDetail(OrderDTO dto) { OrderViewDTO result = null; BusinessProcess.Current.Process(p => { result = IoC.Get <IOrderBusiness>().AddOrderDetail(dto); }); return(BusinessProcess.Current.ToResponse(result)); }
public IHttpActionResult EditOrder([FromBody] OrderViewDTO order) { try { var identity = (ClaimsIdentity)User.Identity; var name = identity.Claims.Where(x => x.Type == ClaimTypes.Name).Single().Value; return(Ok(_business.Update(order, name))); } catch { return(Ok(false)); } }
public bool Update(OrderViewDTO data, string name) { var order = _repo.GetById(data.ID); order.Address = data.Address; order.CreatedDate = data.CreatedDate; order.ID = data.ID; order.IsPaid = data.IsPaid; order.ModifiedDate = data.ModifiedDate; order.Note = data.Note; order.OrderCode = data.OrderCode; order.Price = data.Price; order.StatusID = data.StatusID; if (order.StatusID == COMPLETE) { var mess = new MessageDTO(); mess.MessageType = TYPE_ORDER; mess.IsRead = false; if (order.ParentId.HasValue) { mess.DataID = order.ParentId.Value; mess.SentID = _repo.GetById(order.ParentId.Value).UserID.Value; mess.Description = "Your order " + order.ParentId.Value + " is completed."; } else { mess.DataID = data.ID; mess.SentID = data.UserID.Value; mess.Description = "Your order " + order.ID + " is completed."; } mess.CreatedDate = DateTime.Now; mess.FromID = _user.FindUser(name).ID; _message.CreateMessage(mess); } order.StoreId = data.StoreId; order.Total = data.Total; var result = _repo.UpdateOrder(order); return(result); }
public bool CheckOut(OrderViewDTO order, string username) { var dto = new OrderDTO(); int userId = _user.FindUser(username).ID; dto.ID = order.ID; dto.ModifiedDate = DateTime.Now; dto.ModifiedID = userId; dto.Note = order.Note; dto.OrderCode = order.OrderCode; dto.StatusID = PROCESSING; dto.Total = 0; dto.UserID = userId; dto.CityID = _city.GetByName(order.City).Id; dto.CountryID = _country.GetByName(order.Country).Id; var DisString = order.District.Split('.'); if (DisString.Length > 1) { dto.DistrictID = _district.GetByName(DisString[1]).Id; } else if (DisString.Length == 1) { dto.DistrictID = _district.GetByName(DisString[0]).Id; } dto.Address = order.Address; if (order.StoreId != null) { dto.StoreId = order.StoreId.Value; dto.Total = dto.Price; foreach (var detail in order.details) { dto.Total = dto.Total + (detail.Quantity * detail.Price); dto.Price = dto.Price + (detail.Quantity * detail.Weight); } dto.Price = dto.Price * 5; var result = _repo.UpdateOrder(dto.Translate <OrderDTO, Order>()); if (result) { var mess = new MessageDTO(); mess.Description = "Order " + order.ID + " is checked out."; mess.FromID = userId; mess.SentID = _repo.GetById(order.ID).Store.UserID; mess.MessageType = STORE_ORDER; mess.DataID = order.StoreId; _message.CreateMessage(mess); } return(result); } else { var details = new ConcurrentDictionary <int, OrderDetail>(); foreach (var d in _detail.GetByOrderId(order.ID).ToList()) { details.TryAdd(d.ID, d); } try { foreach (var d in details) { var newOrder = new OrderDTO(); newOrder.OrderCode = order.OrderCode; newOrder.StatusID = PROCESSING; newOrder.ModifiedDate = DateTime.Now; newOrder.ModifiedID = 1; newOrder.CreatedDate = DateTime.Now; newOrder.UserID = null; newOrder = _repo.Create(newOrder.Translate <OrderDTO, Order>()).Translate <Order, OrderDTO>(); newOrder.Address = dto.Address; newOrder.CityID = dto.CityID; newOrder.DistrictID = dto.DistrictID; newOrder.CountryID = dto.CountryID; newOrder.StoreId = d.Value.Product.StoreID; newOrder.ParentId = order.ID; newOrder.Total = newOrder.Price; var childDetails = _detail.GetByStoreId(d.Value.Product.StoreID, order.ID); foreach (var c in childDetails) { var child = _detail.GetById(c.ID); child.ModifiedDate = DateTime.Now; child.OrderID = newOrder.ID; _detail.EditDetail(child); var temp = d.Value; newOrder.Total = newOrder.Total + (c.Quantity.Value * c.Product.Price.Value); newOrder.Price = newOrder.Price + (c.Quantity.Value * c.Product.Weight); details.TryRemove(c.ID, out temp); } newOrder.Price = 5 * newOrder.Price; _repo.UpdateOrder(newOrder.Translate <OrderDTO, Order>()); var mess = new MessageDTO(); mess.Description = "checked out order " + newOrder.ID; mess.FromID = userId; mess.SentID = _repo.GetById(newOrder.ID).Store.UserID; mess.MessageType = STORE_ORDER; mess.DataID = newOrder.StoreId; _message.CreateMessage(mess); dto.Total = dto.Total + newOrder.Total; } dto.StoreId = null; dto.ParentId = null; var result = _repo.UpdateOrder(dto.Translate <OrderDTO, Order>()); return(result); } catch (Exception e) { Console.WriteLine(e.StackTrace); return(false); } } }