Ejemplo n.º 1
0
        public DataSourceResponse <ManufacturerViewModel> Read(DataSourceRequest request)
        {
            var responseData = this.DbContext.Manufacturers.Select(m => m);

            if (request.ServerFiltering != null)
            {
            }

            var response = new DataSourceResponse <ManufacturerViewModel>
            {
                TotalRowCount = responseData.Count()
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), val2: 0);
                responseData = responseData.OrderBy(m => m.ManufacturerId).Skip(skip).Take(request.ServerPaging.PageSize);
            }

            response.DataCollection = responseData.Select(m => new ManufacturerViewModel
            {
                ManufacturerId     = m.ManufacturerId,
                Name               = m.Name,
                Address            = m.Address,
                ContactPerson      = m.ContactPerson,
                ContactPersonPhone = m.ContactPersonPhone,
                Phone              = m.Phone,
                Fax = m.Fax
            }).ToList();

            return(response);
        }
Ejemplo n.º 2
0
        public DataSourceResponse <CategoryViewModel> Read(DataSourceRequest request)
        {
            var responseData = this.DbContext.ProductCategories.Select(c => c);

            if (request.ServerFiltering != null)
            {
            }

            var response = new DataSourceResponse <CategoryViewModel>
            {
                TotalRowCount = responseData.Count()
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), val2: 0);
                responseData = responseData.OrderBy(c => c.ProductCategoryId).Skip(skip).Take(request.ServerPaging.PageSize);
            }

            response.DataCollection = responseData.Select(s => new CategoryViewModel
            {
                Text  = s.Name,
                Value = s.ProductCategoryId
            }).ToList();

            return(response);
        }
Ejemplo n.º 3
0
        public Task <IDataSourceResponse <ChannelViewModel> > ReadAsync(DataSourceRequest request)
        {
            var responseData = this.DbContext.Channel.Select(c => c);

            if (request.ServerFiltering != null)
            {
            }

            IDataSourceResponse <ChannelViewModel> response = new DataSourceResponse <ChannelViewModel> {
                TotalRowCount = responseData.Count()
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), 0);
                responseData = responseData.OrderBy(p => p.Id).Skip(skip).Take(request.ServerPaging.PageSize);
            }

            var dataCollection = responseData.ToList();

            foreach (var data in dataCollection)
            {
                response.DataCollection.Add(ChannelViewModel.NewInstance(data));
            }

            return(Task.FromResult(response));
        }
Ejemplo n.º 4
0
        public HttpResponseMessage Put(string key, UserViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateResponse <ModelStateDictionary>(HttpStatusCode.BadRequest, ModelState));
            }

            var response = new DataSourceResponse <UserViewModel> {
                DataCollection = new List <UserViewModel> {
                    model
                }, TotalRowCount = 1
            };
            bool?result = this.service.Update(this.UserManager, key, model);

            if (result == null)
            {
                return(Request.CreateResponse <IDataSourceResponse <UserViewModel> >(HttpStatusCode.NotFound, response));
            }
            else
            {
                if (result.Value)
                {
                    return(Request.CreateResponse <IDataSourceResponse <UserViewModel> >(HttpStatusCode.OK, response));
                }
                else
                {
                    return(Request.CreateResponse <IDataSourceResponse <UserViewModel> >(HttpStatusCode.InternalServerError, response));
                }
            }
        }
Ejemplo n.º 5
0
        public DataSourceResponse <SelectListItem> ReadCustomers(DataSourceRequest request, IIdentity identity)
        {
            var currentUserId = identity.GetUserId();
            IQueryable <Customer> responseData;

            if (this.CurrentUser.IsInRole("Company"))
            {
                // 公司端
                responseData = this.DbContext.Customers.Select(c => c);
            }
            else
            {
                // 督導、技術指導
                responseData = this.DbContext.Customers.Where(c => c.ConsultantId == currentUserId || c.UserId == currentUserId);
            }

            var response = new DataSourceResponse <SelectListItem> {
                TotalRowCount = responseData.Count()
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), val2: 0);
                responseData = responseData.OrderBy(c => c.CustomerId).Skip(skip).Take(request.ServerPaging.PageSize);
            }

            response.DataCollection = responseData.Select(c => new SelectListItem
            {
                Text  = c.Name,
                Value = c.CustomerId.ToString()
            }).ToList();

            return(response);
        }
Ejemplo n.º 6
0
        public DataSourceResponse <ProductViewModel> Read(DataSourceRequest request)
        {
            var responseData = this.DbContext.Products.Select(p => p);

            if (request.ServerFiltering != null)
            {
            }

            var response = new DataSourceResponse <ProductViewModel>
            {
                TotalRowCount = responseData.Count()
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), val2: 0);
                responseData = responseData.OrderBy(p => p.ProductId).Skip(skip).Take(request.ServerPaging.PageSize);
            }

            response.DataCollection = responseData.Select(p => new ProductViewModel
            {
                ProductId = p.ProductId,
                Name      = p.Name,
                Price     = p.Price,
                SafeStock = p.SafeStock
            }).ToList();

            return(response);
        }
Ejemplo n.º 7
0
        public DataSourceResponse Detail(int id)
        {
            DataSourceResponse response = null;

            try
            {
                var detail = _dbContext.Get <t_sys_datasource>(id);
                if (detail != null)
                {
                    response = new DataSourceResponse {
                        CreateTime = detail.createtime,
                        FilePath   = detail.filepath,
                        Id         = detail.id,
                        Title      = detail.title,
                        UpdateTime = detail.updatetime,
                        FileType   = detail.fileType
                    };
                }
            }
            catch (Exception ex)
            {
                LogUtils.LogError("DataSourceService.Detail", ex);
            }
            return(response);
        }
