private void PopulateFilterDataDropDownLists(BrowseDataViewModel model)
        {
            if (model.IndicatorId == 0) return;
            
            ViewBag.AreaTypeId = new SelectList(_coreDataRepository.GetAreaTypes(model.IndicatorId), "Id", "Name").AddAnyOption();

            ViewBag.SexId = new SelectList(_coreDataRepository.GetSexes(model.IndicatorId), "SexID", "Description").AddAnyOption();

            ViewBag.AgeId = new SelectList(_coreDataRepository.GetAges(model.IndicatorId), "AgeID", "Description").AddAnyOption();

            // Category types
            var categoryTypes = _coreDataRepository.GetCategoryTypes(model.IndicatorId);
            var undefinedCategoryType = categoryTypes.FirstOrDefault(x => x.Id == -1);
            if (undefinedCategoryType != null)
            {
                undefinedCategoryType.Name = "Any";
            }
            ViewBag.CategoryTypeId = new SelectList(categoryTypes, "Id", "Name");

            ViewBag.YearRange = _coreDataRepository.GetYearRanges(model.IndicatorId).ConvertToSelectListWithAnyOption(); ;

            ViewBag.Year = _coreDataRepository.GetYears(model.IndicatorId).ConvertToSelectListWithAnyOption(); 

            ViewBag.Month = _coreDataRepository.GetMonths(model.IndicatorId).ConvertToSelectListWithAnyOption(); ;

            ViewBag.Quarter = _coreDataRepository.GetQuarters(model.IndicatorId).ConvertToSelectListWithAnyOption(); ;
        }
        private Dictionary<string, int> GetFilters(BrowseDataViewModel model)
        {
            var filters = new Dictionary<string, int>();

            if (model.AgeId > 0) filters.Add(CoreDataFilters.AgeId, model.AgeId);
            if (model.SexId > 0) filters.Add(CoreDataFilters.SexId, model.SexId);
            if (model.AreaTypeId > 0) filters.Add(CoreDataFilters.AreaTypeId, model.AreaTypeId);
            if (model.CategoryTypeId > 0) filters.Add(CoreDataFilters.CategoryTypeId, model.CategoryTypeId);
            if (model.Month > 0) filters.Add(CoreDataFilters.Month, model.Month);
            if (model.Year > 0) filters.Add(CoreDataFilters.Year, model.Year);
            if (model.Quarter > 0) filters.Add(CoreDataFilters.Quarter, model.Quarter);
            if (model.YearRange > 0) filters.Add(CoreDataFilters.YearRange, model.YearRange);

            return filters;
        }
 public ActionResult BrowseIndicatorData(BrowseDataViewModel model)
 {
     var filters = GetFilters(model);
     int rowsCount = 0;
     var results = new CoreDataSetViewModel()
     {
         DataSet = _coreDataRepository.GetCoreDataSet(model.IndicatorId, filters, out rowsCount),
         RowsFound = rowsCount,
         CanDeleteDataSet = _coreDataRepository.CanDeleteDataSet(model.IndicatorId, _userName)
     };
     return PartialView("_CoreData", results);
 }
        public ActionResult DeleteIndicatorData(BrowseDataViewModel model)
        {
           
            var filters = GetFilters(model);

            var coreDataSetViewModel = new CoreDataSetViewModel();

            try
            {
               var rowsDeleted = _coreDataRepository.DeleteCoreDataSet(model.IndicatorId, filters, _userName);
                coreDataSetViewModel.DeleteStatus = true;
                coreDataSetViewModel.Message = string.Format("{0} rows have been deleted",
                    rowsDeleted);
            }
            catch (Exception exception)
            {
                ExceptionLogger.LogException(exception, "Global.asax");
                coreDataSetViewModel.DeleteStatus = false;
                coreDataSetViewModel.Message = "Error occurred while deleting data - " + exception.Message;
            }
            
           return PartialView("_CoreData", coreDataSetViewModel);
        }
        public ActionResult BrowseIndicatorData(int indicatorId)
        {
            var rowsCount = 0;
            var model = new BrowseDataViewModel()
            {
                IndicatorId = indicatorId,
                Results = new CoreDataSetViewModel()
                {
                    DataSet = _coreDataRepository.GetCoreDataSet(indicatorId,out rowsCount),
                    RowsFound = rowsCount,
                    CanDeleteDataSet = _coreDataRepository.CanDeleteDataSet(indicatorId, UserName)
                }
            };
            
            PopulateFilterDataDropDownLists(model);

            return PartialView("BrowseIndicatorData", model);
        }