Esempio n. 1
0
        private T PopulatePayload <T>(ChangeHistoryViewModel vm, T payload) where T : SearchChangeHistoryPayload
        {
            payload.EstablishmentFieldIds = vm.IsEstablishmentSearch && vm.SelectedEstablishmentFields.Any() ? vm.SelectedEstablishmentFields.ToArray() : null;
            payload.EstablishmentTypeIds  = vm.IsEstablishmentSearch && vm.SelectedEstablishmentTypeIds.Any() ? vm.SelectedEstablishmentTypeIds.ToArray() : null;
            payload.GroupTypeIds          = !vm.IsEstablishmentSearch && vm.SelectedGroupTypeIds.Any() ? vm.SelectedGroupTypeIds.ToArray() : null;

            payload.EntityName             = vm.IsEstablishmentSearch ? "establishments" : "groups";
            payload.ApproverUserGroupCode  = vm.ApprovedBy.Clean();
            payload.SuggesterUserGroupCode = vm.SuggestedBy.Clean();
            payload.SortBy = vm.Sortby;

            if (vm.DateFilterMode == ChangeHistoryViewModel.DATE_FILTER_MODE_APPLIED)
            {
                payload.AppliedDateFrom = vm.DateFilterFrom?.ToDateTime();
                payload.AppliedDateTo   = vm.DateFilterTo?.ToDateTime();
            }
            else if (vm.DateFilterMode == ChangeHistoryViewModel.DATE_FILTER_MODE_APPROVED)
            {
                payload.ApprovedDateFrom = vm.DateFilterFrom?.ToDateTime();
                payload.ApprovedDateTo   = vm.DateFilterTo?.ToDateTime();
            }
            else if (vm.DateFilterMode == ChangeHistoryViewModel.DATE_FILTER_MODE_EFFECTIVE)
            {
                payload.EffectiveDateFrom = vm.DateFilterFrom?.ToDateTime();
                payload.EffectiveDateTo   = vm.DateFilterTo?.ToDateTime();
            }
            return(payload);
        }
Esempio n. 2
0
        public async Task <ActionResult> SearchChangeHistory(ChangeHistoryViewModel viewModel)
        {
            if (!viewModel.NoResultsForName)
            {
                if (viewModel.SearchType.HasValue)
                {
                    if (ModelState.IsValid)
                    {
                        if (viewModel.SearchType.OneOfThese(eSearchType.Text, eSearchType.EstablishmentAll))
                        {
                            return(Redirect(Url.RouteUrl("ChangeHistoryEstablishments") + "?" + Request.QueryString));
                        }

                        if (viewModel.SearchType.OneOfThese(eSearchType.Group, eSearchType.GroupAll))
                        {
                            return(Redirect(Url.RouteUrl("ChangeHistoryGroups") + "?" + Request.QueryString));
                        }

                        throw new NotSupportedException($"The search type '{viewModel.SearchType}' is not recognised.");
                    }
                }
            }

            return(await Index(viewModel));
        }
Esempio n. 3
0
        public async Task <PartialViewResult> GroupResultsPartial(ChangeHistoryViewModel viewModel)
        {
            viewModel = await ProcessGroupSearch(viewModel);

            HttpContext.Response.Headers.Add("x-count", viewModel.Count.ToString());
            return(PartialView("Partials/_GroupResults", viewModel));
        }
Esempio n. 4
0
        private async Task <ChangeHistoryViewModel> ProcessEstablishmentSearch(ChangeHistoryViewModel viewModel)
        {
            if (viewModel.SearchType == eSearchType.Text)
            {
                var result = await TryGetEstablishment(viewModel);

                if (result != null)
                {
                    viewModel.EstablishmentName = result.Item2;
                    var establishmentChanges = await _establishmentReadService.GetChangeHistoryAsync(result.Item1, viewModel.Skip, viewModel.Take, viewModel.Sortby, GetEstablishmentChangeHistoryFilters(viewModel), User);

                    viewModel.Items = ConvertEstablishmentChanges(establishmentChanges, result.Item2);
                    viewModel.Count = establishmentChanges.Count;
                    viewModel.SingleEstablishment = true;
                }
                else
                {
                    viewModel.NoResultsForName = true;
                }
            }
            else
            {
                var payload = PopulatePayload(viewModel, new SearchChangeHistoryBrowsePayload(viewModel.Skip, viewModel.Take));
                var changes = await _svc.SearchAsync(payload, User);

                viewModel.Items = new List <ChangeHistorySearchItem>(changes.Items);
                viewModel.Count = changes.Count;
            }

            return(viewModel);
        }
