public JsonResult Add(string name, string visitDate, string arrivalDate, string contact, string emailAddress, int visitType, int officeID, int eventID, int convensionID, int serviceID, int fsmID, int bookingStatus, float gsbAmount, float donationAmount)
 {
     var audienceManager = new DataAccess.AudienceManager();
     var visitDateTime = Convert.ToDateTime(visitDate);
     DateTime? arrivalDateTime = string.IsNullOrEmpty(arrivalDate) ? (DateTime?)null : Convert.ToDateTime(arrivalDate);
     var audienceID = audienceManager.Add(name, contact, emailAddress, visitDateTime, arrivalDateTime, visitType, officeID, eventID, fsmID, convensionID, serviceID, bookingStatus, gsbAmount, donationAmount);
     if (audienceID != 0)
     {
         using (var sw = new StringWriter())
         {
             var fsmSelectionMail = audienceManager.GetFSMSelectionSlipByAudienceID(audienceID);
             ViewData.Model = fsmSelectionMail;
             ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, "FSMSelectionMail");
             ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
             try
             {
                 viewResult.View.Render(viewContext, sw);
                 audienceManager.SendSelectionSlipMail(fsmID, emailAddress, sw.GetStringBuilder().ToString());
             }
             catch (Exception ex)
             { }
         }
     }
     return Json(audienceID);
 }
 public object GetArrivalTargets(int id, DateTime startDate, DateTime endDate)
 {
     var targetManager = new DataAccess.TargetManager();
     var audienceManager = new DataAccess.AudienceManager();
     var targets = targetManager.GetArrivalTargets(new List<int> { id }, startDate, endDate);
     var achievedTargets = audienceManager.GetArrivalTargetsAchived(new List<int> { id }, startDate, endDate);
     var totalTargets = targets.data.Sum(model => model.y);
     var totalAchievedTargets = achievedTargets.data.Sum(model => model.y);
     return new { Total = totalTargets, ActTotal = totalAchievedTargets };
 }
 public JsonResult GetGSBTargets(string startDate, string endDate)
 {
     var dataSeries = new List<object>();
     var targetManager = new DataAccess.TargetManager();
     var audienceManager = new DataAccess.AudienceManager();
     var offices = new DataAccess.OfficeMananer().GetOfficeIDs(IsAdmin ? 0 : UserDetail.UserId);
     var startDateTime = Convert.ToDateTime(startDate);
     var endDateTime = Convert.ToDateTime(endDate);
     var targets = targetManager.GetGSBTargets(offices, startDateTime, endDateTime);
     var achievedTargets = audienceManager.GetGSBTargetsAchived(offices, startDateTime, endDateTime);
     dataSeries.Add(targets);
     dataSeries.Add(achievedTargets);
     var totalTargets = targets.data.Sum(model => model.y);
     var totalAchievedTargets = achievedTargets.data.Sum(model => model.y);
     var chartWidgetData = new { TotalTarget = totalTargets, TotalTargetAchieved = totalAchievedTargets, AchivedTarget = 0, ChartData = dataSeries };
     return Json(chartWidgetData);
 }
 public JsonResult GetAudiences(int id)
 {
     var audienceManager = new DataAccess.AudienceManager();
     var audiences = audienceManager.GetAudiencesByEventID(id).Select(model => new
     {
         ID = model.AudienceID,
         Name = model.Name,
         Contact = model.Contact,
         VisitDate = model.VisitDate.ToString("MMM dd,yyyy"),
         ConventionName = (model.Convention == null ? (model.Event == null ? "-" : model.Event.convention.Name) : model.Convention.Name),
         Status = model.BookingStatus == 1 ? "In Progress" : (model.BookingStatus == 2 ? "Booked" : "Reach"),
         FSMName = string.IsNullOrWhiteSpace(model.FSMName) ? " - " : model.FSMName,
         Attended = model.IsAttended,
         GSBAmount = model.GSBAmount,
         DonationAmount = model.Amount
     }).ToList();
     return Json(new { data = audiences });
 }
        public JsonResult GetAudiences(string startDate, string endDate)
        {
            var startDateTime = Convert.ToDateTime(startDate);
            var endDateTime = Convert.ToDateTime(endDate);
            var officeManager = new DataAccess.OfficeMananer();
            var offices = officeManager.GetOfficeIDs(IsAdmin ? 0 : UserDetail.UserId);
            var audienceManager = new DataAccess.AudienceManager();
            var audiences = audienceManager.GetAudiences(offices.ToList(), startDateTime, endDateTime);
            if (audiences == null) { return Json(new { data = new { } }); }
            var users = audiences.Select(model => new
            {
                ID = model.AudienceID,
                Name = model.Name,
                Contact = model.Contact,
                EmailAddress = model.EmailAddress,
                VisitDate = model.VisitDate.ToString("MMM dd,yyyy"),
                OfficeName = model.Office.Name,
                VisitType = model.VisitType.VisitTypeName,
                EventName = (model.Event == null ? "-" : model.Event.Name),
                ConventionName = (model.Convention == null ? "-" : model.Convention.Name),
                ServiceName = (model.Service == null ? "-" : model.Service.ServiceName),
                Status = (model.VisitType.VisitTypeId == 1) ? "-" : (model.BookingStatus == 1 ? "In Progress" : (model.BookingStatus == 2 ? "Booked" : "Reach")),
                FSMName = model.FSMDetail == null ? " - " : model.FSMDetail.Name,
                Attended = model.IsAttended,
                GSBAmount = model.GSBAmount,
                DonationAmount = model.Amount
            }).ToList();

            return Json(new
            {
                data = users
            });
        }
 public PartialViewResult Edit(int id)
 {
     var visitTypeManager = new DataAccess.VisitTypeManager();
     ViewData["VisitTypes"] = visitTypeManager.GetVisitTypes();
     var officeManager = new DataAccess.OfficeMananer();
     var offices = officeManager.GetOffices(IsAdmin ? 0 : UserDetail.UserId);
     ViewData["Offices"] = offices;
     var eventManager = new DataAccess.EventManager();
     ViewData["Events"] = eventManager.GetActiveEvents(offices.Select(model => model.OfficeId).ToList());
     var userManager = new DataAccess.FSMDetailManager();
     ViewData["FSMUsers"] = userManager.FSMDetails();
     var conventionManager = new DataAccess.ConventionManager();
     ViewData["Convention"] = conventionManager.GetConventions();
     var serviceManager = new DataAccess.ServiceManager();
     ViewData["Services"] = serviceManager.GetServices();
     var audienceManager = new DataAccess.AudienceManager();
     var audience = audienceManager.GetAudience(id);
     return PartialView(audience);
 }
 public JsonResult Delete(int id)
 {
     var audienceManager = new DataAccess.AudienceManager();
     var status = audienceManager.Delete(id);
     return Json(status);
 }
 public JsonResult AttendStatus(int id, string arrivalDateTime)
 {
     var audienceManager = new DataAccess.AudienceManager();
     var status = audienceManager.AttendStatus(id, Convert.ToDateTime(arrivalDateTime));
     return Json(status);
 }
 public JsonResult Update(int audienceID, string name, string visitDate, string arrivalDate, string contact, string emailAddress, int visitType, int officeID, int eventID, int convensionID, int serviceID, int fsmID, int bookingStatus, float gsbAmount, float donationAmount)
 {
     var audienceManager = new DataAccess.AudienceManager();
     var visitDateTime = Convert.ToDateTime(visitDate);
     DateTime? arrivalDateTime = string.IsNullOrEmpty(arrivalDate) ? (DateTime?)null : Convert.ToDateTime(arrivalDate);
     var status = audienceManager.Update(audienceID, name, contact, emailAddress, visitDateTime, arrivalDateTime, visitType, officeID, eventID, fsmID, convensionID, serviceID, bookingStatus, gsbAmount, donationAmount);
     return Json(status);
 }
 public JsonResult GetAudiences(int id)
 {
     var audienceManager = new DataAccess.AudienceManager();
     var audiences = audienceManager.GetAudiences(id).Select(model => new
     {
         ID = model.AudienceID,
         IsAttended = model.IsAttended,
         Name = model.Name,
         Contact = model.Contact,
     }).ToList();
     return Json(new { data = audiences });
 }
 public object GetGSBAountTarget(int id)
 {
     var audienceManager = new DataAccess.AudienceManager();
     var audiences = audienceManager.GetAudiences(id);
     var totalAchievedTargets = audiences.Where(model => model.BookingStatus == 2 && model.IsDeleted == false).Sum(model => model.GSBAmount);
     return new { Total = 0, ActTotal = totalAchievedTargets };
 }
 public object GetConventionBookingTarget(int id)
 {
     var audienceManager = new DataAccess.AudienceManager();
     var audiences = audienceManager.GetAudiences(id);
     var totalAchievedTargets = audiences.Where(model => model.BookingStatus == 2 && model.IsDeleted == false).ToList().Count();
     return new { Total = 0, ActTotal = totalAchievedTargets };
 }
 public object GetUserArrivalForCurrentWeek(int id, DateTime startDate, DateTime endDate)
 {
     var audienceManager = new DataAccess.AudienceManager();
     var audiences = audienceManager.GetArrivalAudiences(id, startDate, endDate);
     if (audiences == null) { return null; }
     return audiences.Select(model => new
     {
         ID = model.AudienceID,
         Name = model.Name,
         ConventionName = model.Convention.Name,
         ArrivalDate = model.Convention.StartDate.ToString("MM dd,yyyy"),
         IsAttended = model.IsAttended
     });
 }
 // Fund Raising Target For CurrentYear
 public object GetFundRaisingTargetsChart(int id, DateTime startDate, DateTime endDate)
 {
     var dataSeries = new List<DataModel.Modal.ChartSeries>();
     var targetManager = new DataAccess.TargetManager();
     var audienceManager = new DataAccess.AudienceManager();
     var targets = targetManager.GetFundingTargets(new List<int> { id }, startDate, endDate);
     var achievedTargets = audienceManager.GetFundingTargetsAchived(new List<int> { id }, startDate, endDate);
     dataSeries.Add(targets);
     dataSeries.Add(achievedTargets);
     var totalTargets = targets.data.Sum(model => model.y);
     var totalAchievedTargets = achievedTargets.data.Sum(model => model.y);
     return new { TotalTarget = totalTargets, TotalTargetAchieved = totalAchievedTargets, AchivedTarget = 0, ChartData = dataSeries };
 }