コード例 #1
0
        /// <summary>
        /// Gets message of the collection of entity of common.
        /// </summary>
        /// <param name="criteria"></param>
        /// <param name="queryPagingSetting"></param>
        /// <param name="queryOrderBySettingCollection"></param>
        /// <returns>business layer built-in message <see cref="List<Elmah.DataSourceEntities.ElmahSource>"/></returns>
        public async Task <Elmah.CommonBLLEntities.ElmahSourceResponseMessageBuiltIn> GetMessageOfEntityByIdentifier(
            Elmah.CommonBLLEntities.ElmahSourceChainedQueryCriteriaIdentifier criteria
            , Framework.Queries.QueryPagingSetting queryPagingSetting
            , Framework.Queries.QueryOrderBySettingCollection queryOrderBySettingCollection
            , Framework.Models.DataServiceTypes dataServiceType = Framework.Models.DataServiceTypes.DataSourceResult)
        {
            //log.Info(string.Format("{0}: GetMessageOfEntityByIdentifier", Framework.Models.LoggingOptions.UI_Process_Started.ToString()));
            var _Request = new Elmah.CommonBLLEntities.ElmahSourceRequestMessageUserDefinedOfIdentifier(
                Framework.Services.BusinessLogicLayerRequestTypes.Search
                , "GetMessageOfEntityByIdentifier"
                , Guid.NewGuid().ToString()
                );

            _Request.Criteria           = criteria;
            _Request.QueryPagingSetting = queryPagingSetting;
            if (queryOrderBySettingCollection == null || queryOrderBySettingCollection.Count == 0)
            {
                _Request.QueryOrderBySettingCollection = new Framework.Queries.QueryOrderBySettingCollection();
                _Request.QueryOrderBySettingCollection.Add("Source", Framework.Queries.QueryOrderDirections.Ascending);
            }
            else
            {
                _Request.QueryOrderBySettingCollection = queryOrderBySettingCollection;
            }
            _Request.DataServiceType = dataServiceType;

            Elmah.CommonBLLEntities.ElmahSourceResponseMessageBuiltIn _Response = await GetCollectionOfEntityByIdentifier(_Request);

            return(_Response);
        }
コード例 #2
0
        /// <summary>
        /// Export current search result.
        /// </summary>
        /// <param name="dataServiceType">Type of the data service.</param>
        /// <returns></returns>
        //[Authorize(Roles = Elmah.MvcCore.Security.RolesCombination.AllRoles)]
        public async Task <ActionResult> Index_Export(Framework.Models.DataServiceTypes dataServiceType)
        {
            //log.Info(string.Format("{0}: Index_Export", Framework.Models.LoggingOptions.UI_Process_Started.ToString()));

            Framework.ViewModels.ViewModelBase <Elmah.CommonBLLEntities.ElmahHostChainedQueryCriteriaCommon> vmFromTempData;
            if (TempData.ContainsKey(TempDataKey_Index))
            {
                using (var scope = _serviceProvider.CreateScope())
                {
                    vmFromTempData = (Framework.ViewModels.ViewModelBase <Elmah.CommonBLLEntities.ElmahHostChainedQueryCriteriaCommon>)JsonConvert.DeserializeObject <Framework.ViewModels.ViewModelBase <Elmah.CommonBLLEntities.ElmahHostChainedQueryCriteriaCommon> >(TempData[TempDataKey_Index].ToString());
                    var serviceInstance = (Elmah.WcfContracts.IElmahHostService)scope.ServiceProvider.GetRequiredService(typeof(Elmah.WcfContracts.IElmahHostService));
                    var searchResult    = await serviceInstance.GetMessageOfEntityByCommon(
                        vmFromTempData.Criteria
                        , new Framework.Queries.QueryPagingSetting(-1, -1)
                        , new Framework.Queries.QueryOrderBySettingCollection(vmFromTempData.QueryOrderBySettingCollecionInString)
                        , dataServiceType);

                    var result = searchResult.DataStreamServiceResult;

                    TempData[TempDataKey_Index] = JsonConvert.SerializeObject(vmFromTempData.GetPrimaryInformationEntity());
                    TempData.Keep(TempDataKey_Index);

                    return(File(result.Result, result.MIMEType, string.Format("Index_Export{0}{1}", result.DataServiceType, result.FileExtension)));
                }
            }

            return(null);
        }
