Beispiel #1
0
        public LoBViewModel Create(LoBViewModel model)
        {
            if (string.IsNullOrEmpty(model.SiteCampaignIds.Trim()))
            {
                var dataExists = _context.AsQueryable <LoB>().Where(x => x.Name == model.Name && x.CampaignID == model.CampaignID && x.Active == true).FirstOrDefault();
                if (dataExists != null)
                {
                    throw new ArgumentException("LoB name already exists in campaign.");
                }
            }

            var data = new LoB()
            {
                CampaignID   = model.CampaignID,
                Name         = model.Name,
                Code         = model.Code,
                Description  = model.Description,
                CreatedBy    = model.CreatedBy,
                ModifiedBy   = null,
                DateCreated  = model.DateCreated,
                DateModified = null,
                Active       = model.Active
            };

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

            model.ID = data.ID;
            return(model);
        }
Beispiel #2
0
        public void Update(LoBViewModel model)
        {
            //get lob id from sitecampaign lob
            var data = _context.AsQueryable <LoB>().Where(x => x.ID == model.ID).FirstOrDefault();

            if (string.IsNullOrEmpty(model.SiteCampaignIds.Trim()))
            {
                if (data == null)
                {
                    throw new ArgumentException("Data does not exists.");
                }

                //check if lob already exists
                if (data.Name.Trim().ToLower() != model.Name.Trim().ToLower() ||
                    data.CampaignID != model.CampaignID)
                {
                    var dataExists = _context.AsQueryable <LoB>().Where(x => x.Name.Trim().ToLower() == model.Name.Trim().ToLower() && x.CampaignID == model.CampaignID).FirstOrDefault();
                    if (dataExists != null)
                    {
                        throw new ArgumentException("Lob name already exists in site.");
                    }
                }
            }
            data.CampaignID   = model.CampaignID;
            data.Name         = model.Name ?? data.Name;
            data.Code         = model.Code ?? data.Code;
            data.Description  = model.Description ?? data.Description;
            data.ModifiedBy   = model.ModifiedBy;
            data.DateModified = model.DateModified ?? DateTime.Now;
            data.Active       = model.Active;

            _context.Update <LoB>(data);
            _context.SaveChanges();
        }
        private LoBViewModel Create(LoBViewModel data, SiteCampaignViewModel siteCampaign)
        {
            _lobService.Create(data);

            if (data.ID > 0)
            {
                //create SiteCampaignLOB
                _siteCampaignLobService.Create(new SiteCampaignLoBViewModel()
                {
                    SiteID     = siteCampaign.SiteID,
                    CampaignID = siteCampaign.CampaignID,
                    LobID      = data.ID,
                    Active     = true
                });
            }

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

            try
            {
                foreach (var siteCampaignID in data.SiteCampaignIds.TrimEnd(',').Split(','))
                {
                    long id = Convert.ToInt64(siteCampaignID);
                    //check if lobname exists
                    var siteCampaign = _siteCampaignService.Get(id, true);

                    long siteid     = 0;
                    long campaignid = 0;
                    long lobid      = 0;

                    #region Create/Update
                    if (siteCampaign != null)
                    {
                        var count = _siteCampaignLobService.Count(null,
                                                                  siteCampaign.CampaignID,
                                                                  data.Name,
                                                                  true);


                        #region
                        siteid     = siteCampaign.SiteID;
                        campaignid = siteCampaign.CampaignID;
                        if (count == 0)
                        {
                            //create LOB
                            data.DateCreated = DateTime.Now;
                            data.CreatedBy   = username;
                            var lob = this.Create(data, siteCampaign);
                            lobid = lob.ID;
                        }
                        else if (count > 0)
                        {
                            //exists
                            data.DateModified = DateTime.Now;
                            data.ModifiedBy   = username;

                            //get lob
                            var lob = _siteCampaignLobService.GetAll().Where(x => x.CampaignID == siteCampaign.CampaignID && x.LobVM.Name == data.Name)
                                      .Select(x => x.LobVM).FirstOrDefault();
                            //_lobService.GetAll().Where( x => x.Name == data.Name && x.Active == true ).FirstOrDefault();
                            //check sitecampaignlob
                            count =
                                _siteCampaignLobService.GetAll().Where(x => x.CampaignID == siteCampaign.CampaignID &&
                                                                       x.LobID == lob.ID &&
                                                                       x.Active == true && x.LobVM.Active == true).Count();

                            lobid = lob.ID;
                            if (count > 0)
                            {
                                //update
                                _lobService.Update(data);
                                //create sitecampaignlob
                                _siteCampaignLobService.Create(lob.ID, siteCampaign.SiteID, siteCampaign.CampaignID);
                            }
                            else if (count == 0)
                            {
                                //create lob and sitecampaignlob
                                this.Create(data, siteCampaign);
                            }
                        }


                        #endregion
                        message = "Lob Saved.";
                    }
                    #endregion

                    //Check if site campaign lob  have weeklyahdatapoin,weeklystaffdatapoint,weeklyhiringdatapoin
                    //      create those data.
                    if (siteid > 0 && campaignid > 0 && lobid > 0)
                    {
                        _lobService.CreateWeeklyDatapoints(siteid, campaignid, lobid);
                    }
                }

                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 ActionResult Save(LoBViewModel data)
        {
            string     username = User.Identity.GetUserName();
            CommonView model    = new CommonView();
            string     message  = string.Empty;
            long       lobID    = 0;

            try
            {
                #region Update/Create data
                if (data.ID > 0)
                {
                    //update
                    data.DateModified = DateTime.Now;
                    data.ModifiedBy   = username;
                    _lobService.Update(data);
                    lobID = data.ID;
                    _siteCampaignLobService.Deactivate(lobID);
                }
                else
                {
                    //create LOB
                    data.DateCreated = DateTime.Now;
                    data.CreatedBy   = username;
                    var lob = _lobService.Create(data);

                    lobID = data.ID;
                    _siteCampaignLobService.Deactivate(lobID);
                }

                #endregion

                foreach (var siteCampaignID in data.SiteCampaignIds.TrimEnd(',').Split(','))
                {
                    long id = Convert.ToInt64(siteCampaignID);
                    //check if lobname exists
                    var siteCampaign = _siteCampaignService.Get(id, true);

                    long siteid     = 0;
                    long campaignid = 0;
                    //long lobid = lobID;

                    #region Create/Update
                    if (siteCampaign != null)
                    {
                        var siteCampaignLob = _siteCampaignLobService.GetAll().Where(x => x.SiteID == siteCampaign.SiteID &&
                                                                                     x.CampaignID == siteCampaign.CampaignID && x.LobID == lobID)
                                              .FirstOrDefault();

                        if (siteCampaignLob != null)
                        {
                            //update
                            siteCampaignLob.Active = true;

                            _siteCampaignLobService.Update(siteCampaignLob);
                        }
                        else
                        {
                            //create SiteCampaignLOB
                            _siteCampaignLobService.Create(new SiteCampaignLoBViewModel()
                            {
                                SiteID     = siteCampaign.SiteID,
                                CampaignID = siteCampaign.CampaignID,
                                LobID      = lobID,
                                Active     = true
                            });
                        }
                        siteid     = siteCampaign.SiteID;
                        campaignid = siteCampaign.CampaignID;

                        message = "Lob Saved.";
                    }
                    #endregion

                    //Check if site campaign lob  have weeklyahdatapoin,weeklystaffdatapoint,weeklyhiringdatapoin
                    //      create those data.
                    if (siteid > 0 && campaignid > 0 && lobID > 0)
                    {
                        _lobService.CreateWeeklyDatapoints(siteid, campaignid, lobID);
                    }
                }

                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));
        }