public IHttpActionResult Gets(DTO.Search searchInput)
        {
            Module.Framework.BLL fwBll = new Module.Framework.BLL();
            if (!fwBll.CanPerformAction(ControllerContext.GetAuthUserId(), moduleCode, Library.DTO.ModuleAction.CanRead))
            {
                return(InternalServerError(new Exception(Properties.Resources.NOT_AUTHORIZED)));
            }
            BLL.ReportFreeToSaleOverview bll = new BLL.ReportFreeToSaleOverview();
            Library.DTO.Notification     notification;
            int totalRows = 0;

            DTO.ReportFreeToSale.SearchFormData data = bll.GetFreeToSaleSearch(ControllerContext.GetAuthUserId(), searchInput.Filters, searchInput.PageSize, searchInput.PageIndex, searchInput.SortedBy, searchInput.SortedDirection, out totalRows, out notification);
            return(Ok(new Library.DTO.ReturnData <DTO.ReportFreeToSale.SearchFormData>()
            {
                Data = data, Message = notification, TotalRows = totalRows
            }));
        }
Beispiel #2
0
        public DTO.ReportFreeToSale.SearchFormData GetFreeToSaleSearch(Hashtable filters, int pageSize, int pageIndex, string orderBy, string orderDirection, out int totalRows, out Library.DTO.Notification notification)
        {
            DTO.ReportFreeToSale.SearchFormData searchFormData = new DTO.ReportFreeToSale.SearchFormData();
            notification = new Library.DTO.Notification()
            {
                Type = Library.DTO.NotificationType.Success
            };
            totalRows = 0;

            string ArticleCode     = string.Empty;
            string Description     = string.Empty;
            string MaterialNM      = string.Empty;
            string MaterialTypeNM  = string.Empty;
            string MaterialColorNM = string.Empty;
            string CushionNM       = string.Empty;

            if (filters.ContainsKey("ArticleCode"))
            {
                ArticleCode = filters["ArticleCode"].ToString();
            }
            if (filters.ContainsKey("Description"))
            {
                Description = filters["Description"].ToString();
            }
            if (filters.ContainsKey("MaterialNM"))
            {
                MaterialNM = filters["MaterialNM"].ToString();
            }
            if (filters.ContainsKey("MaterialTypeNM"))
            {
                MaterialTypeNM = filters["MaterialTypeNM"].ToString();
            }
            if (filters.ContainsKey("MaterialColorNM"))
            {
                MaterialColorNM = filters["MaterialColorNM"].ToString();
            }
            if (filters.ContainsKey("CushionNM"))
            {
                CushionNM = filters["CushionNM"].ToString();
            }

            try
            {
                using (ReportFTSEntities context = CreateContext())
                {
                    totalRows = context.ReportMng_action_GetSearchFreeToSale(orderBy, orderDirection, ArticleCode, Description, MaterialNM, MaterialTypeNM, MaterialColorNM, CushionNM).Count();

                    //total fields
                    var s = context.ReportMng_FreeToSaleOverview_View.ToList();
                    searchFormData.TotalFTSQnt       = s.Sum(o => (o.FTSQnt.HasValue?o.FTSQnt.Value:0));
                    searchFormData.TotalFTSQntIn40HC = s.Sum(o => (o.FTSQntIn40HC.HasValue ? o.FTSQntIn40HC.Value : 0));

                    //search result
                    var result = context.ReportMng_action_GetSearchFreeToSale(orderBy, orderDirection, ArticleCode, Description, MaterialNM, MaterialTypeNM, MaterialColorNM, CushionNM);
                    searchFormData.Data = converter.DB2DTO_FreeToSaleSearch(result.Skip(pageSize * (pageIndex - 1)).Take(pageSize).ToList());
                }
                return(searchFormData);
            }
            catch (Exception ex)
            {
                notification.Type    = Library.DTO.NotificationType.Error;
                notification.Message = ex.Message;
                notification.DetailMessage.Add(ex.Message);
                if (ex.GetBaseException() != null)
                {
                    notification.DetailMessage.Add(ex.GetBaseException().Message);
                }
                return(searchFormData);
            }
        }