public ActionResult Index() { var model = new DashboardPageModel(); using (var connection = SqlConnections.NewFor <OffersRow>()) { var offerStatuses = new OfferStatusesRepository().List(connection, new ListRequest { ColumnSelection = ColumnSelection.Details }); model.OfferStatuses = offerStatuses.Entities; var softwareFrameworks = new SoftwareFrameworksRepository().List(connection, new ListRequest { ColumnSelection = ColumnSelection.Details }); model.SoftwareFrameworks = softwareFrameworks.Entities; var offers = new OffersRepository().List(connection, new ListRequest { ColumnSelection = ColumnSelection.Details }); model.Offers = offers.Entities; var taskStatuses = new TaskStatusesRepository().List(connection, new ListRequest { ColumnSelection = ColumnSelection.Details }); model.TaskStatuses = taskStatuses.Entities; var offerCategoryTasks = new OfferCategoryTasksRepository().List(connection, new ListRequest { ColumnSelection = ColumnSelection.Details }); model.OfferCategoryTasks = offerCategoryTasks.Entities; } return(View(MVC.Views.Common.Dashboard.DashboardIndex, model)); }
public object GetData() { var data = new OfferReportData(); var language = OffersLanguageHelpers.getCurrentUIlanguageID(LanguageId).ToString(); data.OfferReportTotalPriceString = Dependency.TryResolve <ILocalTextRegistry>()?.TryGet(LanguageId, "Site.Offers.OfferReportTotalPrice"); data.OfferReportDiscountString = Dependency.TryResolve <ILocalTextRegistry>()?.TryGet(LanguageId, "Db.Offers.Offers.Discount"); using (var connection = SqlConnections.NewFor <OffersRow>()) { var offer = new OffersRepository().Retrieve(connection, new Serenity.Services.RetrieveRequest { EntityId = OfferId, IncludeColumns = new HashSet <string> { "Localizations" } }); data.Offer = offer.Entity; if (offer.Localizations.Any()) { var localOffer = offer.Localizations.FirstOrDefault(s => s.Key == language); if (localOffer.Value != null) { if (!string.IsNullOrEmpty(localOffer.Value.Name)) { data.Offer.Name = localOffer.Value.Name; } if (!string.IsNullOrEmpty(localOffer.Value.AdditionalInfo)) { data.Offer.AdditionalInfo = localOffer.Value.AdditionalInfo; } } } var offerCategories = new OfferCategoriesRepository().List(connection, new Serenity.Services.ListRequest { IncludeColumns = new HashSet <string> { "Localizations" }, Criteria = (new Criteria(OfferCategoriesRow.Fields.OfferId.Name) == OfferId), ColumnSelection = Serenity.Services.ColumnSelection.Details }); data.OfferCategories = offerCategories.Entities; if (offerCategories.Entities.Any()) { var offerCategoryIds = offerCategories.Entities.Select(oc => oc.OfferCategoryId); var listOfferCategoryLocals = connection.List <OfferCategoriesLangRow>( new Criteria(OfferCategoriesLangRow.Fields.OfferCategoryId).In(offerCategoryIds) && new Criteria(OfferCategoriesLangRow.Fields.LanguageId) == language); foreach (var listOfferCategoryLocal in listOfferCategoryLocals) { var category = data.OfferCategories .FirstOrDefault(oc => oc.OfferCategoryId == listOfferCategoryLocal.OfferCategoryId); category.CategoryNameReport = listOfferCategoryLocal.CategoryNameReport; } } var offerCategoryTasks = new OfferCategoryTasksRepository().List(connection, new Serenity.Services.ListRequest { IncludeColumns = new HashSet <string> { "Localizations" }, Criteria = (new Criteria(OfferCategoryTasksRow.Fields.OfferCategoryOfferId.Name) == OfferId), ColumnSelection = Serenity.Services.ColumnSelection.Details }); data.OfferCategoryTasks = offerCategoryTasks.Entities; if (offerCategoryTasks.Entities.Any()) { var offerCategoryTaskIds = offerCategoryTasks.Entities.Select(oc => oc.OfferCategoryTaskId); var listOfferCategoryTaskLocals = connection.List <OfferCategoryTasksLangRow>( new Criteria(OfferCategoryTasksLangRow.Fields.OfferCategoryTaskId).In(offerCategoryTaskIds) && new Criteria(OfferCategoryTasksLangRow.Fields.LanguageId) == language); foreach (var listOfferCategoryLocal in listOfferCategoryTaskLocals) { var categoryTask = data.OfferCategoryTasks .FirstOrDefault(oc => oc.OfferCategoryTaskId == listOfferCategoryLocal.OfferCategoryTaskId); categoryTask.Name = listOfferCategoryLocal.Name; } } } return(data); }