コード例 #1
0
ファイル: OrderService.cs プロジェクト: haichay88/lunchbox
        public Response <OrderViewDTO> GetOrderBy(SearchDTO request)
        {
            OrderViewDTO result = null;

            BusinessProcess.Current.Process(p =>
            {
                result = IoC.Get <IOrderBusiness>().GetOrderBy(request);
            });

            return(BusinessProcess.Current.ToResponse(result));
        }
コード例 #2
0
ファイル: OrderService.cs プロジェクト: haichay88/lunchbox
        public Response <OrderViewDTO> AddOrderDetail(OrderDTO dto)
        {
            OrderViewDTO result = null;

            BusinessProcess.Current.Process(p =>
            {
                result = IoC.Get <IOrderBusiness>().AddOrderDetail(dto);
            });

            return(BusinessProcess.Current.ToResponse(result));
        }
コード例 #3
0
 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));
     }
 }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
                }
            }
        }