Esempio n. 5
0
        public async Task <ActionResult> SearchChangeHistoryDownload(Guid id, ChangeHistoryViewModel vm)
        {
            var progress = await _svc.GetDownloadGenerationProgressAsync(id, User);

            return(progress.IsComplete
                ? View("ReadyToDownload", new Tuple <ProgressDto, ChangeHistoryViewModel>(progress, vm))
                : View("PreparingPleaseWait", progress));
        }
Esempio n. 6
0
 private async Task PopulateLists(ChangeHistoryViewModel model)
 {
     model.SuggesterGroups = (await _svc.GetSuggesterGroupsAsync(User)).OrderBy(s => s.Name).Select(s => new SelectListItem {
         Text = s.Name, Value = s.Code
     });
     model.ApproverGroups      = model.SuggesterGroups;
     model.EstablishmentTypes  = (await _lookupService.EstablishmentTypesGetAllAsync()).OrderBy(e => e.Name).Select(e => new LookupItemViewModel(e));
     model.GroupTypes          = (await _lookupService.GroupTypesGetAllAsync()).OrderBy(g => g.Name).Select(g => new LookupItemViewModel(g));
     model.EstablishmentFields = (await _svc.GetEstablishmentFieldsAsync(User)).OrderBy(e => e.Text).Select(s => new StringLookupItemViewModel(s.Key, s.Text));
 }
Esempio n. 7
0
        public async Task <PartialViewResult> EstablishmentResultsPartial(ChangeHistoryViewModel viewModel)
        {
            if (viewModel.SearchType == null)
            {
                viewModel.SearchType = eSearchType.EstablishmentAll;
            }
            viewModel = await ProcessEstablishmentSearch(viewModel);

            HttpContext.Response.Headers.Add("x-count", viewModel.Count.ToString());
            return(PartialView("Partials/_EstablishmentResults", viewModel));
        }
Esempio n. 8
0
        public async Task <ActionResult> SearchChangeHistoryGroups(ChangeHistoryViewModel viewModel)
        {
            viewModel = await ProcessGroupSearch(viewModel);

            if (viewModel.GroupSearchError)
            {
                return(View("Index", viewModel));
            }

            await PopulateLists(viewModel);

            return(View("Results", viewModel));
        }
Esempio n. 9
0
        private async Task <Tuple <int, string> > TryGetGoupUid(ChangeHistoryViewModel model)
        {
            int?groupUid  = null;
            var groupName = "";

            if (model.GroupSearchModel.AutoSuggestValueAsInt.HasValue)
            {
                groupUid = model.GroupSearchModel.AutoSuggestValueAsInt.Value;
                var group = await _groupReadService.GetAsync(groupUid.Value, User);

                if (group.Success)
                {
                    groupName = group.ReturnValue.Name;
                }
            }

            if (groupUid == null || string.IsNullOrWhiteSpace(groupName))
            {
                ApiPagedResult <SearchGroupDocument> results = null;
                var searchText = model.GroupSearchModel.Text.Clean();
                if (searchText != null)
                {
                    results =
                        await _groupReadService.SearchByIdsAsync(searchText, searchText.ToInteger(), searchText, searchText.ToInteger(), User);
                }

                if (results == null || results.Count == 0)
                {
                    var payload = new GroupSearchPayload(model.Skip, model.Take)
                    {
                        Text = model.GroupSearchModel.Text.Clean()
                    };

                    results = await _groupReadService.SearchAsync(payload, User);
                }

                if (results != null && results.Count > 0)
                {
                    groupUid  = results.Items.First().GroupUId;
                    groupName = results.Items.First().Name;
                }
                else
                {
                    return(null);
                }
            }

            return(new Tuple <int, string>(groupUid.Value, groupName));
        }