Ejemplo n.º 8
0
        public DataSourceResponse <SpecificationViewModel> Read(DataSourceRequest request)
        {
            var responseData = this.DbContext.ProductSpecifications.Select(s => s);

            if (request.ServerFiltering != null)
            {
                ServerFilterInfo filterInfo = request.ServerFiltering.FilterCollection.Where(f => f.Field == "Parent").SingleOrDefault();
                int productCategoryId       = Convert.ToInt32(filterInfo.Value);
                responseData = responseData.Where(s => s.ProductCategoryId == productCategoryId);
            }

            var response = new DataSourceResponse <SpecificationViewModel> {
                TotalRowCount = responseData.Count()
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), val2: 0);
                responseData = responseData.OrderBy(s => s.ProductSpecificationId).Skip(skip).Take(request.ServerPaging.PageSize);
            }

            response.DataCollection = responseData.Select(s => new SpecificationViewModel
            {
                Text   = s.Name,
                Value  = s.ProductSpecificationId,
                Parent = s.ProductCategoryId
            }).ToList();

            return(response);
        }
Ejemplo n.º 9
0
        public Task <IDataSourceResponse <RouterViewModel> > ReadAsync(IDataSourceRequest request)
        {
            var responseData = this.DbContext.Router.Include("Project").Include("SourceNodeGroup").Include("TargetNode").Select(r => r);

            if (request.ServerFiltering != null)
            {
            }

            IDataSourceResponse <RouterViewModel> response = new DataSourceResponse <RouterViewModel> {
                TotalRowCount = responseData.Count()
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), 0);
                responseData = responseData.OrderBy(p => p.Id).Skip(skip).Take(request.ServerPaging.PageSize);
            }

            var dataCollection = responseData.ToList();

            foreach (var data in dataCollection)
            {
                response.DataCollection.Add(RouterViewModel.NewInstance(data));
            }

            return(Task.FromResult(response));
        }
Ejemplo n.º 10
0
        public Task <IDataSourceResponse <NodeViewModel> > ReadAsync(DataSourceRequest request)
        {
            var responseData = this.DbContext.Node.Include("NodeGroup").Select(n => n);

            if (request.ServerFiltering != null)
            {
                var filter      = request.ServerFiltering.FilterCollection.SingleOrDefault(f => f.Field == "NodeGroupId");
                int nodeGroupId = Convert.ToInt32(filter.Value);
                responseData = responseData.Where(n => n.NodeGroupId == nodeGroupId);
            }

            IDataSourceResponse <NodeViewModel> response = new DataSourceResponse <NodeViewModel> {
                TotalRowCount = responseData.Count()
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), 0);
                responseData = responseData.OrderBy(p => p.Id).Skip(skip).Take(request.ServerPaging.PageSize);
            }

            var dataCollection = responseData.ToList();

            foreach (var data in dataCollection)
            {
                response.DataCollection.Add(NodeViewModel.NewInstance(data));
            }

            return(Task.FromResult(response));
        }
Ejemplo n.º 11
0
        public DataSourceResponse <QueryViewModel> ReadQueries(DataSourceRequest request, IIdentity identity)
        {
            var currentUserId = identity.GetUserId();
            var roles         = this.userService.GetRoles();

            var shipments = this.DbContext.Shipments.Where(s => s.UserId == currentUserId).ToList();
            IDictionary <string, QueryViewModel> total = new Dictionary <string, QueryViewModel>();

            foreach (var shipment in shipments)
            {
                string         key = shipment.Date.ToString("yyyyMM");
                QueryViewModel viewModel;
                if (total.ContainsKey(key))
                {
                    viewModel = total[key];
                }
                else
                {
                    viewModel = new QueryViewModel
                    {
                        Year        = shipment.Date.Year,
                        Month       = shipment.Date.Month,
                        Performance = 0
                    };
                    total.Add(key, viewModel);
                }

                // 計算
                var currentRole = roles[shipment.UserRoleId];
                var discount    = currentRole.GetDiscount();
                if (shipment.CustomerId.HasValue)
                {
                    var    customerRole     = roles[shipment.CustomerRoleId];
                    double customerDiscount = customerRole.GetDiscount();
                    discount -= customerDiscount;
                }

                var shipmentDetails = this.DbContext.ShipmentDetails.Where(d => d.ShipmentId == shipment.ShipmentId).ToList();
                foreach (var shipmentDetail in shipmentDetails)
                {
                    viewModel.Performance += shipmentDetail.SubtotalAmount;
                }

                viewModel.Bonus = Convert.ToInt32(Math.Round(viewModel.Performance * discount, 0, MidpointRounding.AwayFromZero));
            }

            var response = new DataSourceResponse <QueryViewModel> {
                TotalRowCount = total.Count
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), val2: 0);
                response.DataCollection = total.Values.OrderBy(v => new { v.Year, v.Month }).Skip(skip).Take(request.ServerPaging.PageSize).ToList();
            }

            return(response);
        }
Ejemplo n.º 12
0
        public DataSourceResponse <PurchaseViewModel> Read(DataSourceRequest request)
        {
            var responseData = this.DbContext.Purchases.Select(p => p);
            var response     = new DataSourceResponse <PurchaseViewModel> {
                TotalRowCount = responseData.Count()
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), val2: 0);
                responseData = responseData.OrderByDescending(p => p.PurchaseId).Skip(skip).Take(request.ServerPaging.PageSize);
            }

            var collection =
                (from p in responseData
                 join m in this.DbContext.Manufacturers on p.ManufacturerId equals m.ManufacturerId
                 select new
            {
                PurchaseId = p.PurchaseId,
                ManufacturerName = m.Name,
                ManufacturerId = p.ManufacturerId,
                Date = p.Date,
                Remark = p.Remark
            }).ToList();

            foreach (var data in collection)
            {
                var purchase = new PurchaseViewModel
                {
                    PurchaseId   = data.PurchaseId,
                    Manufacturer = new SelectListItem {
                        Text = data.ManufacturerName, Value = data.ManufacturerId.ToString()
                    },
                    Date        = data.Date,
                    TotalAmount = this.purchaseDetailService.GetTotalAmount(data.PurchaseId),
                    Remark      = data.Remark
                };

                response.DataCollection.Add(purchase);
            }

            return(response);
        }
