Пример #1
0
        public ActionResult Edit(CampaignViewModel campaignVM)
        {
            Logger.Info(_logMsg.Clear().SetPrefixMsg("Save Recommended Campaign").Add("CardNo", campaignVM.CardNo.MaskCardNo())
                        .Add("HasInterested", campaignVM.Interested).Add("FirstName", campaignVM.FirstName).Add("LastName", campaignVM.LastName)
                        .Add("PhoneNo", campaignVM.PhoneNo).ToInputLogString());

            _auditLog              = new AuditLogEntity();
            _auditLog.Module       = Constants.Module.Customer;
            _auditLog.Action       = Constants.AuditAction.RecommendedCampaign;
            _auditLog.IpAddress    = ApplicationHelpers.GetClientIP();
            _auditLog.Status       = LogStatus.Success;
            _auditLog.CreateUserId = this.UserInfo.UserId;

            try
            {
                if (ModelState.IsValid)
                {
                    _userFacade   = new UserFacade();
                    _commonFacade = new CommonFacade();

                    var searchFilter = new CampaignSearchFilter
                    {
                        CampaignId      = campaignVM.CampaignId,
                        HasOffered      = Constants.CMTParamConfig.Offered,
                        IsInterested    = campaignVM.Interested,
                        Comments        = campaignVM.Comments,
                        UpdatedBy       = this.UserInfo.Username,
                        FirstName       = campaignVM.FirstName,
                        LastName        = campaignVM.LastName,
                        PhoneNo         = campaignVM.PhoneNo,
                        Email           = campaignVM.Email,
                        CardNo          = campaignVM.CardNo,
                        ChannelName     = campaignVM.ChannelName,
                        AvailableTime   = campaignVM.AvailableTime,
                        ContractNoRefer = campaignVM.ContractNoRefer
                    };

                    int?ownerLeadId = campaignVM.OwnerLead.ToNullable <int>();
                    if (ownerLeadId != null)
                    {
                        UserEntity ownerLead = _userFacade.GetUserById(ownerLeadId.Value);
                        searchFilter.OwnerLeadCode = ownerLead.EmployeeCode;
                    }

                    _campaignFacade = new CampaignFacade();

                    if (Constants.CMTParamConfig.Interested.Equals(campaignVM.Interested))
                    {
                        Ticket resLead = _campaignFacade.CreateLead(_auditLog, searchFilter);
                        Logger.Info(_logMsg.Clear().SetPrefixMsg("Create Lead").Add("ResponseCode", resLead.ResponseCode)
                                    .Add("ResponseMessage", resLead.ResponseMessage).ToSuccessLogString());
                    }

                    UpdateCampaignFlagsResponse resCamp = _campaignFacade.SaveCampaignFlags(_auditLog, campaignVM.CardNo, searchFilter);
                    Logger.Info(_logMsg.Clear().SetPrefixMsg("Save Recommended Campaign").Add("UpdateStatus", resCamp.UpdateStatus).ToSuccessLogString());

                    // Call CMT and SLM Services
                    return(Json(new
                    {
                        Valid = true,
                        Error = string.Empty,
                    }));
                }

                return(Json(new
                {
                    Valid = false,
                    Error = string.Empty,
                    Errors = GetModelValidationErrors()
                }));
            }
            catch (CustomException cex)
            {
                Logger.Info(_logMsg.Clear().SetPrefixMsg("Search Campaign").Add("Error Message", cex.Message).ToFailLogString());
                return(Json(new
                {
                    Valid = false,
                    Error = cex.Message
                }));
            }
            catch (Exception ex)
            {
                Logger.Error("Exception occur:\n", ex);
                Logger.Info(_logMsg.Clear().SetPrefixMsg("Search Campaign").Add("Error Message", ex.Message).ToFailLogString());
                return(Json(new
                {
                    Valid = false,
                    Error = ex.Message
                }));
            }
        }
Пример #2
0
        public ActionResult CampaignList()
        {
            CustomerInfoViewModel custInfoVM = new CustomerInfoViewModel();

            if (TempData["CustomerInfo"] != null)
            {
                custInfoVM = (CustomerInfoViewModel)TempData["CustomerInfo"];
                TempData["CustomerInfo"] = custInfoVM; // Keep for change Tab
            }
            else
            {
                return(RedirectToAction("Search", "Customer"));
            }

            Logger.Info(_logMsg.Clear().SetPrefixMsg("Search Campaign").Add("CardNo", custInfoVM.CardNo.MaskCardNo()).ToInputLogString());

            _auditLog              = new AuditLogEntity();
            _auditLog.Module       = Constants.Module.Customer;
            _auditLog.Action       = Constants.AuditAction.RecommendedCampaign;
            _auditLog.IpAddress    = ApplicationHelpers.GetClientIP();
            _auditLog.Status       = LogStatus.Success;
            _auditLog.CreateUserId = this.UserInfo.UserId;

            try
            {
                if (ModelState.IsValid)
                {
                    _campaignFacade = new CampaignFacade();
                    CampaignViewModel campaignVM = new CampaignViewModel();

                    if (!string.IsNullOrWhiteSpace(custInfoVM.CardNo))
                    {
                        campaignVM.CampaignList = _campaignFacade.GetCampaignListByCustomer(_auditLog, custInfoVM.CardNo,
                                                                                            Constants.CMTParamConfig.NoOffered, Constants.CMTParamConfig.NoInterested,
                                                                                            Constants.CMTParamConfig.RecommendCampaign, Constants.CMTParamConfig.NumRecommendCampaign);
                    }

                    Logger.Info(_logMsg.Clear().SetPrefixMsg("Search Campaign").ToSuccessLogString());
                    return(PartialView("~/Views/Campaign/_CampaignList.cshtml", campaignVM));
                }

                return(Json(new
                {
                    Valid = false,
                    Error = string.Empty,
                    Errors = GetModelValidationErrors()
                }));
            }
            catch (CustomException cex)
            {
                Logger.Info(_logMsg.Clear().SetPrefixMsg("Search Campaign").Add("Error Message", cex.Message).ToFailLogString());
                return(Json(new
                {
                    Valid = false,
                    Error = cex.Message
                }));
            }
            catch (Exception ex)
            {
                Logger.Error("Exception occur:\n", ex);
                Logger.Info(_logMsg.Clear().SetPrefixMsg("Search Campaign").Add("Error Message", ex.Message).ToFailLogString());
                return(Error(new HandleErrorInfo(ex, this.ControllerContext.RouteData.Values["controller"].ToString(),
                                                 this.ControllerContext.RouteData.Values["action"].ToString())));
            }
        }
 public IndexModel(ICampaignFacade campaignFacade)
 {
     _campaignFacade = campaignFacade;
 }