public static void submitRequest(ICswResources CswResources, CswNbtRequestDataModel.CswRequestReturn Ret, CswNbtNode.Node Request)
        {
            CswNbtResources     NbtResources  = _validate(CswResources);
            CswNbtActRequesting ActRequesting = new CswNbtActRequesting(NbtResources);

            Ret.Data.Succeeded = ActRequesting.submitRequest(Request.NodeId, Request.NodeName);
        }
        /// <summary>
        /// WCF method to fulfill a Move Containers request
        /// </summary>
        public static void fulfillContainerMoveRequest(ICswResources CswResources, CswNbtRequestDataModel.CswRequestReturn Ret, CswNbtRequestDataModel.RequestFulfill Request)
        {
            CswNbtResources           NbtResources = _validate(CswResources);
            CswNbtObjClassRequestItem RequestItem  = NbtResources.Nodes[Request.RequestItemId];

            if (null != RequestItem)
            {
                Int32 ContainersMoved = moveContainers(NbtResources, RequestItem, Request);
                Ret.Data.Succeeded = ContainersMoved > 0;
                if (Ret.Data.Succeeded)
                {
                    if (CswTools.IsDouble(RequestItem.TotalMoved.Value))
                    {
                        RequestItem.TotalMoved.Value += ContainersMoved;
                    }
                    else
                    {
                        RequestItem.TotalMoved.Value = ContainersMoved;
                    }
                    RequestItem.Status.Value = CswNbtObjClassRequestItem.Statuses.Moved;
                    RequestItem.FulfillmentHistory.AddComment("Moved " + ContainersMoved + " containers to " +
                                                              CswNbtNode.getNodeLink(RequestItem.Location.SelectedNodeId, RequestItem.Location.CachedFullPath));
                    RequestItem.postChanges(ForceUpdate: false);
                }
            }
        }
예제 #3
0
        public void resetCartCounts(string CartId)
        {
            //delegate has to be static because you can't create an instance yet: you don't have resources until the delegate is actually called
            CswNbtRequestDataModel.CswRequestReturn Ret = new CswNbtRequestDataModel.CswRequestReturn();
            var InitDriverType = new CswWebSvcDriver <CswNbtRequestDataModel.CswRequestReturn, string>(
                CswWebSvcResourceInitializer: new CswWebSvcResourceInitializerNbt(_Context, null),
                ReturnObj: Ret,
                WebSvcMethodPtr: (Resources, Obj, ParamObj) => CswNbtActRequesting.resetCartCounts(Resources),
                ParamObj: null
                );

            InitDriverType.run();
        }