Ejemplo n.º 13
0
        public DataSourceResponse <TrackingRecordViewModel> Read(DataSourceRequest request)
        {
            // 公司端、督導、技術指導
            var responseData = this.DbContext.TrackingRecords.Select(r => r);

            if (request.ServerFiltering != null)
            {
                ServerFilterInfo filterInfo = request.ServerFiltering.FilterCollection.Where(f => f.Field == "CustomerId").SingleOrDefault();
                int customerId = Convert.ToInt32(filterInfo.Value);
                responseData = responseData.Where(r => r.CustomerId == customerId);
            }

            var response = new DataSourceResponse <TrackingRecordViewModel> {
                TotalRowCount = responseData.Count()
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), val2: 0);
                responseData = responseData.OrderBy(r => r.TrackingRecordId).Skip(skip).Take(request.ServerPaging.PageSize);
            }

            response.DataCollection = responseData.Select(r => new TrackingRecordViewModel
            {
                TrackingRecordId = r.TrackingRecordId,
                CustomerId       = r.CustomerId,
                ReferralTime     = r.ReferralTime,
                BustUp           = r.BustUp,
                BustDown         = r.BustDown,
                MilkCapacity     = r.MilkCapacity,
                Abdominal        = r.Abdominal,
                Waist            = r.Waist,
                Hip      = r.Hip,
                LegLeft  = r.LegLeft,
                LegRight = r.LegRight,
                Design   = r.Design,
                Buy      = r.Buy
            }).ToList();

            return(response);
        }
        public Task <IDataSourceResponse <TriggerRouterViewModel> > ReadAsync(DataSourceRequest request)
        {
            var responseData = this.DbContext.TriggerRouter
                               .Include("Router")
                               .Include("Router.Project")
                               .Include("Router.SourceNodeGroup").Include("Router.SourceNodeGroup.Project")
                               .Include("Router.TargetNode").Include("Router.TargetNode.NodeGroup")
                               .Include("Trigger").Include("Trigger.Channel")
                               .Select(tr => tr);

            if (request.ServerFiltering != null)
            {
                var filter   = request.ServerFiltering.FilterCollection.SingleOrDefault(f => f.Field == "RouterId");
                int routerId = Convert.ToInt32(filter.Value);
                responseData = responseData.Where(tr => tr.RouterId == routerId);
            }

            IDataSourceResponse <TriggerRouterViewModel> response = new DataSourceResponse <TriggerRouterViewModel> {
                TotalRowCount = responseData.Count()
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), 0);
                responseData = responseData.OrderBy(tr => tr.TriggerId).ThenBy(tr => tr.RouterId).Skip(skip).Take(request.ServerPaging.PageSize);
            }

            var dataCollection = responseData.ToList();

            foreach (var data in dataCollection)
            {
                response.DataCollection.Add(TriggerRouterViewModel.NewInstance(data));
            }

            return(Task.FromResult(response));
        }
Ejemplo n.º 15
0
        private void RespondeWithFile(DataSourceRequest request, string filename)
        {
            string mimeType = string.Empty;

            string ext = Path.GetExtension(filename);
            if (ext == ".html") mimeType = "text/html";
            if (ext == ".png") mimeType = "image/png";
            if (ext == ".gif") mimeType = "image/gif";
            if (ext == ".js") mimeType = "application/javascript";
            if (ext == ".css") mimeType = "text/css";
            //if (ext == ".webm") mimeType = "video/webm";

            if (mimeType.Length > 0)
            {
                byte[] buffer = File.ReadAllBytes(filename);
                IntPtr tmpPtr = Marshal.AllocHGlobal(buffer.Length);
                Marshal.Copy(buffer, 0, tmpPtr, buffer.Length);
                DataSourceResponse response = new DataSourceResponse() { Buffer = tmpPtr, Size = (uint)buffer.Length, MimeType = mimeType };
                SendResponse(request, response);
                Marshal.FreeHGlobal(tmpPtr);
            }
            else
            {
                SendRequestFailed(request);
            }
        }
Ejemplo n.º 16
0
        public DataSourceResponse <ShipmentViewModel> Read(DataSourceRequest request)
        {
            IQueryable <Shipment> responseData;

            if (this.CurrentUser.IsInRole("Company"))
            {
                // 公司端
                responseData = this.DbContext.Shipments.Select(s => s);
            }
            else
            {
                // 督導、技術指導
                responseData = this.DbContext.Shipments.Where(s => s.UserId == this.CurrentUserId);
            }
            var response = new DataSourceResponse <ShipmentViewModel> {
                TotalRowCount = responseData.Count()
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), val2: 0);
                responseData = responseData.OrderByDescending(s => s.ShipmentId).Skip(skip).Take(request.ServerPaging.PageSize);
            }

            var roles      = this.userService.GetRoles();
            var collection = responseData.ToList();

            foreach (var data in collection)
            {
                var shipment = new ShipmentViewModel
                {
                    ShipmentId  = data.ShipmentId,
                    Date        = data.Date,
                    TotalAmount = 0
                };

                // 計算
                var currentRole = roles[data.UserRoleId];
                var discount    = currentRole.GetDiscount();
                if (data.CustomerId.HasValue)
                {
                    var customer = this.DbContext.Customers.Where(c => c.CustomerId == data.CustomerId).SingleOrDefault();
                    if (customer != null)
                    {
                        shipment.Customer = new SelectListItem {
                            Text = customer.Name, Value = customer.CustomerId.ToString()
                        }
                    }
                    ;

                    var    customerRole     = roles[data.CustomerRoleId];
                    double customerDiscount = customerRole.GetDiscount();
                    discount -= customerDiscount;
                }

                // 總計金額
                var shipmentDetails = this.DbContext.ShipmentDetails.Where(d => d.ShipmentId == data.ShipmentId).ToList();
                foreach (var shipmentDetail in shipmentDetails)
                {
                    shipment.TotalAmount += shipmentDetail.SubtotalAmount;
                }

                // 消費回饋
                shipment.ConsumptionRebate = Convert.ToInt32(Math.Round(shipment.TotalAmount * discount, 0, MidpointRounding.AwayFromZero));

                response.DataCollection.Add(shipment);
            }

            return(response);
        }
