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); }
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); }
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)); }
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)); } } }
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); }
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); }
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); }
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); }
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)); }
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)); }
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); }
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); }
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)); }
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); } }
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); }
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); }
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); }
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); } } }
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); }
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); }
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); } }
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); } }
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); }
// 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); }
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); }
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); }