Exemplo n.º 1
0
        public async Task <IActionResult> GetAuditableInformation(string typeName, int?id)
        {
            if (string.IsNullOrEmpty(typeName))
            {
                //return PartialView("_AuditableInformation");
                return(BadRequest());
            }

            if (id == null)
            {
                //return PartialView("_AuditableInformation");
                return(BadRequest());
            }

            AuditableInformationViewModel viewModel;

            switch (typeName)
            {
            case nameof(Brand):
                viewModel = await _brandService.GetAuditableInformationByIdAsync(id.Value);

                break;

            case nameof(Category):
                viewModel = await _categoryService.GetAuditableInformationByIdAsync(id.Value);

                break;

            case nameof(ContactUs):
                viewModel = await _contactUsService.GetAuditableInformationByIdAsync(id.Value);

                break;

            case nameof(Folder):
                viewModel = await _folderService.GetAuditableInformationByIdAsync(id.Value);

                break;

            case nameof(Menu):
                viewModel = await _menuService.GetAuditableInformationByIdAsync(id.Value);

                break;

            case nameof(Page):
                viewModel = await _pageService.GetAuditableInformationByIdAsync(id.Value);

                break;

            case nameof(Picture):
                viewModel = await _pictureService.GetAuditableInformationByIdAsync(id.Value);

                break;

            case nameof(SlideShow):
                viewModel = await _slideShowService.GetAuditableInformationByIdAsync(id.Value);

                break;

            case nameof(StaticContent):
                viewModel = await _staticContentService.GetAuditableInformationByIdAsync(id.Value);

                break;

            case nameof(UsefulLink):
                viewModel = await _usefulLinkService.GetAuditableInformationByIdAsync(id.Value);

                break;

            default:
                //ModelState.AddModelError("", RequestNotFound);
                //return PartialView("_AuditableInformation");
                return(BadRequest(RequestNotFound));
            }

            if (viewModel == null)
            {
                //ModelState.AddModelError("", RequestNotFound);
                //return PartialView("_AuditableInformation");
                return(BadRequest(RequestNotFound));
            }

            if (viewModel.CreatedByUserId.HasValue)
            {
                var user = await _userManager.FindByIdAsync(viewModel.CreatedByUserId.Value.ToString());

                viewModel.CreatedByUserName = user?.DisplayName ?? "-";
            }
            else
            {
                viewModel.CreatedByUserName = "******";
            }

            if (viewModel.ModifiedByUserId.HasValue)
            {
                var user = await _userManager.FindByIdAsync(viewModel.ModifiedByUserId.Value.ToString());

                viewModel.ModifiedByUserName = user?.DisplayName ?? "-";
            }
            else
            {
                viewModel.ModifiedByUserName = "******";
            }

            viewModel.CreatedPersianDateTime = viewModel.CreatedDateTime.HasValue
                ? viewModel.CreatedDateTime.ToFriendlyPersianDateTextify()
                : "-";

            viewModel.ModifiedPersianDateTime = viewModel.ModifiedDateTime.HasValue
                ? viewModel.ModifiedDateTime.ToFriendlyPersianDateTextify()
                : "-";

            var uaParser = Parser.GetDefault();

            if (!string.IsNullOrEmpty(viewModel.CreatedByBrowserName))
            {
                if (viewModel.CreatedByBrowserName != "-")
                {
                    ClientInfo c = uaParser.Parse(viewModel.CreatedByBrowserName);
                    viewModel.CreatedByBrowserName = $@"{c.OS} - {c.UA}";
                }
            }

            if (!string.IsNullOrEmpty(viewModel.ModifiedByBrowserName))
            {
                if (viewModel.ModifiedByBrowserName != "-")
                {
                    ClientInfo c = uaParser.Parse(viewModel.ModifiedByBrowserName);
                    viewModel.ModifiedByBrowserName = $@"{c.OS} - {c.UA}";
                }
            }

            //return PartialView("_AuditableInformation", model: viewModel);
            return(Json(new { data = viewModel }));
            //return PartialView("_RenderAuditableInformation");
        }