예제 #1
0
        public ActionResult Create(CampaignVM campaign)
        {
            try
            {
                ViewBag.CampaignTypes = GetCampaignTypes();
                if (ModelState.IsValid)
                {
                    ViewBag.CampaignTypes = GetCampaignTypes();
                    campaign.CreatedBy = User.Identity.Name;
                    var campaignModule = new CampaignModule();
                    var report = campaignModule.ValidateCampaign(campaign);
                    TempData["CampaignReport"] = report;
                    return View("Report", report.Validations);
                }
                ViewBag.Message = "Error in input. Please correct the errors";

                return View(campaign);
            }
            catch (Exception ex)
            {
                ErrorSignal.FromCurrentContext().Raise(ex);
                ViewBag.Message = "Cannot create campaign";
                return View(campaign);

            }
        }
예제 #2
0
 public EP.BulkMessage.Service.Entity.Campaign GetCampaignFromVM(CampaignVM viewModel)
 {
     return new Service.Entity.Campaign
     {
         ContentTemplate = viewModel.Content,
         CreatedBy = viewModel.CreatedBy,
         CreatedDate = DateTime.Now,
         FileName = viewModel.FileName,
         Id = viewModel.Id,
         Name = viewModel.Name,
         StatusDate = viewModel.StatusDate,
         StatusId = viewModel.StatusId,
         SubjectTemplate = viewModel.Subject,
         RecipientField = viewModel.RecipientField,
         TypeId = viewModel.TypeId
     };
 }
예제 #3
0
        public CampaignReport ValidateCampaign(CampaignVM campaignVM)
        {
            CampaignValidation validations = new CampaignValidation();
            var fileName = campaignVM.FileName;
            var fields = GetAllMappingFields(campaignVM.Content);
            fields.AddRange(GetAllMappingFields(campaignVM.RecipientField));
            if (campaignVM.TypeId == (int)CampaignType.Email)
                fields.AddRange(GetAllMappingFields(campaignVM.Subject));

            var excelRows = GetExcelMappings(fileName);
            ValidateExcelForFields(ref validations, fields, excelRows);

            var validRows = new List<Row>();
            if (validations.IsValid)
            {
                int rowCount = 2;
                foreach (var row in excelRows)
                {
                    var recepient = row[GetAllMappingFields(campaignVM.RecipientField)[0]];
                    if (validations.Validate(recepient, (CampaignType)campaignVM.TypeId, rowCount))
                        validRows.Add(row);
                    rowCount += 1;
                }

            }
            validations.TotalRecordCount = excelRows.Count();
            var report = new CampaignReport
            {
                Campaign = campaignVM,
                ExcelRows = validRows,
                Validations = validations
            };
            return report;
        }