public ActionResult ContactTypeTotals(ContactSearchModel m)
        {
            ViewBag.candelete = m.CanDeleteTotal();
            var q = m.ContactTypeTotals();

            return(View(q));
        }
        public ActionResult Clear()
        {
            var m = new ContactSearchModel();

            m.ClearSession();
            return(Redirect("/ContactSearch2"));
        }
        public ActionResult Index()
        {
            Response.NoCache();
            var m = new ContactSearchModel();

            m.GetFromSession();
            return View(m);
        }
        public ActionResult Index()
        {
            Response.NoCache();
            var m = new ContactSearchModel();

            m.GetFromSession();
            return(View(m));
        }
示例#5
0
        /// <summary>
        /// Search contacts
        /// </summary>
        /// <param name="si"></param>
        /// <param name="searchModel"></param>
        /// <returns></returns>
        public JqGridSearchOut SearchContacts(JqSearchIn si, ContactSearchModel searchModel)
        {
            var data = SearchContacts(searchModel);

            var contacts = Maps(data);

            return(si.Search(contacts));
        }
示例#6
0
        public ContactGroupSetupModel()
        {
            _contactGroupService = HostContainer.GetInstance <IContactGroupService>();

            Step = NotificationEnums.NotificationSetupStep.SetupContactGroup;

            ContactSearchModel = new ContactSearchModel();
        }
示例#7
0
        /// <summary>
        /// Export contacts
        /// </summary>
        /// <param name="si"></param>
        /// <param name="gridExportMode"></param>
        /// <param name="searchModel"></param>
        /// <returns></returns>
        public ActionResult Exports(JqSearchIn si, GridExportMode gridExportMode, ContactSearchModel searchModel)
        {
            var workbook = _contactService.Exports(si, gridExportMode, searchModel);

            var output = new MemoryStream();

            workbook.Write(output);

            return(File(output.ToArray(), "application/vnd.ms-excel", "Contacts.xls"));
        }
示例#8
0
        /// <summary>
        /// Export contacts
        /// </summary>
        /// <param name="si"></param>
        /// <param name="searchModel"></param>
        /// <param name="gridExportMode"></param>
        /// <returns></returns>
        public HSSFWorkbook Exports(JqSearchIn si, GridExportMode gridExportMode, ContactSearchModel searchModel)
        {
            var data = gridExportMode == GridExportMode.All ? GetAll() : SearchContacts(searchModel);

            var contacts = Maps(data);

            var exportData = si.Export(contacts, gridExportMode);

            return(ExcelUtilities.CreateWorkBook(exportData));
        }
示例#9
0
        public ActionResult Index()
        {
            if (!ViewExtensions2.UseNewLook())
                return Redirect("/ContactSearch");
            Response.NoCache();
            var m = new ContactSearchModel();
            m.Pager.Set("/ContactSearch2/Results");

            m.GetFromSession();
            return View(m);
        }
        // GET: ContactSearch
        public async Task <ActionResult> Index(ContactSearchModel model)
        {
            model.Results = db.Contacts
                            .Where(
                x =>
                (model.FirstName == null || x.FirstName.Contains(model.FirstName)) ||
                (model.LastName == null || x.LastName.Contains(model.LastName))
                )
                            .ToList();

            return(View(await db.Contacts.ToListAsync()));
        }
示例#11
0
 private void SaveToSession(ContactSearchModel m)
 {
     Session[STR_ContactSearch] = new ContactSearchInfo
     {
         EndDate         = m.EndDate,
         StartDate       = m.StartDate,
         MinistryId      = m.Ministry,
         ContactTypeId   = m.ContactType,
         ContactorName   = m.ContactorName,
         ContacteeName   = m.ContacteeName,
         ContactReasonId = m.ContactReason,
         StatusId        = m.Status
     };
 }
示例#12
0
        /// <summary>
        /// Count contacts
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ResponseModel CountContacts(ContactSearchModel model)
        {
            var notification = GetById(model.NotificationId);

            if (notification != null)
            {
                // Deserialize contact queries string in notification model to object
                var contactSearchModels = string.IsNullOrEmpty(notification.ContactQueries)
                    ? new List <ContactSearchModel>()
                    : SerializeUtilities.Deserialize <List <ContactSearchModel> >(notification.ContactQueries);

                // Number of contacts before new queries is added
                var totalExistingContacts = _contactService.SearchContacts(contactSearchModels).Count();

                // Add new queries
                contactSearchModels.Add(model);

                // Number of contact after new queries is added
                var totalContactsAfterAdded = _contactService.SearchContacts(contactSearchModels).Count();

                // Number of contact in new queries
                var totalNewContactsExpected = _contactService.SearchContacts(model).Count();

                // Serialize contact queries and assign to notification model
                notification.ContactQueries = SerializeUtilities.Serialize(contactSearchModels);

                var contactStatistic = new ContactStatisticModel
                {
                    ExistedContacts = totalNewContactsExpected + totalExistingContacts - totalContactsAfterAdded,
                    NewContacts     = totalContactsAfterAdded - totalExistingContacts,
                    TotalContacts   = totalContactsAfterAdded
                };

                var response = new ResponseModel
                {
                    Success = true,
                    Data    = contactStatistic
                };

                return(response);
            }

            return(new ResponseModel
            {
                Success = false,
                Message = T("Notification_Message_ObjectNotFound")
            });
        }
