public SiteCampaignLobFormulaViewModel Create(SiteCampaignLobFormulaViewModel model)
        {
            //check if exists
            var origData = this.Get(model.SiteID, model.CampaignID, model.LoBID, null, true);

            if (origData.Count() > 0)
            {
                throw new ArgumentException("Insert failed. Mapping already exists.");
            }

            var data = new SiteCampaignLobFormula()
            {
                SiteID           = model.SiteID,
                CampaignID       = model.CampaignID,
                LoBID            = model.LoBID,
                DynamicFormulaID = model.DynamicFormulaID,
                DateCreated      = DateTime.Now,
                DateModified     = null,
                Active           = true
            };

            _context.Add <SiteCampaignLobFormula>(data);
            _context.SaveChanges();

            model.ID = data.ID;

            return(model);
        }
        public ActionResult Save(DynamicFormulaView data)
        {
            string     username = User.Identity.GetUserName();
            CommonView model    = new CommonView();
            string     message  = string.Empty;

            try
            {
                var sclf = new SiteCampaignLobFormulaViewModel()
                {
                    ID               = data.ID,
                    SiteID           = data.SiteID,
                    CampaignID       = data.CampaignID,
                    LoBID            = data.LobID,
                    DynamicFormulaID = data.FormulaID,
                    Active           = true
                };

                if (data.ID == 0)
                {
                    _siteCampaignLobFormulaService.Create(sclf);
                    if (sclf.ID > 0)
                    {
                        message = "Data added.";
                        data.ID = sclf.ID;
                    }
                }
                else
                {
                    //update
                    _siteCampaignLobFormulaService.Update(sclf);

                    message = "Data updated.";
                }

                model.Message = message;
            }
            catch (Exception ex)
            {
                if (ex.GetType() == typeof(ArgumentException))
                {
                    model.Message = ((ArgumentException)ex).Message;
                }
                else
                {
                    model.Message = "Unable to save data. Please contact your system administrator.";
                }
            }

            return(Json(model, JsonRequestBehavior.AllowGet));
        }
        public void Save(ref SiteCampaignLobFormulaViewModel model)
        {
            var data = _context.Add <SiteCampaignLobFormula>(new SiteCampaignLobFormula()
            {
                SiteID           = model.SiteID,
                CampaignID       = model.CampaignID,
                LoBID            = model.LoBID,
                DynamicFormulaID = model.DynamicFormulaID,
                DateCreated      = model.DateCreated,
                Active           = model.Active
            });

            _context.SaveChanges();
            model.ID = data.ID;
        }
        public SiteCampaignLobFormulaViewModel Update(SiteCampaignLobFormulaViewModel model)
        {
            //check if exists

            #region Validate

            var data = _context.AsQueryable <SiteCampaignLobFormula>()
                       .Where(x => x.ID == model.ID).FirstOrDefault();

            long origSiteID     = 0;
            long origCampaignID = 0;
            long origLobID      = 0;

            if (data != null)
            {
                if (data.ID > 0)
                {
                    origSiteID     = data.SiteID;
                    origCampaignID = data.CampaignID;
                    origLobID      = data.LoBID;
                }
            }

            if (origSiteID != model.SiteID && origCampaignID != model.CampaignID && origLobID != model.LoBID)
            {
                var existingdata = this.Get(model.SiteID, model.CampaignID, model.LoBID, null, true);
                if (existingdata.Count() > 0)
                {
                    throw new ArgumentException("Update failed. Mapping already exists.");
                }
            }

            #endregion Validate

            data.SiteID           = model.SiteID;
            data.CampaignID       = model.CampaignID;
            data.LoBID            = model.LoBID;
            data.DynamicFormulaID = model.DynamicFormulaID;
            data.DateModified     = DateTime.Now;

            _context.Update <SiteCampaignLobFormula>(data);
            _context.SaveChanges();

            return(model);
        }