Ejemplo n.º 17
0
        public DataSourceResponse <BodyViewModel> Read(DataSourceRequest request)
        {
            // todo: 區分 query data source
            if (this.CurrentUser.IsInRole("Company"))
            {
                // 公司端
            }
            else
            {
                // 督導、技術指導
            }

            string sqlTotalRowCount = @"
                SELECT COUNT(*)
                FROM
                (
                    {0}
                ) t";

            string cmdText = @"
                SELECT c.CustomerId, c.[Name], 
                    b.HealthSpine, b.HealthBackPain, b.HealthOther,
                    b.CurveChest, b.CurveArm, b.CurveButtock, b.CurveStomachWaistAbdomen, b.CurveThigh, b.CurveCalf,
                    b.CurveFatSoft, b.CurveFatHard, b.CurveFatOrange, b.CurveFatTangled, b.CurveFatOther, 
                    b.Diagnosis
                FROM Customer c
                     LEFT JOIN Body b ON c.CustomerId = b.CustomerId
                WHERE c.ConsultantId = '{0}'
                      OR c.UserId = '{0}'";

            cmdText = string.Format(cmdText, this.CurrentUserId);

            sqlTotalRowCount = string.Format(sqlTotalRowCount, cmdText);
            var response = new DataSourceResponse <BodyViewModel> {
                TotalRowCount = Convert.ToInt32(this.ExecuteScalar(sqlTotalRowCount))
            };

            if (request.ServerPaging != null)
            {
                string sqlTake = @"
                    SELECT *
                    FROM
                    (
                        {0}
                    ) t
                    ORDER BY t.CustomerId ASC
                    OFFSET {1} ROWS FETCH NEXT {2} ROWS ONLY";

                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), val2: 0);
                cmdText = string.Format(sqlTake, cmdText, skip, request.ServerPaging.PageSize);
            }

            this.ReadData(dataReader =>
            {
                response.DataCollection.Add(new BodyViewModel
                {
                    CustomerId               = Convert.ToInt32(dataReader["CustomerId"]),
                    CustomerName             = dataReader["Name"].ToString(),
                    HealthSpine              = this.ConvertToBoolean(dataReader["HealthSpine"]),
                    HealthBackPain           = this.ConvertToBoolean(dataReader["HealthBackPain"]),
                    HealthOther              = this.DbToString(dataReader["HealthOther"]),
                    CurveChest               = this.ConvertToBoolean(dataReader["CurveChest"]),
                    CurveArm                 = this.ConvertToBoolean(dataReader["CurveArm"]),
                    CurveButtock             = this.ConvertToBoolean(dataReader["CurveButtock"]),
                    CurveStomachWaistAbdomen = this.ConvertToBoolean(dataReader["CurveStomachWaistAbdomen"]),
                    CurveThigh               = this.ConvertToBoolean(dataReader["CurveThigh"]),
                    CurveCalf                = this.ConvertToBoolean(dataReader["CurveCalf"]),
                    CurveFatSoft             = this.ConvertToBoolean(dataReader["CurveFatSoft"]),
                    CurveFatHard             = this.ConvertToBoolean(dataReader["CurveFatHard"]),
                    CurveFatOrange           = this.ConvertToBoolean(dataReader["CurveFatOrange"]),
                    CurveFatTangled          = this.ConvertToBoolean(dataReader["CurveFatTangled"]),
                    CurveFatOther            = dataReader["CurveFatOther"].ToString(),
                    Diagnosis                = dataReader["Diagnosis"].ToString()
                });
            }, cmdText);

            return(response);
        }
Ejemplo n.º 18
0
        public DataSourceResponse <ShipmentDetailViewModel> Read(DataSourceRequest request)
        {
            var responseData = this.DbContext.ShipmentDetails.Select(d => d);

            if (request.ServerFiltering != null)
            {
                ServerFilterInfo filterInfo = request.ServerFiltering.FilterCollection.Where(f => f.Field == "ShipmentId").SingleOrDefault();
                int shipmentId = Convert.ToInt32(filterInfo.Value);
                responseData = responseData.Where(d => d.ShipmentId == shipmentId);
            }

            var response = new DataSourceResponse <ShipmentDetailViewModel> {
                TotalRowCount = responseData.Count()
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), val2: 0);
                responseData = responseData.OrderBy(d => d.ShipmentDetailId).Skip(skip).Take(request.ServerPaging.PageSize);
            }

            var collection = responseData.Select(d => new
            {
                ShipmentDetailId = d.ShipmentDetailId,
                ShipmentId       = d.ShipmentId,
                Quantity         = d.Quantity,
                SubtotalAmount   = d.SubtotalAmount
            }).ToList();

            foreach (var data in collection)
            {
                var viewModel = new ShipmentDetailViewModel
                {
                    ShipmentDetailId = data.ShipmentDetailId,
                    ShipmentId       = data.ShipmentId,
                    Product          = new SelectListItem(),
                    ProductDetail    = new SelectListItem(),
                    Quantity         = data.Quantity,
                    SubtotalAmount   = data.SubtotalAmount
                };

                var product =
                    (from d in this.DbContext.ShipmentDetails
                     join p in this.DbContext.Products on d.ProductId equals p.ProductId
                     where d.ShipmentDetailId == data.ShipmentDetailId
                     select new { p.ProductId, p.Name }).SingleOrDefault();
                if (product != null)
                {
                    viewModel.Product.Text  = product.Name;
                    viewModel.Product.Value = product.ProductId.ToString();
                }

                var productDetail =
                    (from d in this.DbContext.ShipmentDetails
                     join pd in this.DbContext.ProductDetails on d.ProductDetailId equals pd.ProductDetailId
                     join ps1 in this.DbContext.ProductSpecifications on pd.FirstSpecificationId equals ps1.ProductSpecificationId
                     join ps2 in this.DbContext.ProductSpecifications on pd.SecondSpecificationId equals ps2.ProductSpecificationId into ps2Group
                     where d.ShipmentDetailId == data.ShipmentDetailId
                     from ps2New in ps2Group.DefaultIfEmpty()
                     select new
                {
                    Name = ps1.Name + (ps2New == null ? "" : " " + ps2New.Name),
                    ProductDetailId = pd.ProductDetailId
                }).SingleOrDefault();
                if (productDetail != null)
                {
                    viewModel.ProductDetail.Text  = productDetail.Name;
                    viewModel.ProductDetail.Value = productDetail.ProductDetailId.ToString();
                }

                response.DataCollection.Add(viewModel);
            }

            return(response);
        }