コード例 #3
0
 /// <summary>
 /// Maps the data access layer message to business logic layer response message.
 /// </summary>
 /// <typeparam name="T">any type</typeparam>
 /// <typeparam name="TList">The type of the list.</typeparam>
 /// <param name="from">From.</param>
 /// <param name="to">To.</param>
 public static void MapDataAccessLayerMessageToBusinessLogicLayerResponseMessage <T, TList>(
     Framework.Models.DataAccessLayerMessageBase <T> from, BusinessLogicLayerResponseMessageBase <TList> to
     , Framework.Models.DataServiceTypes dataServiceType
     , Framework.Models.IDataStreamServiceProviderBase <TList, T> dataStreamServiceProvider)
     where TList : List <T>, new()
     where T : class, new()
 {
     if (from.DataAccessLayerMessageStatus == Framework.Models.DataAccessLayerMessageStatus.Success)
     {
         to.BusinessLogicLayerResponseStatus = BusinessLogicLayerResponseStatus.MessageOK;
         if (from.QueryPagingResult != null)
         {
             to.QueryPagingResult = from.QueryPagingResult.Clone();
         }
         TList fromList = new TList();
         fromList.Add(from.Result);
         to.DataStreamServiceResult = dataStreamServiceProvider.BuildResult(fromList, dataServiceType);
     }
     else if (from.DataAccessLayerMessageStatus == Framework.Models.DataAccessLayerMessageStatus.SuccessButNoResult)
     {
         to.BusinessLogicLayerResponseStatus = BusinessLogicLayerResponseStatus.NoValueFromDataSource;
         TList fromList = new TList();
         fromList.Add(from.Result);
         to.DataStreamServiceResult = dataStreamServiceProvider.BuildResult(fromList, dataServiceType);
     }
     else
     {
         to.BusinessLogicLayerResponseStatus = BusinessLogicLayerResponseStatus.MessageErrorDetected;
         to.ServerErrorMessage = from.Message;
     }
 }
コード例 #4
0
        /// <summary>
        /// Gets message of the collection of entity of common.
        /// </summary>
        /// <param name="criteria"></param>
        /// <param name="queryPagingSetting"></param>
        /// <param name="queryOrderBySettingCollection"></param>
        /// <returns>business layer built-in message <see cref="Elmah.DataSourceEntities.MapItemCollection"/></returns>
        public async Task <Elmah.CommonBLLEntities.BusinessLogicLayerResponseMessageMapItemCollection> GetMessageOfMapItems(
            Elmah.CommonBLLEntities.GeoSearchCriteria criteria
            , Framework.Queries.QueryPagingSetting queryPagingSetting
            , Framework.Queries.QueryOrderBySettingCollection queryOrderBySettingCollection
            , Framework.Models.DataServiceTypes dataServiceType)
        {
            //log.Info(string.Format("{0}: GetMessageOfMapItems", Framework.Models.LoggingOptions.UI_Process_Started.ToString()));
            var _Request = new Elmah.CommonBLLEntities.GeoSearchRequestMessage();

            _Request.Criteria           = criteria;
            _Request.QueryPagingSetting = queryPagingSetting;
            if (queryOrderBySettingCollection == null || queryOrderBySettingCollection.Count == 0)
            {
                _Request.QueryOrderBySettingCollection = new Framework.Queries.QueryOrderBySettingCollection();
                _Request.QueryOrderBySettingCollection.Add("Name", Framework.Queries.QueryOrderDirections.Ascending);
            }
            else
            {
                _Request.QueryOrderBySettingCollection = queryOrderBySettingCollection;
            }
            _Request.DataServiceType = dataServiceType;

            var _Response = await GetMapItems(_Request);

            return(_Response);
        }
コード例 #5
0
        public Framework.Models.DataStreamServiceResult BuildResult(TCollection input, Framework.Models.DataServiceTypes dataServiceType)
        {
/*
 *          if (dataServiceType == Framework.Models.DataServiceTypes.Csv)
 *          {
 *              Framework.Models.DataStreamServiceResult result = new Framework.Models.DataStreamServiceResult
 *              {
 *                  DataServiceType = dataServiceType,
 *                  MIMEType = "text/csv",
 *                  FileExtension = ".csv"
 *              };
 *              result.Result = BuildStreamOfLinqToCsv(input);
 *              return result;
 *          }
 *          else
 */
            if (dataServiceType == Framework.Models.DataServiceTypes.Excel2010)
            {
                Framework.Models.DataStreamServiceResult result = new Framework.Models.DataStreamServiceResult
                {
                    DataServiceType = dataServiceType,
                    MIMEType        = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
                    FileExtension   = ".xlsx"
                };
                result.Result = BuildStreamOfCloseXmlExcel2010(input);
                return(result);
            }
            else
            {
                throw new Exception(string.Format("Service Not Provided: {0}", dataServiceType));
            }
        }