Esempio n. 10
0
        public ActionResult Index(int id, string name)
        {
            int    selectedReport     = id;
            string selectedReportName = name;


            List <DB.ReportChangeLog> reportChange;

            reportChange = DB_MSBDW.ReportChangeLogs.Where(sp => sp.SSRSReportId == selectedReport).OrderByDescending(sp => sp.RowCreateDate).ToList();
            ChangeHistoryViewModel changeHistoryViewModel = new ChangeHistoryViewModel(reportChange);

            ViewData["selectedReportId"]   = selectedReport;
            ViewData["buttonName"]         = "CH";
            ViewData["selectedReportName"] = selectedReportName;
            return(View(changeHistoryViewModel.reportChangeLogs));
        }
Esempio n. 11
0
        public async Task <ActionResult> SearchChangeHistoryEstab(ChangeHistoryViewModel viewModel)
        {
            if (viewModel.SearchType == null)
            {
                viewModel.SearchType = eSearchType.EstablishmentAll;
            }
            viewModel = await ProcessEstablishmentSearch(viewModel);

            if (viewModel.NoResultsForName)
            {
                return(View("Index", viewModel));
            }

            await PopulateLists(viewModel);

            return(View("Results", viewModel));
        }
Esempio n. 12
0
        public async Task <ActionResult> SearchChangeHistoryDownloadAjax(Guid id, ChangeHistoryViewModel vm)
        {
            var progress = await _svc.GetDownloadGenerationProgressAsync(id, User);

            if (vm.SingleEstablishment || vm.SingleGroup)
            {
                return(Json(
                           JsonConvert.SerializeObject(new
                {
                    status = progress.IsComplete, redirect = "/ChangeHistory/Search/Download/"
                }), JsonRequestBehavior.AllowGet));
            }

            return(Json(
                       JsonConvert.SerializeObject(new
            {
                status = progress.IsComplete, redirect = string.Concat("/ChangeHistory/Download/", id)
            }), JsonRequestBehavior.AllowGet));
        }
Esempio n. 13
0
        public async Task <ActionResult> SearchChangeHistoryGroups(ChangeHistoryViewModel viewModel)
        {
            if (viewModel.SearchType == eSearchType.Group && viewModel.GroupSearchModel.Text.IsNullOrEmpty())
            {
                ModelState.AddModelError("GroupSearchModel.Text", "We could not find any establishment groups matching your search criteria");
                return(View("Index", viewModel));
            }

            viewModel = await ProcessGroupSearch(viewModel);

            if (viewModel.GroupSearchError)
            {
                return(View("Index", viewModel));
            }

            await PopulateLists(viewModel);

            return(View("Results", viewModel));
        }
Esempio n. 14
0
        private async Task <ChangeHistoryViewModel> ProcessGroupSearch(ChangeHistoryViewModel viewModel)
        {
            switch (viewModel.SearchType)
            {
            case eSearchType.Group:
                var groupInfo = await TryGetGoupUid(viewModel);

                if (groupInfo != null)
                {
                    var changes = await _groupReadService.GetChangeHistoryAsync(groupInfo.Item1, viewModel.Skip, viewModel.Take, viewModel.Sortby, viewModel.DateFilterFrom?.ToDateTime(), viewModel.DateFilterTo?.ToDateTime(), viewModel.SuggestedBy, User);

                    viewModel.Items       = ConvertGroupChanges(changes, groupInfo.Item2);
                    viewModel.Count       = changes.Count;
                    viewModel.SingleGroup = true;
                    viewModel.GroupName   = groupInfo.Item2;
                }
                else
                {
                    viewModel.GroupSearchError = true;
                    ModelState.AddModelError("GroupSearchModel.Text", "We could not find any establishment groups matching your search criteria");
                }

                break;

            case eSearchType.GroupAll:
                var payload    = PopulatePayload(viewModel, new SearchChangeHistoryBrowsePayload(viewModel.Skip, viewModel.Take));
                var allChanges = await _svc.SearchAsync(payload, User);

                viewModel.Items = new List <ChangeHistorySearchItem>(allChanges.Items);
                viewModel.Count = allChanges.Count;
                break;

            default:
                viewModel.GroupSearchError = true;
                break;
            }

            return(viewModel);
        }