示例#13
0
        public ActionResult Index()
        {
            Response.NoCache();
            var m = new ContactSearchModel();

            var os = Session[STR_ContactSearch] as ContactSearchInfo;

            if (os != null)
            {
                m.ContactReason = os.ContactReasonId;
                m.ContacteeName = os.ContacteeName;
                m.ContactorName = os.ContactorName;
                m.ContactType   = os.ContactTypeId;
                m.Ministry      = os.MinistryId;
                m.StartDate     = os.StartDate;
                m.EndDate       = os.EndDate;
                m.Status        = os.StatusId;
            }
            return(View(m));
        }
示例#14
0
        public ActionResult ConvertToQuery(ContactSearchModel m)
        {
            var qb = DbUtil.Db.QueryBuilderScratchPad();

            qb.CleanSlate(DbUtil.Db);
            var comp   = CompareType.Equal;
            var clause = qb.AddNewClause(QueryType.MadeContactTypeAsOf, comp, "1,T");

            clause.Program   = m.Ministry ?? 0;
            clause.StartDate = m.StartDate ?? DateTime.Parse("1/1/2000");
            clause.EndDate   = m.EndDate ?? DateTime.Today;
            var cvc = new CodeValueModel();
            var q   = from v in cvc.ContactTypeCodes0()
                      where v.Id == m.ContactType
                      select v.IdCode;
            var idvalue = q.Single();

            clause.CodeIdValue = idvalue;
            DbUtil.Db.SubmitChanges();
            return(Redirect("/QueryBuilder/Main/{0}".Fmt(qb.QueryId)));
        }
示例#15
0
        public ActionResult ConvertToQuery(ContactSearchModel m)
        {
            var gid = m.ConvertToQuery();

            return(Redirect("/Query/{0}".Fmt(gid)));
        }
示例#16
0
 public ActionResult Results(int? page, int? size, string sort, string dir, ContactSearchModel m)
 {
     m.Pager.Set("/ContactSearch2/Results", page, size, sort, dir);
     m.SaveToSession();
     return View(m);
 }
示例#17
0
        public ActionResult ContactTypeQuery(int id)
        {
            var gid = ContactSearchModel.ContactTypeQuery(id);

            return(Redirect("/Query/{0}".Fmt(gid)));
        }
示例#18
0
 public ActionResult ConvertToQuery(ContactSearchModel m)
 {
     var gid = m.ConvertToQuery();
     return Redirect("/Query/{0}".Fmt(gid));
 }
示例#19
0
 public ActionResult ContactTypeTotals(ContactSearchModel m)
 {
     ViewBag.candelete = m.CanDeleteTotal();
     var q = m.ContactTypeTotals();
     return View(q);
 }
示例#20
0
 public ActionResult ConvertToQuery(ContactSearchModel m)
 {
     var gid = m.ConvertToQuery();
     return Redirect($"/Query/{gid}");
 }
        public ActionResult AddToGroup(ContactSearchModel model)
        {
            var addToGroupModel = new AddToGroupModel(model);

            return(View(addToGroupModel));
        }
 public ActionResult DeleteContactsForType(int id)
 {
     ContactSearchModel.DeleteContactsForType(id);
     return(Redirect("/ContactSearch/ContactTypeTotals"));
 }
        public ActionResult ContactTypeQuery(int id)
        {
            var gid = ContactSearchModel.ContactTypeQuery(id);

            return(Redirect($"/Query/{gid}"));
        }
        public ActionResult ContactSummary(ContactSearchModel m)
        {
            var q = m.ContactSummary();

            return(View(q));
        }
 public string _AjaxBinding(JqSearchIn si, ContactSearchModel searchModel)
 {
     return(JsonConvert.SerializeObject(_contactService.SearchContacts(si, searchModel)));
 }
示例#26
0
 public ActionResult Results(ContactSearchModel m)
 {
     SaveToSession(m);
     return(View(m));
 }
        /// <summary>
        /// Count contacts in query
        /// </summary>
        /// <param name="searchModel"></param>
        /// <returns></returns>
        public JsonResult CountContacts(ContactSearchModel searchModel)
        {
            var contacts = _notificationService.CountContacts(searchModel);

            return(Json(contacts, JsonRequestBehavior.AllowGet));
        }
示例#28
0
 public ActionResult Results(int?page, int?size, string sort, string dir, ContactSearchModel m)
 {
     m.Pager.Set("/ContactSearch2/Results", page, size, sort, dir);
     m.SaveToSession();
     return(View(m));
 }
示例#29
0
 public AddToGroupModel(ContactSearchModel contactSearchModel)
     : this()
 {
     ContactSearchModel = SerializeUtilities.Serialize(contactSearchModel);
 }