Ejemplo n.º 19
0
        protected override void OnRequest(DataSourceRequest request)
        {
            var path = request.Path.ToLower();
            if (!(_dataPak.ContainsKey(path)))
            {
                SendResponse(request, new DataSourceResponse { Buffer = IntPtr.Zero, MimeType = request.MimeType, Size = 0 });
                return;
            }
            var fileInfo = _dataPak[path];
            var ms = new MemoryStream();
            using (var source = new MemoryStream())
            {
                byte[] buffer = new byte[4096];
                using (var fs = OpenFile())
                {
                    fs.Seek(fileInfo.Position, SeekOrigin.Begin);
                    int count, max = fileInfo.Length;
                    while ((count = fs.Read(buffer, 0, Math.Min(4096, max))) > 0)
                    {
                        source.Write(buffer, 0, count);
                        max -= count;
                        if (max == 0)
                        {
                            break;
                        }
                    }
                }
                source.Seek(0, SeekOrigin.Begin);
                using (var gzip = fileInfo.IsGziped ? (Stream)new GZipStream(source, CompressionMode.Decompress) : new BufferedStream(source))
                {
                    int count;
                    while ((count = gzip.Read(buffer, 0, 4096)) > 0)
                    {
                        ms.Write(buffer, 0, count);
                    }
                    ms.Flush();
                }
            }

            var data = ms.ToArray();
            ms.Dispose();
            unsafe
            {
                fixed (byte* pdata = data)
                {
                    IntPtr ptr = new IntPtr(pdata);
                    DataSourceResponse response = new DataSourceResponse
                    {
                        Buffer = ptr,
                        Size = (uint)data.Length,
                        MimeType = request.MimeType
                    };
                    SendResponse(request, response);
                }
            }
        }
Ejemplo n.º 20
0
        public DataSourceResponse <MemberViewModel> ReadMembers(DataSourceRequest request)
        {
            IQueryable <Customer> responseData;

            if (this.CurrentUser.IsInRole("Company"))
            {
                // 公司端
                responseData = this.DbContext.Customers.Where(c => c.ConsultantId != null);
            }
            else
            {
                // 督導、技術指導
                responseData = this.DbContext.Customers.Where(c => c.ConsultantId == this.CurrentUserId);
            }

            var response = new DataSourceResponse <MemberViewModel> {
                TotalRowCount = responseData.Count()
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), val2: 0);
                responseData = responseData.OrderBy(c => c.CustomerId).Skip(skip).Take(request.ServerPaging.PageSize);
            }

            var collection = responseData.Select(c => new
            {
                CustomerId   = c.CustomerId,
                Name         = c.Name,
                Email        = c.Email,
                Birthday     = c.Birthday,
                Phone        = c.Phone,
                Mobile       = c.Mobile,
                Address      = c.Address,
                Introducer   = c.Introducer,
                ConsultantId = c.ConsultantId,
                MemberDate   = c.MemberDate,
                MemberRoleId = c.MemberRoleId
            }).ToList();

            var    roles   = this.userService.GetRoles();
            string cmdText = @"
                SELECT r.[Name] RoleName,
                       c.[Name] GuidanceName,
                       sc.[Name] SuperviseName
                FROM Customer c
                     JOIN AspNetUserRoles ur ON c.UserId = ur.UserId
                     JOIN AspNetRoles r ON ur.RoleId = r.Id
                     LEFT JOIN Customer sc ON c.ConsultantId = sc.UserId
                WHERE c.UserId = @ConsultantId";

            foreach (var data in collection)
            {
                var memberRole = roles[data.MemberRoleId];
                var member     = new MemberViewModel
                {
                    CustomerId = data.CustomerId,
                    Name       = data.Name,
                    Email      = data.Email,
                    Birthday   = data.Birthday,
                    Phone      = data.Phone,
                    Mobile     = data.Mobile,
                    Address    = data.Address,
                    Introducer = data.Introducer,
                    MemberRole = new SelectListItem {
                        Text = memberRole.GetName(), Value = data.MemberRoleId
                    },
                    JoinDate = data.MemberDate
                };

                if (!string.IsNullOrEmpty(data.ConsultantId))
                {
                    // 取得該顧問的角色
                    // 如果是督導,則 GuidanceName, SuperviseName 都填入該姓名
                    // 如果是技術指導,填入其姓名於 GuidanceName,又取得其督導姓名填入 SuperviseName
                    this.ReadDataSingle(dataReader =>
                    {
                        if (Enum.TryParse(dataReader["RoleName"].ToString(), out RoleType role))
                        {
                            member.GuidanceName = member.SuperviseName = dataReader["GuidanceName"].ToString();

                            if (role == RoleType.Guidance)
                            {
                                member.SuperviseName = dataReader["SuperviseName"].ToString();
                            }
                        }
                    }, cmdText, new SqlParameter("ConsultantId", data.ConsultantId));
                }

                response.DataCollection.Add(member);
            }

            return(response);
        }
