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));
        }
Beispiel #2
0
        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);
        }