// GET: ProductCode
        public ActionResult Index()
        {
            ActiveDirectoryWeb ad = new ActiveDirectoryWeb();

            string[] usr = ad.SearchActiveDirectory(HttpContext.User.Identity.Name).Split('|');
            ViewBag.IsAdmin = DataAccess.AdminAccess(usr[1]);

            IEnumerable <ProductCode> pc = ProductCodeDataAccess.GetProductCodes();

            return(View(pc));
        }
        public ActionResult EditProductCode(ProductCode pc)
        {
            ActiveDirectoryWeb ad = new ActiveDirectoryWeb();

            string[] usr = ad.SearchActiveDirectory(HttpContext.User.Identity.Name).Split('|');
            ViewBag.IsAdmin = DataAccess.AdminAccess(usr[1]);

            string logI = HttpContext.User.Identity.Name;

            ProductCodeDataAccess.UpdateProductCode(pc, logI);
            return(RedirectToAction("Index"));
        }
        public ActionResult EditProductCode(string pId)
        {
            ActiveDirectoryWeb ad = new ActiveDirectoryWeb();

            string[] usr = ad.SearchActiveDirectory(HttpContext.User.Identity.Name).Split('|');
            ViewBag.IsAdmin = DataAccess.AdminAccess(usr[1]);

            ProductCode Pc = ProductCodeDataAccess.GetProductCode(pId);

            ViewBag.ScriptTemplate = new SelectList(ScriptDataAccess.GetScripts(), "ScriptTemplate", "ScriptName", Pc.ScriptTemplate);
            return(View(Pc));
        }
        public ActionResult UploadProducts(HttpPostedFileBase file, List <ProductCode> model, string Submit)
        {
            ActiveDirectoryWeb ad = new ActiveDirectoryWeb();

            string[] usr = ad.SearchActiveDirectory(HttpContext.User.Identity.Name).Split('|');
            ViewBag.IsAdmin = DataAccess.AdminAccess(usr[1]);

            string             logI   = HttpContext.User.Identity.Name;
            List <ProductCode> pcs    = new List <ProductCode>();
            List <ProductCode> RetPcs = new List <ProductCode>();
            string             err;

            if (Submit == "Upload")
            {
                try
                {
                    pcs = LoadProductCodes(file, out err);

                    if (err == null)
                    {
                        foreach (ProductCode pc in pcs)
                        {
                            bool exist = ProductCodeDataAccess.CheckIfExist(pc.PCode);
                            if (exist == false)
                            {
                                RetPcs.Add(pc);
                            }
                        }

                        //future function
                        //foreach (ProductCode pc in pcs)
                        //{
                        //    bool forUpdating = ProductCodeDataAccess.CheckIfForUpdating(pc);
                        //    if (forUpdating == true)
                        //    {
                        //        RetPcs.Add(pc);
                        //    }
                        //}
                    }
                    else
                    {
                        ViewData["Error"] = err;
                        return(View());
                    }
                }
                catch (Exception ex)
                {
                    ViewData["Error"] = ex.Message;
                    return(View());
                }
                if (RetPcs.Count() <= 0)
                {
                    ViewData["Error"] = "No New ProductCode Found!";
                }
                ViewBag.ScriptTemplate = new SelectList(ScriptDataAccess.GetScripts(), "ScriptTemplate", "ScriptName");
                return(View(RetPcs));
            }
            else
            {
                if (model != null)
                {
                    foreach (ProductCode pc in model)
                    {
                        try
                        {
                            ProductCodeDataAccess.InsertProduct(pc, logI.Split('\\').LastOrDefault());
                        }
                        catch (Exception ex)
                        {
                            ViewData["Error"]      = ex.Message;
                            ViewBag.ScriptTemplate = new SelectList(ScriptDataAccess.GetScripts(), "ScriptTemplate", "ScriptName");
                            return(View(model));
                        }
                    }
                }
                ViewData["Success"] = "Product Code Successfully uploaded!";
                return(RedirectToAction("Index"));
            }
        }