Ejemplo n.º 21
0
        public DataSourceResponse <ProductDetailViewModel> Read(DataSourceRequest request)
        {
            var responseData = this.DbContext.ProductDetails.Select(d => d);

            if (request.ServerFiltering != null)
            {
                ServerFilterInfo filterInfo = request.ServerFiltering.FilterCollection.Where(f => f.Field == "ProductId").SingleOrDefault();
                int productId = Convert.ToInt32(filterInfo.Value);
                responseData = responseData.Where(d => d.ProductId == productId);
            }

            var response = new DataSourceResponse <ProductDetailViewModel> {
                TotalRowCount = responseData.Count()
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), val2: 0);
                responseData = responseData.OrderBy(d => d.ProductDetailId).Skip(skip).Take(request.ServerPaging.PageSize);
            }

            var collection = responseData.Select(d => new
            {
                ProductDetailId = d.ProductDetailId,
                ProductId       = d.ProductId,
                Price           = d.Price,
                SafeStock       = d.SafeStock,
                FirstSpecificationProductCategoryName = d.FirstSpecification.ProductCategory.Name,
                FirstSpecificationProductCategoryProductCategoryId = d.FirstSpecification.ProductCategory.ProductCategoryId,
                FirstSpecificationName = d.FirstSpecification.Name,
                FirstSpecificationProductSpecificationId = d.FirstSpecification.ProductSpecificationId,
                FirstSpecificationProductCategoryId      = d.FirstSpecification.ProductCategoryId,
                SecondSpecificationId = d.SecondSpecificationId,
                SecondSpecificationProductCategoryName = d.SecondSpecification.ProductCategory.Name,
                SecondSpecificationProductCategoryProductCategoryId = d.SecondSpecification.ProductCategory.ProductCategoryId,
                SecondSpecificationName = d.SecondSpecification.Name,
                SecondSpecificationProductSpecificationId = d.SecondSpecification.ProductSpecificationId,
                SecondSpecificationProductCategoryId      = d.SecondSpecification.ProductCategoryId
            }).ToList();

            foreach (var data in collection)
            {
                var viewModel = new ProductDetailViewModel
                {
                    ProductDetailId = data.ProductDetailId,
                    ProductId       = data.ProductId,
                    Price           = data.Price,
                    SafeStock       = data.SafeStock
                };

                var firstCategory = new SelectListItem
                {
                    Text  = data.FirstSpecificationProductCategoryName,
                    Value = data.FirstSpecificationProductCategoryProductCategoryId.ToString()
                };
                viewModel.FirstCategory = firstCategory;

                var firstSpecification = new FirstSpecificationViewModel
                {
                    Text   = data.FirstSpecificationName,
                    Value  = data.FirstSpecificationProductSpecificationId,
                    Parent = data.FirstSpecificationProductCategoryId
                };
                viewModel.FirstSpecification = firstSpecification;

                if (data.SecondSpecificationId.HasValue)
                {
                    var secondCategory = new SelectListItem
                    {
                        Text  = data.SecondSpecificationProductCategoryName,
                        Value = data.SecondSpecificationProductCategoryProductCategoryId.ToString()
                    };
                    viewModel.SecondCategory = secondCategory;

                    var secondSpecification = new SpecificationViewModel
                    {
                        Text   = data.SecondSpecificationName,
                        Value  = data.SecondSpecificationProductSpecificationId,
                        Parent = data.SecondSpecificationProductCategoryId
                    };
                    viewModel.SecondSpecification = secondSpecification;
                }

                response.DataCollection.Add(viewModel);
            }

            return(response);
        }
Ejemplo n.º 22
0
        protected override void OnRequest(DataSourceRequest request)
        {
            // App.Log( 'H', "RAT PROTO REQUEST: {0}", request.Url.LocalPath );
            byte[] data = null;
            //Console.WriteLine( "RAT PROTO REQUEST: {0}", request.Url.LocalPath );
            if (request.Url.LocalPath == "/chat/")
            {
                IntPtr unmanagedPointer = IntPtr.Zero;
                try {
                    data             = _chat.GetEncodedMessages();
                    unmanagedPointer = Marshal.AllocHGlobal(data.Length);
                    Marshal.Copy(data, 0, unmanagedPointer, data.Length);

                    var response = new Awesomium.Core.Data.DataSourceResponse();
                    response.Buffer = unmanagedPointer;
                    response.Size   = (uint)data.Length;

                    this.SendResponse(request, response);
                } catch {
                    this.SendRequestFailed(request);
                } finally {
                    Marshal.FreeHGlobal(unmanagedPointer);
                }

                return;
            }

            string fileName = App.MapFileName(request.Url.LocalPath);


            if (string.IsNullOrEmpty(fileName))
            {
                if (request.Url.LocalPath.StartsWith("/http"))
                {
                    try {
                        data = new System.Net.WebClient().DownloadData(request.Url.LocalPath.Substring(1));
                    } catch {
                    }
                }
            }
            else
            {
                try {
                    data = File.ReadAllBytes(fileName);
                } catch {
                }
            }

            if (data != null)
            {
                IntPtr unmanagedPointer = IntPtr.Zero;
                try {
                    unmanagedPointer = Marshal.AllocHGlobal(data.Length);
                    Marshal.Copy(data, 0, unmanagedPointer, data.Length);

                    var response = new DataSourceResponse();
                    response.Buffer = unmanagedPointer;
                    response.Size   = (uint)data.Length;

                    this.SendResponse(request, response);
                } catch {
                    this.SendRequestFailed(request);
                } finally {
                    Marshal.FreeHGlobal(unmanagedPointer);
                }
            }
            else
            {
                this.SendRequestFailed(request);
            }
        }