예제 #4
0
        public CswNbtRequestDataModel.CswRequestReturn submitRequest(CswNbtNode.Node Request)
        {
            //delegate has to be static because you can't create an instance yet: you don't have resources until the delegate is actually called
            CswNbtRequestDataModel.CswRequestReturn Ret = new CswNbtRequestDataModel.CswRequestReturn();
            var InitDriverType = new CswWebSvcDriver <CswNbtRequestDataModel.CswRequestReturn, CswNbtNode.Node>(
                CswWebSvcResourceInitializer: new CswWebSvcResourceInitializerNbt(_Context, null),
                ReturnObj: Ret,
                WebSvcMethodPtr: CswNbtWebServiceRequesting.submitRequest,
                ParamObj: Request
                );

            InitDriverType.run();
            return(Ret);
        }
        /// <summary>
        /// WCF method to copy request items to recurring
        /// </summary>
        public static void copyRecurring(ICswResources CswResources, CswNbtRequestDataModel.CswRequestReturn Ret, CswNbtRequestDataModel.CswRequestReturn.Ret Request)
        {
            CswNbtResources NbtResources = _validate(CswResources);
            bool            Succeeded    = false;

            if (Request.RequestItems.Any())
            {
                CswNbtWebServiceRequesting ws  = new CswNbtWebServiceRequesting(NbtResources);
                CswNbtActRequesting        act = new CswNbtActRequesting(NbtResources);
                //So here we're getting the "Recurring" Request and copying the request items from the current request into there
                CswNbtObjClassRequest RequestNode = act.getRecurringRequestNode();
                applyCopyLogic        SetRequest  = (Item) =>
                {
                    Item.Request.RelatedNodeId = RequestNode.NodeId;
                    Item.IsRecurring.Checked   = CswEnumTristate.True;
                };
                Succeeded = ws.copyRequestItems(Request, SetRequest);
            }
            Ret.Data.Succeeded = Succeeded;
        }
        /// <summary>
        /// WCF method to create a favorite
        /// </summary>
        public static void createFavorite(ICswResources CswResources, CswNbtRequestDataModel.CswRequestReturn Ret, CswNbtRequestDataModel.CswRequestReturn.Ret Request)
        {
            CswNbtResources NbtResources = _validate(CswResources);
            bool            Succeeded    = false;

            //This webservice is being called in the webclient twice - once to create the temp, and again to save the changes
            //this is really awkward - all this webservice should really do is return the Nodetypeid needed to do a traditional add
            //...oh, but wait, we need to make sure Favorite is checked in this case (and ONLY in this case) - *sigh*
            if (null != Request && false == string.IsNullOrEmpty(Request.RequestId))
            {
                CswNbtObjClassRequest Favorite = NbtResources.Nodes[Request.RequestId];
                if (null != Favorite)
                {
                    Succeeded = true;
                    Favorite.PromoteTempToReal();
                }
            }
            else
            {
                CswNbtMetaDataObjectClass RequestOc = NbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.RequestClass);
                CswNbtMetaDataNodeType    RequestNt = RequestOc.getLatestVersionNodeTypes().FirstOrDefault();
                if (null != RequestNt)
                {
                    CswNbtObjClassRequest Favorite = NbtResources.Nodes.makeNodeFromNodeTypeId(RequestNt.NodeTypeId, IsTemp: true);
                    if (null != Favorite)
                    {
                        Favorite.IsFavorite.Checked = CswEnumTristate.True;
                        Favorite.Name.Text          = string.Empty;
                        Favorite.postChanges(ForceUpdate: false);
                        Succeeded = true;
                        CswPropIdAttr NameIdAttr = new CswPropIdAttr(Favorite.Node, Favorite.Name.NodeTypeProp);
                        Ret.Data.CswRequestId   = Favorite.NodeId;
                        Ret.Data.CswRequestName = NameIdAttr;
                    }
                }
            }
            Ret.Data.Succeeded = Succeeded;
        }
        /// <summary>
        /// WCF method to copy a favorite to the current cart
        /// </summary>
        public static void copyFavorite(ICswResources CswResources, CswNbtRequestDataModel.CswRequestReturn Ret, CswNbtRequestDataModel.CswRequestReturn.Ret Request)
        {
            CswNbtResources NbtResources = _validate(CswResources);
            bool            Succeeded    = false;

            //...I have no idea what the difference is between Request.RequestId and Request.CswRequestId
            //I think they both refer to the current cart,
            //but then how are we differentiating between the current Request and the Favorite Request?
            if (CswTools.IsPrimaryKey(Request.CswRequestId) && Request.RequestItems.Any())
            {
                CswNbtObjClassRequest RequestNode = NbtResources.Nodes[Request.CswRequestId];
                if (null != RequestNode)
                {
                    CswNbtWebServiceRequesting ws         = new CswNbtWebServiceRequesting(NbtResources);
                    applyCopyLogic             SetRequest = (Item) =>
                    {
                        Item.Status.Value          = CswNbtObjClassRequestItem.Statuses.Pending;
                        Item.Request.RelatedNodeId = RequestNode.NodeId;
                    };
                    Succeeded = ws.copyRequestItems(Request, SetRequest);
                }
            }
            Ret.Data.Succeeded = Succeeded;
        }