示例#30
0
        /// <summary>
        /// Search contacts
        /// </summary>
        /// <param name="searchModel"></param>
        /// <returns></returns>
        public IQueryable <Contact> SearchContacts(ContactSearchModel searchModel)
        {
            var dontSendMarketing = default(bool?);

            if (searchModel.MarketingMaterial == ContactEnums.DontSendMarketing.DontSend)
            {
                dontSendMarketing = true;
            }
            else if (searchModel.MarketingMaterial == ContactEnums.DontSendMarketing.Send)
            {
                dontSendMarketing = false;
            }

            var interestedInOwning = default(bool?);

            switch (searchModel.InterestedInOwning)
            {
            case ContactEnums.InterestInOwning.IsInterest:
                interestedInOwning = true;
                break;

            case ContactEnums.InterestInOwning.IsNotInterest:
                interestedInOwning = false;
                break;
            }
            searchModel.Sex = searchModel.Sex.Where(m => !string.IsNullOrEmpty(m)).ToList();

            // Company filter
            var companies = new List <string>();

            if (searchModel.Companies != null)
            {
                companies.AddRange(searchModel.Companies);
            }

            //Company type filter
            var companyNames = new List <string>();

            // Add current company of company type to company name list for searching
            if (searchModel.CompanyTypeIds.Any())
            {
                companyNames.AddRange(_companyService.Fetch(c => searchModel.CompanyTypeIds.Contains(c.Id))
                                      .Select(ct => ct.Name).ToList());
            }

            var contacts =
                GetAll().Where(c =>
                               // Keyword filters
                               (string.IsNullOrEmpty(searchModel.Keyword) || string.IsNullOrEmpty(c.FirstName) ||
                                c.FirstName.Contains(searchModel.Keyword) || string.IsNullOrEmpty(c.LastName) ||
                                c.LastName.Contains(searchModel.Keyword) || string.IsNullOrEmpty(c.Email) ||
                                c.Email.Contains(searchModel.Keyword))

                               // State/Suburb/Country filters
                               && (string.IsNullOrEmpty(searchModel.State) || c.State.Contains(searchModel.State)) &&
                               (string.IsNullOrEmpty(searchModel.Suburb) || c.Suburb.Contains(searchModel.Suburb)) &&
                               (string.IsNullOrEmpty(searchModel.Country) || c.Country.Contains(searchModel.Country))

                               // Company filters
                               && (!companies.Any() || companies.Contains(c.Company))

                               // Company type filters
                               && (!companyNames.Any() || companyNames.Contains(c.Company))

                               // Contact group filters
                               &&
                               (!searchModel.ContactGroupId.HasValue ||
                                c.ContactGroupContacts.Any(x => x.ContactGroup.Id == searchModel.ContactGroupId))

                               // Other filters
                               && (!searchModel.SalesPerson.Any() || searchModel.SalesPerson.Contains(c.SalesPerson)) &&
                               (!dontSendMarketing.HasValue || dontSendMarketing == c.DontSendMarketing)
                               &&
                               (!interestedInOwning.HasValue ||
                                c.ContactCommunications.Any(
                                    cc => cc.InterestedInOwning == interestedInOwning && cc.ContactId == c.Id)) &&
                               ((!searchModel.ReferredBy.Any() &&
                                 !searchModel.SubscriberTypes.Any() &&
                                 !searchModel.ProductOfInterests.Any() &&
                                 !searchModel.CampaignCodes.Any() &&
                                 !searchModel.CurrentlyOwns.Any() &&
                                 !searchModel.Certifications.Any()) ||
                                c.ContactCommunications.Any(cc =>
                                                            (!searchModel.ReferredBy.Any() || searchModel.ReferredBy.Contains(cc.ReferredBy)) &&
                                                            (!searchModel.SubscriberTypes.Any() ||
                                                             searchModel.SubscriberTypes.Contains(cc.SubscriberType)) &&
                                                            (!searchModel.ProductOfInterests.Any() ||
                                                             searchModel.ProductOfInterests.Contains(cc.ProductOfInterest)) &&
                                                            (!searchModel.CampaignCodes.Any() ||
                                                             searchModel.CampaignCodes.Contains(cc.CampaignCode)) &&
                                                            (!searchModel.CurrentlyOwns.Any() ||
                                                             searchModel.CurrentlyOwns.Contains(cc.CurrentlyOwn)) &&
                                                            (!searchModel.Certifications.Any() ||
                                                             searchModel.Certifications.Contains(cc.Certification))))
                               );

            return(contacts);
        }
示例#31
0
 public ActionResult ContactSummary(ContactSearchModel m)
 {
     var q = m.ContactSummary();
     return View(q);
 }
示例#32
0
 public ActionResult Clear()
 {
     var m = new ContactSearchModel();
     m.ClearSession();
     return Redirect("/ContactSearch2");
 }
示例#33
0
 public ActionResult Results(ContactSearchModel m)
 {
     m.SaveToSession();
     return View(m);
 }
        public ActionResult ConvertToQuery(ContactSearchModel m)
        {
            var gid = m.ConvertToQuery();

            return(Redirect($"/Query/{gid}"));
        }
示例#35
0
        public ActionResult Index()
        {
            var model = new ContactSearchModel();

            return(View(model));
        }