Ejemplo n.º 23
0
        public DataSourceResponse <CustomerViewModel> Read(DataSourceRequest request)
        {
            IQueryable <Customer> responseData;

            if (this.CurrentUser.IsInRole("Company"))
            {
                // 公司端
                responseData = this.DbContext.Customers.Select(c => c);
            }
            else
            {
                // 督導、技術指導
                responseData = this.DbContext.Customers.Where(c => c.ConsultantId == this.CurrentUserId || c.UserId == this.CurrentUserId);
            }

            var response = new DataSourceResponse <CustomerViewModel>
            {
                TotalRowCount = responseData.Count()
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), val2: 0);
                responseData = responseData.OrderBy(c => c.CustomerId).Skip(skip).Take(request.ServerPaging.PageSize);
            }

            var collection = responseData.Select(c => new
            {
                CustomerId   = c.CustomerId,
                Name         = c.Name,
                Phone        = c.Phone,
                Birthday     = c.Birthday,
                Career       = c.Career,
                Address      = c.Address,
                IdCardNumber = c.IdCardNumber,
                Introducer   = c.Introducer,
                ConsultantId = c.ConsultantId,
                Height       = c.Height,
                Weight       = c.Weight,
                Email        = c.Email,
                LineId       = c.LineId,
                Remark       = c.Remark
            }).ToList();

            IDictionary <string, string> consultants = new Dictionary <string, string>();

            foreach (var data in collection)
            {
                var customer = new CustomerViewModel
                {
                    CustomerId   = data.CustomerId,
                    Name         = data.Name,
                    Phone        = data.Phone,
                    Birthday     = data.Birthday,
                    Career       = data.Career,
                    Address      = data.Address,
                    IdCardNumber = data.IdCardNumber,
                    Introducer   = data.Introducer,
                    Height       = data.Height,
                    Weight       = data.Weight,
                    Email        = data.Email,
                    LineId       = data.LineId,
                    Remark       = data.Remark
                };

                if (!string.IsNullOrEmpty(data.ConsultantId))
                {
                    if (consultants.ContainsKey(data.ConsultantId))
                    {
                        customer.ConsultantName = consultants[data.ConsultantId];
                    }
                    else
                    {
                        var consultant = this.DbContext.Customers.Where(c => c.UserId == data.ConsultantId).SingleOrDefault();
                        if (consultant != null)
                        {
                            customer.ConsultantName = consultant.Name;
                            consultants.Add(data.ConsultantId, consultant.Name);
                        }
                    }
                }

                response.DataCollection.Add(customer);
            }

            return(response);
        }
    protected override void OnRequest(DataSourceRequest request)
    {
        var response = new DataSourceResponse();

        string[] parts = request.Path.Replace("\\", "/").Split('/');
        for (int i = 0; i < parts.Length - 1; i++)
        {
            parts[i] = parts[i].Replace(".", "_").Replace("-", "_");
        }
        string resourcePath = "Interface.html." + request.Path
                              //.Replace(".", "_")
                              .Replace("/", ".")
                              .Replace("\\", ".");

        resourcePath = "Interface.html." + String.Join(".", parts);
        // Find the image in the names array
        int pos = Array.BinarySearch(names, resourcePath, CaseInsensitiveComparer.Default);

        if (pos > -1)
        {
            resourcePath = names[pos];
        }
        byte[] data = null;
        using (Stream stream = InterfaceAssembly.GetManifestResourceStream(resourcePath)) {
            data = new byte[stream.Length];
            stream.Read(data, 0, data.Length);
        }
        IntPtr unmanagedPointer = IntPtr.Zero;

        try {
            unmanagedPointer = Marshal.AllocHGlobal(data.Length);
            Marshal.Copy(data, 0, unmanagedPointer, data.Length);
            response.Buffer = unmanagedPointer;
            switch (System.IO.Path.GetExtension(request.Path).ToLower())
            {
            case ".html":
            case ".htm":
                response.MimeType = "text/html";
                break;

            case ".js":
                response.MimeType = "application/javascript";
                break;

            case ".css":
                response.MimeType = "text/css";
                break;

            case ".png":
                response.MimeType = "image/png";
                break;

            case ".jpeg":
            case ".jpg":
                response.MimeType = "image/jpeg";
                break;

            default:
                response.MimeType = "text/html";
                break;
            }
            response.Size = (uint)data.Length;
            SendResponse(request, response);
        }
        catch (Exception e) {
            throw e;
        }
        finally {
            Marshal.FreeHGlobal(unmanagedPointer);
        }
    }
Ejemplo n.º 25
0
        public DataSourceResponse <SkinViewModel> Read(DataSourceRequest request)
        {
            // todo: query
            if (this.CurrentUser.IsInRole("Company"))
            {
                // 公司端
            }
            else
            {
                // 督導、技術指導
            }

            string sqlTotalRowCount = @"
                SELECT COUNT(*)
                FROM
                (
                    {0}
                ) t";

            string cmdText = @"
                SELECT c.CustomerId, c.[Name], 
		            s.ConditionDry, s.ConditionOily, s.ConditionSensitivity, s.ConditionMixed,
                    s.ImproveAcne, s.ImproveSensitive, s.ImproveWrinkle, s.ImproveLargePores, s.ImproveSpot, s.ImproveDull, s.ImprovePock,
                    s.ImproveOther, s.Advice, s.Detail
                FROM Customer c
                     LEFT JOIN Skin s ON c.CustomerId = s.CustomerId
                WHERE c.ConsultantId = '{0}'
                      OR c.UserId = '{0}'";

            cmdText = string.Format(cmdText, this.CurrentUserId);

            sqlTotalRowCount = string.Format(sqlTotalRowCount, cmdText);
            var response = new DataSourceResponse <SkinViewModel> {
                TotalRowCount = Convert.ToInt32(this.ExecuteScalar(sqlTotalRowCount))
            };

            if (request.ServerPaging != null)
            {
                string sqlTake = @"
                    SELECT *
                    FROM
                    (
                        {0}
                    ) t
                    ORDER BY t.CustomerId ASC
                    OFFSET {1} ROWS FETCH NEXT {2} ROWS ONLY";

                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), val2: 0);
                cmdText = string.Format(sqlTake, cmdText, skip, request.ServerPaging.PageSize);
            }

            this.ReadData(dataReader =>
            {
                response.DataCollection.Add(new SkinViewModel
                {
                    CustomerId           = Convert.ToInt32(dataReader["CustomerId"]),
                    CustomerName         = dataReader["Name"].ToString(),
                    ConditionDry         = this.ConvertToBoolean(dataReader["ConditionDry"]),
                    ConditionOily        = this.ConvertToBoolean(dataReader["ConditionOily"]),
                    ConditionSensitivity = this.ConvertToBoolean(dataReader["ConditionSensitivity"]),
                    ConditionMixed       = this.ConvertToBoolean(dataReader["ConditionMixed"]),
                    ImproveAcne          = this.ConvertToBoolean(dataReader["ImproveAcne"]),
                    ImproveSensitive     = this.ConvertToBoolean(dataReader["ImproveSensitive"]),
                    ImproveWrinkle       = this.ConvertToBoolean(dataReader["ImproveWrinkle"]),
                    ImproveLargePores    = this.ConvertToBoolean(dataReader["ImproveLargePores"]),
                    ImproveSpot          = this.ConvertToBoolean(dataReader["ImproveSpot"]),
                    ImproveDull          = this.ConvertToBoolean(dataReader["ImproveDull"]),
                    ImprovePock          = this.ConvertToBoolean(dataReader["ImprovePock"]),
                    ImproveOther         = this.DbToString(dataReader["ImproveOther"]),
                    Advice = this.DbToString(dataReader["Advice"]),
                    Detail = this.DbToString(dataReader["Detail"])
                });
            }, cmdText);

            return(response);
        }
