using Lib;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Script.Serialization;
using Model;
using Common;
using Json;
using BLL;
using BLL.DAL;
using System.Collections;

namespace wms.Areas.BasicInfo.Controllers
{
    public class PackingAjaxController : AjaxPage
    {
        // GET: BasicInfo/PackingAjax
        public ActionResult GetPackingList()
        {
            var dd = Request["ajaxdata"];

            var models = new JavaScriptSerializer().Deserialize<Packing>(dd);



            if (models != null)
            {
                PageInfo pageInfo = new PageInfo() { PageIndex = models.pageIndex, PageSize = models.pageSize };


                DALPacking provider = new DALPacking();

                List<Packing> entity = provider.GetPackingList(models, ref pageInfo).ToList();

                string json = JsonHelper.IListToJson<Packing>(entity, "List");
                string pjson = ConvertJson.Serializer(pageInfo);

                ReturnJson.AddProperty("Result", new JsonObject(json));
                ReturnJson.AddProperty("PageInfo", new JsonObject(pjson));
                ReturnJson.AddProperty("Code", 1);
                ReturnJson.AddProperty("Message", "响应成功");
                ReturnJson.AddProperty("SubCode", 0);
                ReturnJson.AddProperty("SubMessage", "");

                return Content(this.ReturnJson.ToString());


            }
            return Content(null);
        }
        public ActionResult AddPacking()
        {


            var dd = Request["ajaxdata"];
            var models = new JavaScriptSerializer().Deserialize<Packing>(dd);
            string Operation = models.Operation;


            if (models != null)
            {

                DALPacking provider = new DALPacking();
                if (Operation == "Add")
                {
                    models.CreateUser = this.LoginUserCode;
                    if (!provider.IsExist(nameof(models.PackingCode), models.PackingCode) && !provider.IsExist(nameof(models.PackingName), models.PackingName))
                    {
                        bool value = provider.Add(models, this.LoginUserCode);

                        if (value)
                        {
                            ReturnJson.AddProperty("Code", 1);
                            ReturnJson.AddProperty("Message", "添加装箱信息成功");
                            ReturnJson.AddProperty("SubCode", 0);
                            ReturnJson.AddProperty("SubMessage", "");
                        }
                        else
                        {
                            ReturnJson.AddProperty("Code", -1);
                            ReturnJson.AddProperty("Message", "添加装箱信息失败");
                            ReturnJson.AddProperty("SubCode", 0);
                            ReturnJson.AddProperty("SubMessage", "");
                        }
                    }
                    else
                    {
                        ReturnJson.AddProperty("Code", -1);
                        ReturnJson.AddProperty("Message", "该装箱信息已存在!");
                        ReturnJson.AddProperty("SubCode", 0);
                        ReturnJson.AddProperty("SubMessage", "");
                    }
                }
                else if (Operation == "Edit")
                {
                    //models.UpdateUser = this.LoginUserCode;
                    bool value = provider.Update(models);

                    if (value)
                    {
                        ReturnJson.AddProperty("Code", 1);
                        ReturnJson.AddProperty("Message", "编辑装箱信息成功");
                        ReturnJson.AddProperty("SubCode", 0);
                        ReturnJson.AddProperty("SubMessage", "");
                    }
                    else
                    {
                        ReturnJson.AddProperty("Code", -1);
                        ReturnJson.AddProperty("Message", "编辑装箱信息失败");
                        ReturnJson.AddProperty("SubCode", 0);
                        ReturnJson.AddProperty("SubMessage", "");
                    }
                }

            }
            else
            {
                ReturnJson.AddProperty("Code", -1);
                ReturnJson.AddProperty("Message", "装箱信息有误!!!");
                ReturnJson.AddProperty("SubCode", 0);
                ReturnJson.AddProperty("SubMessage", "");
            }
            return Content(this.ReturnJson.ToString());
        }
        public ActionResult DeletePacking()
        {
            string dd = Request["list"];
            ArrayList models = new JavaScriptSerializer().Deserialize<ArrayList>(dd);
            string[] list = (string[])models.ToArray(typeof(string));
            if (models != null)
            {
                DALPacking provider = new DALPacking();
                bool value = provider.BatchDelete(list);

                if (value)
                {
                    ReturnJson.AddProperty("Code", 1);
                    ReturnJson.AddProperty("Message", "删除装箱信息成功");
                    ReturnJson.AddProperty("SubCode", 0);
                    ReturnJson.AddProperty("SubMessage", "");
                }
                else
                {
                    ReturnJson.AddProperty("Code", -1);
                    ReturnJson.AddProperty("Message", "删除装箱信息失败");
                    ReturnJson.AddProperty("SubCode", 0);
                    ReturnJson.AddProperty("SubMessage", "");
                }

                return Content(this.ReturnJson.ToString());
            }
            return Content(null);
        }
    }

   
}