Esempio n. 15
0
        private async Task <ChangeHistoryViewModel> ProcessEstablishmentSearch(ChangeHistoryViewModel viewModel)
        {
            if (viewModel.SearchType == eSearchType.Text)
            {
                var result = await TryGetEstablishment(viewModel);

                if (result != null)
                {
                    viewModel.EstablishmentName = result.Item2;
                    var establishmentChanges = await _establishmentReadService.GetChangeHistoryAsync(result.Item1, viewModel.Skip, viewModel.Take, viewModel.Sortby, GetEstablishmentChangeHistoryFilters(viewModel), User);

                    viewModel.Items = ConvertEstablishmentChanges(establishmentChanges, result.Item2);
                    viewModel.Count = establishmentChanges.Count;
                    viewModel.SingleEstablishment = true;
                }
                else
                {
                    viewModel.NoResultsForName = true;
                    ModelState.AddModelError("TextSearchModel.Text", "We could not find any establishments matching your search criteria");
                }
            }
            else
            {
                var payload = PopulatePayload(viewModel, new SearchChangeHistoryBrowsePayload(viewModel.Skip, viewModel.Take));
                var changes = await _svc.SearchAsync(payload, User);

                viewModel.Items = new List <ChangeHistorySearchItem>(changes.Items);
                viewModel.Count = changes.Count;

                if (viewModel.Count == 0)
                {
                    ModelState.AddModelError("searchby-all-ref", "We could not find any establishments matching your search criteria");
                    viewModel.NoResultsForName = true;
                }
            }

            return(viewModel);
        }
Esempio n. 16
0
        public async Task <ActionResult> SearchChangeHistoryEstab(ChangeHistoryViewModel viewModel)
        {
            if (viewModel.SearchType == null)
            {
                viewModel.SearchType = eSearchType.EstablishmentAll;
            }

            if (viewModel.IsEstablishmentSearch && viewModel.SearchType == eSearchType.Text && viewModel.TextSearchModel.Text.IsNullOrEmpty())
            {
                ModelState.AddModelError("TextSearchModel.Text", "Please enter an establishment name, URN, LAESTAB or UKPRN to start a search");
                return(View("Index", viewModel));
            }

            viewModel = await ProcessEstablishmentSearch(viewModel);

            if (viewModel.NoResultsForName)
            {
                return(View("Index", viewModel));
            }

            await PopulateLists(viewModel);

            return(View("Results", viewModel));
        }
Esempio n. 17
0
        public async Task <ActionResult> SearchChangeHistory(ChangeHistoryViewModel viewModel)
        {
            if (viewModel.SearchType == eSearchType.Text && viewModel.NoResultsForName)
            {
                var errorMessage = "We could not find any establishments matching your search criteria";
                if (viewModel.TextSearchModel.Text == string.Empty)
                {
                    errorMessage = "Please enter an establishment name, URN, LAESTAB or UKPRN to start a search";
                }

                ModelState.AddModelError("TextSearchModel.Text", errorMessage);
            }

            if (!viewModel.NoResultsForName)
            {
                if (viewModel.SearchType.HasValue)
                {
                    if (ModelState.IsValid)
                    {
                        if (viewModel.SearchType.OneOfThese(eSearchType.Text, eSearchType.EstablishmentAll))
                        {
                            return(Redirect(Url.RouteUrl("ChangeHistoryEstablishments") + "?" + Request.QueryString));
                        }

                        if (viewModel.SearchType.OneOfThese(eSearchType.Group, eSearchType.GroupAll))
                        {
                            return(Redirect(Url.RouteUrl("ChangeHistoryGroups") + "?" + Request.QueryString));
                        }

                        throw new NotSupportedException($"The search type '{viewModel.SearchType}' is not recognised.");
                    }
                }
            }

            return(await Index(viewModel));
        }
        public async Task <ChangeHistoryViewModel> GetHistoryRecord()
        {
            var entity = await _menuItemService.GetHistoryRecordAsync();

            return(ChangeHistoryViewModel.Map(entity));
        }
