Exemple #1
0
        /// <summary>
        /// The Consolidate method will implemented all the logic to group orders under some criteria for retrieve a list of shipments updated
        /// </summary>
        /// <returns>The <see cref="IList{ShipmentDTO}"/></returns>
        public IList <ShipmentDTO> Consolidate()
        {
            var list         = _orderRepo.GetAll();
            var grouped      = list.GroupBy(x => x.DestinationState);
            var ids          = 10;
            var shipmentList = new List <ShipmentDTO>();

            foreach (var item in grouped)
            {
                item.ToList().ForEach(x =>
                {
                    totalWeigth += x.WeigthOrder;
                });
                var shipment = new ShipmentDTO()
                {
                    IdShipment        = ids++,
                    Orders            = Converters.Converter.Cast(item.ToList()),
                    Quantity          = item.ToList().Count,
                    TotalWeigthOrders = totalWeigth
                };
                shipmentList.Add(shipment);
                totalWeigth = 0;
            }

            _shipmentRepo.AddList(Converters.Converter.Cast(shipmentList));
            return(shipmentList);
        }
Exemple #2
0
        /// <summary>
        /// The Build method will do the logic to group all the orders and retrieve a list of loads
        /// </summary>
        /// <returns>The <see cref="IList{LoadDTO}"/></returns>
        public IList <LoadDTO> Build()
        {
            var shipments = _shipmentRepo.GetAll();
            var group     = shipments.GroupBy(x => x.TotalWeigthOrders).Where(s => s.Key <= 2800);
            var list      = new List <LoadDB>();

            foreach (var item in group)
            {
                item.ToList().ForEach(x => x.Orders.ToList().ForEach(z =>
                {
                    x.IdLoad = _ids;
                    z.IdLoad = _ids;
                    z.Status = "Loaded";
                    stops.Append(z.DestinationCity).Append(",");
                    _totalCost += z.CostOrder;
                    _orderRepo.Update(z.IdOrder, z);
                    _shipmentRepo.Update(x.IdShipment, x);
                }));

                var newObj = new LoadDB()
                {
                    IdLoad                = _ids,
                    TotalDistanceLoad     = _distance + 500,
                    StopsLoad             = stops.ToString(),
                    TruckLoad             = _truck,
                    Shipments             = item.ToList(),
                    QuantityShipmentsLoad = item.ToList().Count,
                    TotalCostLoad         = _totalCost
                };

                list.Add(newObj);
                stops      = new StringBuilder();
                _totalCost = 0;
                _ids++;
            }

            _loadRepo.AddList(list);
            return(Converters.Converter.Cast(list));
        }
Exemple #3
0
        /// <summary>
        /// 设置用户角色
        /// </summary>
        /// <param name="roleids"></param>
        public void SetRoles(string[] roleids, string userid)
        {
            //清空
            var persists = GetListByUserId(userid);
            var ids      = persists.Select(s => s.roleid).ToList();

            _data.RemoveList <UserRole>(ids);
            //增加
            if (roleids != null && roleids.Length > 0)
            {
                var list = new List <UserRole>();
                foreach (var id in roleids)
                {
                    var item = new UserRole()
                    {
                        Id = Guid.NewGuid().ToString(), userid = userid, roleid = id
                    };
                    list.Add(item);
                }
                _data.AddList <UserRole>(list); //更新MYSQL
                _cachce.SetList(list);          //同步缓存
            }
        }