public ActionResult Edit(string id)
        {
            DirectEmployerClientCampusProgramClient programclient = new DirectEmployerClientCampusProgramClient();
            DirectEmployerClientCampusProgram       program       = programclient.GetByRowKey(id);

            program.PostedDateTime = DateTime.UtcNow;

            DirectEmployerClientCampusClient campusclient = new DirectEmployerClientCampusClient();
            DirectEmployerClientCampus       campus       = campusclient.GetByRowKey(program.CampusRowKey);

            ViewBag.Campus = campus;

            DirectEmployerClientClient dscc = new DirectEmployerClientClient();

            ViewBag.Client = dscc.GetByRowKey(program.ClientRowKey);

            ViewBag.GeoAddStates      = BlobStringManager.Instance.GetString("skillcowemployerprogramgeoindex", "AddStates", id);
            ViewBag.GeoAddZips        = BlobStringManager.Instance.GetString("skillcowemployerprogramgeoindex", "AddZips", id);
            ViewBag.GeoSubtractStates = BlobStringManager.Instance.GetString("skillcowemployerprogramgeoindex", "SubtractStates", id);
            ViewBag.GeoSubtractZips   = BlobStringManager.Instance.GetString("skillcowemployerprogramgeoindex", "SubtractZips", id);

            ViewBag.Html = BlobStringManager.Instance.GetString("skillcowjobs", "HTML", id);

            return(View(program));
        }
        public ActionResult Delete(string id)
        {
            DirectEmployerClientCampusProgramClient programclient = new DirectEmployerClientCampusProgramClient();
            DirectEmployerClientCampusProgram       program       = programclient.GetByRowKey(id);

            //Unpublish
            string currentGeoAddStates      = BlobStringManager.Instance.GetString("skillcowemployerprogramgeoindex", "AddStates", id);
            string currentGeoAddZips        = BlobStringManager.Instance.GetString("skillcowemployerprogramgeoindex", "AddZips", id);
            string currentGeoSubtractStates = BlobStringManager.Instance.GetString("skillcowemployerprogramgeoindex", "SubtractStates", id);
            string currentGeoSubtractZips   = BlobStringManager.Instance.GetString("skillcowemployerprogramgeoindex", "SubtractZips", id);

            List <string> currentcategories = new List <string>();

            if (program.ProgramCategories != null)
            {
                currentcategories = new List <string>(program.ProgramCategories.Split(','));
            }

            GeoIndexNationalClient addnational = new GeoIndexNationalClient();

            foreach (string programcategory in currentcategories)
            {
                addnational.RemoveProgram(programcategory, program.RowKey);

                RemoveProgramCategory("AddStates", currentGeoAddStates, programcategory.Trim(), program.RowKey, new GeoIndexAddStateClient());
                RemoveProgramCategory("AddZips", currentGeoAddZips, programcategory.Trim(), program.RowKey, new GeoIndexAddZipClient());
                RemoveProgramCategory("SubtractStates", currentGeoSubtractStates, programcategory.Trim(), program.RowKey, new GeoIndexSubtractStateClient());
                RemoveProgramCategory("SubtractZips", currentGeoSubtractZips, programcategory.Trim(), program.RowKey, new GeoIndexSubtractZipClient());
            }

            programclient.Delete(program);

            BlobStringManager.Instance.DeleteString(id, "skillcowemployerprogramgeoindex", "AddStates");
            BlobStringManager.Instance.DeleteString(id, "skillcowemployerprogramgeoindex", "AddZips");
            BlobStringManager.Instance.DeleteString(id, "skillcowemployerprogramgeoindex", "SubtractStates");
            BlobStringManager.Instance.DeleteString(id, "skillcowemployerprogramgeoindex", "SubtractZips");

            return(RedirectToAction("Edit", "DirectEmployerClientCampuses", new { id = program.CampusRowKey }));
        }
        public ActionResult Edit(string id, DirectEmployerClientCampusProgram updateditem)
        {
            DirectEmployerClientCampusProgramClient programclient = new DirectEmployerClientCampusProgramClient();
            DirectEmployerClientCampusProgram       currentitem   = programclient.GetByRowKey(updateditem.RowKey);

            if (updateditem.GeoAddNational == null)
            {
                updateditem.GeoAddNational = "";
            }
            if (updateditem.GeoAddStates == null)
            {
                updateditem.GeoAddStates = "";
            }
            if (updateditem.GeoAddZips == null)
            {
                updateditem.GeoAddZips = "";
            }
            if (updateditem.GeoSubtractStates == null)
            {
                updateditem.GeoSubtractStates = "";
            }
            if (updateditem.GeoSubtractZips == null)
            {
                updateditem.GeoSubtractZips = "";
            }



            try
            {
                AttributeMaskCalculator amc = new AttributeMaskCalculator();
                updateditem.AttributeMask = amc.GetMask(updateditem);

                ImportantThingsMaskCalculator itmc = new ImportantThingsMaskCalculator();
                updateditem.ImportantThingsMask = itmc.GetMask(updateditem);


                if (PublishGeoIndex2(currentitem, updateditem))
                {
                    BlobStringManager.Instance.SaveString(NullString(updateditem.Html), updateditem.RowKey, "skillcowjobs", "HTML");

                    object htmljson = new { html = updateditem.Html.ToJSONSafeString().Replace("'", "\'") };
                    BlobJsonResourceManager.Instance.SaveJsonResource("customhtml", "skillcowjobs", "JSON", updateditem.RowKey, htmljson.ToJSON());

                    updateditem.GeoAddStates      = "";
                    updateditem.GeoAddZips        = "";
                    updateditem.GeoSubtractStates = "";
                    updateditem.GeoSubtractZips   = "";
                    updateditem.Html = "";


                    programclient.Update(updateditem);

                    //Save LeadCap
                    LeadCapClient leadcapclient = new LeadCapClient();
                    LeadCap       leadcap       = leadcapclient.GetByRowKey(updateditem.RowKey);
                    bool          createnewcap  = false;
                    if (leadcap == null)
                    {
                        leadcap        = new LeadCap();
                        leadcap.RowKey = updateditem.RowKey;
                        createnewcap   = true;
                    }
                    leadcap.Total    = updateditem.TotalCap;
                    leadcap.Annually = updateditem.AnnualCap;
                    leadcap.Monthly  = updateditem.MonthlyCap;
                    leadcap.Weekly   = updateditem.WeeklyCap;
                    leadcap.Daily    = updateditem.DailyCap;
                    if (createnewcap)
                    {
                        leadcapclient.AddNewItem(leadcap);
                    }
                    else
                    {
                        leadcapclient.Update(leadcap);
                    }


                    //Create LeadCounter if doesn't exist
                    LeadCounterClient leadcounterclient = new LeadCounterClient();
                    LeadCounter       leadcounter       = leadcounterclient.GetByRowKey(updateditem.RowKey);
                    if (leadcounter == null)
                    {
                        leadcounter          = new LeadCounter();
                        leadcounter.RowKey   = updateditem.RowKey;
                        leadcounter.Total    = 0;
                        leadcounter.Annually = 0;
                        leadcounter.Monthly  = 0;
                        leadcounter.Weekly   = 0;
                        leadcounter.Daily    = 0;
                        leadcounterclient.AddNewItem(leadcounter);
                    }
                }
                else
                {
                    throw new Exception("Failed to publish GEO index");
                }

                return(RedirectToAction("Edit", "DirectEmployerClientCampusPrograms", new { id = updateditem.RowKey }));
            }
            catch
            {
                DirectEmployerClientCampusClient campusclient = new DirectEmployerClientCampusClient();
                DirectEmployerClientCampus       campus       = campusclient.GetByRowKey(updateditem.CampusRowKey);
                ViewBag.Campus = campus;

                DirectEmployerClientClient dscc = new DirectEmployerClientClient();
                ViewBag.Client = dscc.GetByRowKey(updateditem.ClientRowKey);

                ViewBag.GeoAddStates      = BlobStringManager.Instance.GetString("skillcowemployerprogramgeoindex", "AddStates", id);
                ViewBag.GeoAddZips        = BlobStringManager.Instance.GetString("skillcowemployerprogramgeoindex", "AddZips", id);
                ViewBag.GeoSubtractStates = BlobStringManager.Instance.GetString("skillcowemployerprogramgeoindex", "SubtractStates", id);
                ViewBag.GeoSubtractZips   = BlobStringManager.Instance.GetString("skillcowemployerprogramgeoindex", "SubtractZips", id);
                ViewBag.Html = BlobStringManager.Instance.GetString("skillcowjobs", "HTML", id);

                ModelState.AddModelError("error", "Failed to save");

                return(View(updateditem));
            }
        }