Esempio n. 19
0
        public ActionResult AddChangeHistoryResult()
        {
            int        SSRSReportId     = Convert.ToInt32(Request.Form["selectedReportId"]);
            string     selectedSPName   = Request.Form["IsRDLChange"] == "No" ? Request.Form["ReportSPNameValidated"]: Request.Form["ReportSPName"];
            List <int> UnSelectedRepIds = new List <int>();

            List <DB.Report_ReportSP> relatedRpts = new List <DB.Report_ReportSP>();
            int selectedSPId = -1;

            if (selectedSPName != "" && selectedSPName != null)
            {
                selectedSPId = DB_MSBDW.ReportSPs.FirstOrDefault(s => s.SPName == selectedSPName).ID;
                relatedRpts  = DB_MSBDW.Report_ReportSP.Where(sp => sp.ReportSPId == selectedSPId).Distinct().ToList();
                string cbl1 = "checkboxlist[", cbl2 = "].id", cbl3 = "].isselected";

                if (Request.Form[cbl1 + "0" + cbl3] != null)
                {
                    for (int i = 0; i < relatedRpts.Count - 1; i++)
                    {
                        if (!Request.Form[cbl1 + i.ToString() + cbl3].Contains("true".ToLower()))
                        {
                            UnSelectedRepIds.Add(Convert.ToInt32(Request.Form[cbl1 + i.ToString() + cbl2]));
                        }
                    }
                }
            }
            string selectedEuName = Request.Form["CreatedEndUser"];

            for (int i = 0; i < relatedRpts.Count || (Request.Form["IsRDLChange"] == "Yes" && relatedRpts.Count == 0); i++)  // both with SP selected(at least one in relatedreports list, including "Yes" + SP and "No" + SP) and "Yes" + no SP  can go through, and prevent "Yes" + SP index out of range exception
            {
                DB.ReportChangeLog temp = new DB.ReportChangeLog();
                temp.ITComment       = Request.Unvalidated.Form["ITComment"];
                temp.PublicComment   = Request.Form["PublicComment"];
                temp.RowCreateDate   = DateTime.Now;
                temp.ChangeEnduserId = DB_MSBDW.endusers.FirstOrDefault(eu => eu.full_name == selectedEuName).id;
                temp.ChangeReason    = Request["ChangeReason"];
                if (selectedSPId == -1 && Request.Form["IsRDLChange"] == "Yes") // For IsRdlChange is yes and no SP selected, break from the loop
                {
                    temp.SSRSReportId = SSRSReportId;
                    temp.IsRDLChange  = true;
                    DB_MSBDW.ReportChangeLogs.Add(temp);
                    DB_MSBDW.SaveChanges();
                    break;
                }
                temp.ReportSPId = selectedSPId;

                temp.SSRSReportId = relatedRpts[i].SSRSReportId;
                if (Request.Form["IsRDLChange"] == "Yes" && !UnSelectedRepIds.Contains((int)relatedRpts[i].SSRSReportId)) // Only the selected reports(from checkboxlist) and current report will get flagged  isrdgchange true when user selects IsRDlChange Yes
                {
                    temp.IsRDLChange = true;
                }
                else
                {
                    temp.IsRDLChange = false;
                }



                DB_MSBDW.ReportChangeLogs.Add(temp);
                DB_MSBDW.SaveChanges();
            }



            List <DB.ReportChangeLog> reportChange           = DB_MSBDW.ReportChangeLogs.Where(sp => sp.SSRSReportId == SSRSReportId).OrderByDescending(sp => sp.RowCreateDate).ToList();
            ChangeHistoryViewModel    changeHistoryViewModel = new ChangeHistoryViewModel(reportChange);


            ViewData["selectedReportId"]   = SSRSReportId;
            ViewData["buttonName"]         = "CH";
            ViewData["selectedReportName"] = Request.Form["selectedReportName"];

            return(RedirectToAction("Index", "ChangeHistory", new { id = SSRSReportId, name = Request.Form["selectedReportName"] }));
        }