Ejemplo n.º 26
0
        // http://www.byteblocks.com/Post/AspNet-Identity-Lock-and-Unlock-User-Accounts
        public DataSourceResponse <UserViewModel> Read(UserManager <ApplicationUser> userManager, DataSourceRequest request)
        {
            string cmdText = @"
                SELECT u.Id UserId,
                       c.[Name] CustomerName,
                       cuc.[Name] ConsultantText,
                       cu.Id ConsultantValue,
                       r.[Name] RoleValue
                FROM AspNetUsers u
                     LEFT JOIN AspNetUserRoles ur ON u.Id = ur.UserId
                     LEFT JOIN AspNetRoles r ON ur.RoleId = r.Id
                     LEFT JOIN Customer c ON c.UserId = u.Id
                     LEFT JOIN AspNetUsers cu ON c.ConsultantId = cu.Id
                     LEFT JOIN Customer cuc ON cu.Id = cuc.UserId
                WHERE r.[Name] = 'Supervise'
                      OR r.[Name] = 'Guidance'
                      OR r.[Name] = 'Company'
                      OR r.[Name] IS NULL
                ORDER BY u.Id";

            IList <UserViewModel> users = new List <UserViewModel>();

            this.ReadData(dataReader =>
            {
                var consultant   = new SelectListItem();
                consultant.Text  = this.DbToString(dataReader["ConsultantText"]);
                consultant.Value = this.DbToString(dataReader["ConsultantValue"]);

                var role = new SelectListItem();
                if (dataReader["RoleValue"] != DBNull.Value)
                {
                    role.Value = dataReader["RoleValue"].ToString();
                    if (Enum.TryParse <RoleType>(role.Value, out RoleType roleType))
                    {
                        role.Text = roleType.GetEnumDescription();
                    }
                }

                users.Add(new UserViewModel
                {
                    UserId       = dataReader["UserId"].ToString(),
                    CustomerName = this.DbToString(dataReader["CustomerName"]),
                    Consultant   = consultant,
                    Role         = role
                });
            }, cmdText);

            foreach (var user in users)
            {
                user.LockedOut = userManager.IsLockedOut(user.UserId);
            }

            var response = new DataSourceResponse <UserViewModel>();

            response.TotalRowCount = users.Count;

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), val2: 0);
                users = users.OrderBy(u => u.UserId).Skip(skip).Take(request.ServerPaging.PageSize).ToList();
            }

            response.DataCollection = users;
            return(response);
        }
Ejemplo n.º 27
0
        public DataSourceResponse <QueryDetailViewModel> ReadQueryDetails(DataSourceRequest request, IIdentity identity)
        {
            string cmdText = @"
                SELECT c.[Name], ur.RoleId
                FROM Customer c JOIN AspNetUserRoles ur ON c.UserId = ur.UserId
                WHERE c.UserId = @UserId";

            var currentUserId = identity.GetUserId();
            var roles         = this.userService.GetRoles();

            WebApplication.Models.Role.Role currentRole;
            string currentName = string.Empty;

            this.ReadDataSingle(dataReader =>
            {
                string currentRoleId = dataReader["RoleId"].ToString();
                currentRole          = roles[currentRoleId];
                currentName          = dataReader["Name"].ToString();
            }, cmdText, new SqlParameter("UserId", currentUserId));

            ServerFilterInfo yearFilterInfo = request.ServerFiltering.FilterCollection.Where(f => f.Field == "Year").SingleOrDefault();
            int year = Convert.ToInt32(yearFilterInfo.Value);
            ServerFilterInfo monthFilterInfo = request.ServerFiltering.FilterCollection.Where(f => f.Field == "Month").SingleOrDefault();
            int month     = Convert.ToInt32(monthFilterInfo.Value);
            var shipments = this.DbContext.Shipments.Where(s => s.UserId == currentUserId && s.Date.Year == year && s.Date.Month == month).ToList();

            IDictionary <int, string>    customers    = new Dictionary <int, string>();
            IList <QueryDetailViewModel> responseData = new List <QueryDetailViewModel>();

            foreach (var shipment in shipments)
            {
                var viewModel = new QueryDetailViewModel
                {
                    PurchaseId   = shipment.ShipmentId,
                    Year         = year,
                    Month        = month,
                    ShipmentDate = shipment.Date
                };

                if (shipment.CustomerId.HasValue)
                {
                    if (customers.ContainsKey(shipment.CustomerId.Value))
                    {
                        viewModel.CustomerName = customers[shipment.CustomerId.Value];
                    }
                    else
                    {
                        var customer = this.DbContext.Customers.Where(c => c.CustomerId == shipment.CustomerId.Value).SingleOrDefault();
                        if (customer != null)
                        {
                            customers.Add(shipment.CustomerId.Value, customer.Name);
                            viewModel.CustomerName = customer.Name;
                        }
                    }
                }
                else
                {
                    viewModel.CustomerName = currentName;
                }

                var shipmentDetails = this.DbContext.ShipmentDetails.Where(d => d.ShipmentId == shipment.ShipmentId).ToList();
                foreach (var shipmentDetail in shipmentDetails)
                {
                    viewModel.TotalAmount += shipmentDetail.SubtotalAmount;
                }

                responseData.Add(viewModel);
            }

            var response = new DataSourceResponse <QueryDetailViewModel> {
                TotalRowCount = responseData.Count
            };

            if (request.ServerPaging != null)
            {
                int skip = Math.Max(request.ServerPaging.PageSize * (request.ServerPaging.Page - 1), val2: 0);
                response.DataCollection = responseData.OrderBy(v => v.PurchaseId).Skip(skip).Take(request.ServerPaging.PageSize).ToList();
            }

            return(response);
        }
Ejemplo n.º 28
0
        private void RespondeWithPng(DataSourceRequest request, Image image)
        {
            byte[] buffer = new byte[0];
            using (MemoryStream stream = new MemoryStream())
            {
                image.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
                stream.Close();

                buffer = stream.ToArray();
            }
            IntPtr tmpPtr = Marshal.AllocHGlobal(buffer.Length);
            Marshal.Copy(buffer, 0, tmpPtr, buffer.Length);
            DataSourceResponse response = new DataSourceResponse() { Buffer = tmpPtr, Size = (uint)buffer.Length, MimeType = "image/png" };
            SendResponse(request, response);
            Marshal.FreeHGlobal(tmpPtr);
        }