using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.Http;
using Yavsc.Model.WorkFlow;
using System.Collections.Specialized;
using Yavsc.Model.FrontOffice;
namespace Yavsc.ApiControllers
{
///
/// Basket controller.
/// Maintains a collection of articles
/// qualified with name value pairs
///
public class BasketController : ApiController
{
///
/// The wfmgr.
///
protected WorkFlowManager wfmgr = null;
///
/// Initialize the specified controllerContext.
///
/// Controller context.
protected override void Initialize (System.Web.Http.Controllers.HttpControllerContext controllerContext)
{
base.Initialize (controllerContext);
wfmgr = new WorkFlowManager ();
}
///
/// Gets the current basket, creates a new one, if it doesn't exist.
///
/// The current basket.
protected CommandSet CurrentBasket {
get {
CommandSet b = wfmgr.GetCommands (Membership.GetUser ().UserName);
if (b == null) b = new CommandSet ();
return b;
}
}
///
/// Create the specified basket item using specified command parameters.
///
/// Command parameters.
[Authorize]
public long Create(NameValueCollection cmdParams)
{
// HttpContext.Current.Request.Files
Command cmd = new Command(cmdParams, HttpContext.Current.Request.Files);
CurrentBasket.Add (cmd);
return cmd.Id;
}
///
/// Read the specified basket item.
///
/// Itemid.
[Authorize]
Command Read(long itemid){
return CurrentBasket[itemid];
}
///
/// Update the specified item parameter using the specified value.
///
/// Item identifier.
/// Parameter name.
/// Value.
[Authorize]
public void UpdateParam(long itemid, string param, string value)
{
CurrentBasket [itemid].Parameters [param] = value;
}
///
/// Delete the specified item.
///
/// Item identifier.
[Authorize]
public void Delete(long itemid)
{
CurrentBasket.Remove (itemid);
}
}
}