Esempio n. 20
0
        private async Task <Tuple <int, string> > TryGetEstablishment(ChangeHistoryViewModel viewModel)
        {
            if (viewModel.TextSearchType == ChangeHistoryViewModel.eTextSearchType.URN)
            {
                var urn = Int32.Parse(viewModel.TextSearchModel.Text);
                var establishmentName = (await _establishmentReadService.GetEstablishmentNameAsync(urn, User)) ?? "";
                return(new Tuple <int, string>(urn, establishmentName));
            }
            else
            {
                int?   urn  = null;
                string name = null;
                if (viewModel.TextSearchModel.AutoSuggestValueAsInt.HasValue)
                {
                    urn  = viewModel.TextSearchModel.AutoSuggestValueAsInt;
                    name = (await _establishmentReadService.GetEstablishmentNameAsync(urn.Value, User)) ?? "";
                }
                else
                {
                    var payload = new EstablishmentSearchPayload(viewModel.Skip, viewModel.Take);
                    var filters = payload.Filters;

                    if (viewModel.SearchType == eSearchType.Text || viewModel.SearchType == eSearchType.EstablishmentAll)
                    {
                        if (viewModel.TextSearchType == ChangeHistoryViewModel.eTextSearchType.UKPRN)
                        {
                            filters.UKPRN = viewModel.TextSearchModel.Text;
                        }
                        else if (viewModel.TextSearchType == ChangeHistoryViewModel.eTextSearchType.LAESTAB)
                        {
                            var laestab          = LAESTAB.TryParse(viewModel.TextSearchModel.Text).Value;
                            var localAuthorityId = (await _lookupService.LocalAuthorityGetAllAsync()).FirstOrDefault(x => x.Code == laestab.LocalAuthorityCode)?.Id;
                            if (localAuthorityId.HasValue)
                            {
                                filters.LocalAuthorityIds = new int[] { localAuthorityId.Value }
                            }
                            ;
                            filters.EstablishmentNumber = laestab.EstablishmentNumber;
                        }
                        else if (viewModel.TextSearchType == ChangeHistoryViewModel.eTextSearchType.EstablishmentName)
                        {
                            payload.Text = viewModel.TextSearchModel.Text;
                        }
                        else
                        {
                            return(null);
                        }
                    }

                    var results = await _establishmentReadService.SearchAsync(payload, User);

                    if (results != null && results.Items.Any())
                    {
                        urn  = results.Items.First().Urn;
                        name = results.Items.First().Name;
                    }
                }

                if (urn.HasValue)
                {
                    return(new Tuple <int, string>(urn.Value, name));
                }
            }

            return(null);
        }
Esempio n. 21
0
 public async Task <ActionResult> Index(ChangeHistoryViewModel viewModel)
 {
     return(View("Index", viewModel));
 }
Esempio n. 22
0
        public async Task <ChangeHistoryViewModel> GetHistoryRecord()
        {
            var entity = await _contentGroupService.GetHistoryRecordAsync(TableName.Discount);

            return(ChangeHistoryViewModel.Map(entity));
        }
Esempio n. 23
0
        public async Task <ActionResult> Download(ChangeHistoryViewModel viewModel)
        {
            if (!viewModel.DownloadFormat.HasValue)
            {
                if (viewModel.DisplayErrors)
                {
                    ModelState.AddModelError(nameof(viewModel.DownloadFormat), "A file format must be selected");
                }
                return(View("Download", viewModel));
            }

            if (viewModel.IsEstablishmentSearch)
            {
                if (viewModel.SearchType == eSearchType.Text)
                {
                    var result = await TryGetEstablishment(viewModel);

                    var payload = new EstablishmentChangeHistoryDownloadFilters
                    {
                        ApprovedBy    = viewModel.ApprovedBy,
                        FieldsUpdated = viewModel.SelectedEstablishmentFields.Any() ? viewModel.SelectedEstablishmentFields.ToArray() : null,
                        FileFormat    = viewModel.DownloadFormat == eFileFormat.CSV ? DownloadType.csv : DownloadType.xlsx,
                        SuggestedBy   = viewModel.SuggestedBy
                    };

                    if (viewModel.DateFilterMode == ChangeHistoryViewModel.DATE_FILTER_MODE_APPLIED)
                    {
                        payload.DateAppliedFrom = viewModel.DateFilterFrom?.ToDateTime();
                        payload.DateAppliedTo   = viewModel.DateFilterTo?.ToDateTime();
                    }
                    else if (viewModel.DateFilterMode == ChangeHistoryViewModel.DATE_FILTER_MODE_APPROVED)
                    {
                        payload.DateApprovedFrom = viewModel.DateFilterFrom?.ToDateTime();
                        payload.DateApprovedTo   = viewModel.DateFilterTo?.ToDateTime();
                    }
                    else if (viewModel.DateFilterMode == ChangeHistoryViewModel.DATE_FILTER_MODE_EFFECTIVE)
                    {
                        payload.DateEffectiveFrom = viewModel.DateFilterFrom?.ToDateTime();
                        payload.DateEffectiveTo   = viewModel.DateFilterTo?.ToDateTime();
                    }

                    var progress = await _establishmentReadService.GetChangeHistoryDownloadAsync(result.Item1, payload, User);

                    return(View("ReadyToDownload",
                                new Tuple <ProgressDto, ChangeHistoryViewModel>(
                                    new ProgressDto
                    {
                        FileLocationUri = progress.Url,
                        FileSizeInBytes = progress.FileSizeInBytes
                    }, viewModel)));
                }
                else
                {
                    var payload = PopulatePayload(viewModel,
                                                  new SearchChangeHistoryDownloadPayload(viewModel.DownloadFormat.Value));
                    var progress = await _svc.SearchWithDownloadGenerationAsync(payload, User);

                    return(Redirect(string.Concat(Url.RouteUrl("ChangeHistoryDownload", new { id = progress.Id }),
                                                  "?", Request.QueryString)));
                }
            }

            if (viewModel.SearchType == eSearchType.Group)
            {
                var groupInfo = await TryGetGoupUid(viewModel);

                var progress = await _groupDownloadService.DownloadGroupHistory(groupInfo.Item1,
                                                                                viewModel.DownloadFormat == eFileFormat.CSV?DownloadType.csv : DownloadType.xlsx,
                                                                                viewModel.DateFilterFrom?.ToDateTime(), viewModel.DateFilterTo?.ToDateTime(),
                                                                                viewModel.SuggestedBy, User);

                return(View("ReadyToDownload",
                            new Tuple <ProgressDto, ChangeHistoryViewModel>(
                                new ProgressDto
                {
                    FileLocationUri = progress.Url,
                    FileSizeInBytes = progress.FileSizeInBytes
                }, viewModel)));
            }

            var payloadAll = PopulatePayload(viewModel,
                                             new SearchChangeHistoryDownloadPayload(viewModel.DownloadFormat.Value));
            var progressAll = await _svc.SearchWithDownloadGenerationAsync(payloadAll, User);

            return(Redirect(string.Concat(Url.RouteUrl("ChangeHistoryDownload", new { id = progressAll.Id }),
                                          "?", Request.QueryString)));
        }
Esempio n. 24
0
        private EstablishmentChangeHistoryFilters GetEstablishmentChangeHistoryFilters(ChangeHistoryViewModel viewModel)
        {
            var filters = new EstablishmentChangeHistoryFilters
            {
                ApprovedBy    = viewModel.ApprovedBy,
                SuggestedBy   = viewModel.SuggestedBy,
                FieldsUpdated = viewModel.SelectedEstablishmentFields.ToArray()
            };

            switch (viewModel.DateFilterMode)
            {
            case ChangeHistoryViewModel.DATE_FILTER_MODE_EFFECTIVE:
                filters.DateEffectiveFrom = viewModel.DateFilterFrom?.ToDateTime();
                filters.DateEffectiveTo   = viewModel.DateFilterTo?.ToDateTime();
                break;

            case ChangeHistoryViewModel.DATE_FILTER_MODE_APPLIED:
                filters.DateAppliedFrom = viewModel.DateFilterFrom?.ToDateTime();
                filters.DateAppliedTo   = viewModel.DateFilterTo?.ToDateTime();
                break;

            case ChangeHistoryViewModel.DATE_FILTER_MODE_APPROVED:
                filters.DateApprovedFrom = viewModel.DateFilterFrom?.ToDateTime();
                filters.DateApprovedTo   = viewModel.DateFilterTo?.ToDateTime();
                break;
            }

            return(filters);
        }