public ResultOrder getOrder([FromBody] MODEL.Criteria.reqOrder req) { ResultOrder result = new ResultOrder(); result.ResultOk = "false"; RestaurantBLL sv = new RestaurantBLL(); try { result = sv.getOrderList(req); //Veriy Data //result.ResultOk = "Success"; //for (int i = 0; i < req.listFood.Count; i++) //{ // result.ReturnMessage += req.listFood[i].foodID + ","; //} //if (req != null) //{ //return sv.InsertMenu(req); //} } catch (Exception e) { result.ErroMessage = e.Message; result.ResultOk = "false"; } return(result); }
static void RetrieveRowsByIndex() { List <string> returnFields = new List <string> { "firstname", "lastname", "age" }; for (int i = 10; i < 20; i++) { Expression e = new Expression { LeftTerm = new Expression("id", Operators.GreaterThan, 1), Operator = Operators.And, RightTerm = new Expression("age", Operators.LessThan, 50) }; // // Yes, personId and age should be the same, however, the example // is here to show how to build a nested expression // ResultOrder[] resultOrder = new ResultOrder[1]; resultOrder[0] = new ResultOrder("id", OrderDirection.Ascending); _Database.Select(_Table, (i - 10), 5, returnFields, e, resultOrder); } }
/// <summary> /// SELECT multiple rows. /// This operation will return an empty list if no matching objects are found. /// The ordering used in the underlying query is ascending based on primary key column. /// </summary> /// <typeparam name="T">Type of object.</typeparam> /// <param name="expr">Expression.</param> /// <returns>List of objects.</returns> public List <T> SelectMany <T>(DbExpression expr) where T : class, new() { if (!_Initialized) { throw new InvalidOperationException("Initialize WatsonORM and database using the .InitializeDatabase() method first."); } if (expr == null) { throw new ArgumentNullException(nameof(expr)); } string tableName = _TypeMetadataMgr.GetTableNameFromType(typeof(T)); string primaryKeyColumnName = _TypeMetadataMgr.GetPrimaryKeyColumnName(typeof(T)); Expression e = WatsonORMCommon.DbExpressionConverter(expr); e.PrependAnd(primaryKeyColumnName, WatsonORMCommon.DbOperatorsConverter(DbOperators.IsNotNull), null); ResultOrder[] resultOrder = new ResultOrder[1]; resultOrder[0] = new ResultOrder(primaryKeyColumnName, OrderDirection.Ascending); DataTable result = _Database.Select(tableName, null, null, null, e, resultOrder); return(DataTableToObjectList <T>(result)); }
static void RetrieveRowsSorted() { List <string> returnFields = new List <string> { "firstname", "lastname", "age" }; Expression e = Expression.Between("id", new List <object> { 10, 20 }); Console.WriteLine("Expression: " + e.ToString()); ResultOrder[] resultOrder = new ResultOrder[1]; resultOrder[0] = new ResultOrder("firstname", OrderDirection.Ascending); _Database.Select(_Table, null, null, returnFields, e, resultOrder); }
public ActionResult Order() { var cats = Session["cats"] as Cats; var catsList = Session["catsList"] as List <Cats>; var orders = Session["resultOrders"] as List <ResultOrder>; var receiptList = Session["receipts"] as Dictionary <Order, Receipt>; Order order = new Order { id = Guid.NewGuid().ToString() }; ResultOrder resOrder = new ResultOrder { orderId = order.id, success = true }; Receipt rec = new Receipt() { status = "bekräftad", sum = cats.totalPrice() }; if (cats != null) { Session["NewOrder"] = null; if (orders != null) { receiptList.Add(order, rec); orders.Add(resOrder); } else { Dictionary <Order, Receipt> receipts = new Dictionary <Order, Receipt>(); receipts.Add(order, rec); Session["receipts"] = receipts; List <ResultOrder> orderList = new List <ResultOrder>(); orderList.Add(resOrder); Session["ResultOrders"] = orderList; } ViewBag.Message = "din order är bekräftad: " + order.id; ViewBag.totalPrice = rec.sum; ViewBag.status = rec.status; return(View(cats)); } else { TempData["WrongKart"] = "fel Order"; return(RedirectToAction("OrderKart", "order")); } }
/// <summary> /// Convert a WatsonORM DbResultOrder[] to a DatabaseWrapper ResultOrder[]. /// </summary> /// <param name="resultOrder">DbResultOrder array.</param> /// <returns>ResultOrder array.</returns> public static ResultOrder[] ConvertToResultOrder(DbResultOrder[] resultOrder) { if (resultOrder == null || resultOrder.Length < 1) { return(null); } ResultOrder[] ret = new ResultOrder[resultOrder.Length]; for (int i = 0; i < resultOrder.Length; i++) { if (resultOrder[i].Direction == DbOrderDirection.Ascending) { ret[i] = new ResultOrder(resultOrder[i].ColumnName, OrderDirection.Ascending); } else if (resultOrder[i].Direction == DbOrderDirection.Descending) { ret[i] = new ResultOrder(resultOrder[i].ColumnName, OrderDirection.Descending); } } return(ret); }
public static List <WreckageResult> Sort(List <WreckageResult> results, ResultOrder order) { if (results == null || results.Count <= 1) { return(results); } if (order == ResultOrder.BodyPoint) { results.Sort(CompareWreckageResultByBodyPoint); } else if (order == ResultOrder.TotalNum) { results.Sort(CompareWreckageResultByTotalNum); } else { results.Sort(CompareWreckageResultByDelta); } return(results); }
static public bool SetDiffByOrdering <T>(this IEnumerable <T> enumerableOut, IEnumerable <T> enumerableIn, out IEnumerable <T> added, out IEnumerable <T> removed, out IEnumerable <T> conserved, ResultOrder resultOrder = ResultOrder.Conserved) where T : IComparable <T> { return(SetDiffByOrdering(enumerableOut, enumerableIn, new ComparisonComparer <T>((x, y) => x.CompareTo(y)), out added, out removed, out conserved, resultOrder)); }
static async Task GetTableSelect(RequestMetadata md) { string dbName = md.Http.Request.Url.Elements[0]; string tableName = md.Http.Request.Url.Elements[1]; int idVal = 0; if (md.Http.Request.Url.Elements.Length == 3) { Int32.TryParse(md.Http.Request.Url.Elements[2], out idVal); } Table currTable = _Databases.GetTableByName(dbName, tableName); if (currTable == null) { md.Http.Response.StatusCode = 404; md.Http.Response.ContentType = "application/json"; await md.Http.Response.Send(SerializationHelper.SerializeJson(new ErrorResponse(ErrorCodeEnum.NotFound, "The requested object was not found", null), true)); return; } DatabaseClient db = _Databases.GetDatabaseClient(dbName); if (db == null) { md.Http.Response.StatusCode = 404; md.Http.Response.ContentType = "application/json"; await md.Http.Response.Send(SerializationHelper.SerializeJson(new ErrorResponse(ErrorCodeEnum.NotFound, "The requested object was not found", null), true)); return; } #region Check-for-Describe if (md.Params.Describe) { md.Http.Response.StatusCode = 200; md.Http.Response.ContentType = "application/json"; await md.Http.Response.Send(SerializationHelper.SerializeJson(currTable, true)); return; } #endregion #region Retrieve-Objects DataTable result = null; Expr filter = null; ResultOrder[] resultOrder = new ResultOrder[1]; resultOrder[0] = new ResultOrder(currTable.PrimaryKey, OrderDirection.Ascending); if (idVal > 0) { if (String.IsNullOrEmpty(currTable.PrimaryKey)) { _Logging.Warn("GetTable no primary key defined for table " + tableName + " in database " + dbName); md.Http.Response.StatusCode = 400; md.Http.Response.ContentType = "application/json"; await md.Http.Response.Send(SerializationHelper.SerializeJson(new ErrorResponse(ErrorCodeEnum.InvalidRequest, "Invalid request", "No primary key for table " + tableName), true)); return; } filter = new Expr(currTable.PrimaryKey, OperatorEnum.Equals, idVal); } if (md.Http.Request.Query.Elements != null && md.Http.Request.Query.Elements.Count > 0) { foreach (KeyValuePair <string, string> currKvp in md.Http.Request.Query.Elements) { if (Constants.QueryKeys.Contains(currKvp.Key)) { continue; } if (filter == null) { filter = new Expr(currKvp.Key, OperatorEnum.Equals, currKvp.Value); } else { filter = Expr.PrependAndClause( new Expr(currKvp.Key, OperatorEnum.Equals, currKvp.Value), filter); } } } if (md.Params.OrderBy != null && md.Params.OrderBy.Count > 0) { List <ResultOrder> resultOrderList = new List <ResultOrder>(); foreach (string curr in md.Params.OrderBy) { if (md.Params.OrderDirection == OrderDirectionEnum.Descending) { ResultOrder ro = new ResultOrder(curr, OrderDirection.Descending); } else if (md.Params.OrderDirection == OrderDirectionEnum.Ascending) { ResultOrder ro = new ResultOrder(curr, OrderDirection.Ascending); } } if (resultOrderList.Count > 0) { resultOrder = new ResultOrder[resultOrderList.Count]; for (int i = 0; i < resultOrderList.Count; i++) { resultOrder[i] = resultOrderList[i]; } } } result = db.Select( tableName, md.Params.IndexStart, md.Params.MaxResults, md.Params.ReturnFields, filter, resultOrder); if (result == null || result.Rows.Count < 1) { md.Http.Response.StatusCode = 200; md.Http.Response.ContentType = "application/json"; await md.Http.Response.Send(SerializationHelper.SerializeJson(new List <dynamic>(), true)); return; } else { md.Http.Response.StatusCode = 200; md.Http.Response.ContentType = "application/json"; await md.Http.Response.Send(SerializationHelper.SerializeJson(Common.DataTableToListDynamic(result), true)); return; } #endregion }
public ResultOrder GetShopOrderNew(NTS.WEB.DataContact.QueryOrderObjects query) { try { string keyCatch = string.Empty; foreach (var q in query.AreaIdLst) { keyCatch += q.ToString() + "_"; } keyCatch += query.ItemCode + query.StartTime + query.EndTime + query.QueryType + query.ObjType; if (CacheHelper.GetCache(keyCatch) != null) { return((ResultOrder)CacheHelper.GetCache(keyCatch)); } VerifyPersonOrAreaExist(query); #region 返回对象定义 ResultOrder resultOrder = new ResultOrder(); resultOrder.lineHighChart = new LineHighChart() { series = new List <Series>() }; resultOrder.lineHighChart.series.Add(new Series() { data = new List <EneryHighChart>() }); resultOrder.pieHighChart = new PieHighChart() { series = new List <Series>() }; resultOrder.pieHighChart.series.Add(new Series() { data = new List <EneryHighChart>() }); resultOrder.OrderLst = new List <EnergyOrder>(); #endregion List <Model.Itemcode> itemCodeList = new List <Model.Itemcode>(); if (query.ItemCode == "00000") { //总能耗 itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0 ", " order by ItemcodeID"); resultOrder.Unit = "T"; //标准煤单位 } else { itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID"); if (itemCodeList.Count > 0) { resultOrder.Unit = itemCodeList[0].Unit;//单个分类分项单位 } } switch (query.QueryType) { case EnergyAnalyseQueryType.Convert2Co2: case EnergyAnalyseQueryType.Convert2Coal: resultOrder.Unit = "T"; //标准煤单位 break; case EnergyAnalyseQueryType.Convert2Money: resultOrder.Unit = "元"; //标准煤单位 break; } Dictionary <string, decimal> tempConvert = new Dictionary <string, decimal>(); Dictionary <string, int> tempObjectConvert = new Dictionary <string, int>(); var model = new BaseQueryModel(); model.IsDevice = 0; model.ObjectList = query.AreaIdLst; //model.Unit = GetUnit(query.StartTime, query.EndTime); model.Unit = BaseTool.GetChartUnit(query.Particle); if (model.Unit == ChartUnit.unit_month) { model.Starttime = Convert.ToDateTime(query.StartTime.ToString("yyyy-MM-1")); model.Endtime = Convert.ToDateTime(query.EndTime.ToString("yyyy-MM-1")); } else { model.Starttime = query.StartTime; model.Endtime = query.EndTime; } foreach (var item in itemCodeList) { model.ItemCode = item.ItemCodeNumber; BaseResult resList = reportBll.GetBaseEneryDataList(model, query.ObjType == AreaType.Liquid ? true : false); if (resList == null) { continue; } foreach (var r in resList.BaseLayerObjectResults) { if (!tempConvert.ContainsKey(r.Value.baseLayerObject.LayerObjectName)) { tempConvert.Add(r.Value.baseLayerObject.LayerObjectName, 0); } if (!tempObjectConvert.ContainsKey(r.Value.baseLayerObject.LayerObjectName)) { tempObjectConvert.Add(r.Value.baseLayerObject.LayerObjectName, r.Value.baseLayerObject.LayerObjectID); } if (tempConvert.ContainsKey(r.Value.baseLayerObject.LayerObjectName)) { if (query.ItemCode == "00000") {//选择总能耗后把其他分类分项的能耗转化成标准煤 switch (query.QueryType) { case EnergyAnalyseQueryType.Default: //默认总能耗 tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()); // break; case EnergyAnalyseQueryType.UnitArea: //单位面积能耗 tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()) / decimal.Parse(r.Value.baseLayerObject.AreaNum.ToString()); break; case EnergyAnalyseQueryType.UnitPerson: //人均能耗 tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()) / decimal.Parse(r.Value.baseLayerObject.PersonNum.ToString()); break; case EnergyAnalyseQueryType.Convert2Coal: //标准煤 tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()); break; case EnergyAnalyseQueryType.Convert2Co2: //二氧化碳 tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCO2"].ToString()); break; case EnergyAnalyseQueryType.Convert2Money: //人民币 tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMMONEY"].ToString()); break; default: tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());// break; } } else { switch (query.QueryType) { case EnergyAnalyseQueryType.Default: //默认总能耗 tempConvert[r.Value.baseLayerObject.LayerObjectName] += r.Value.Total; break; case EnergyAnalyseQueryType.UnitArea: //单位面积能耗 tempConvert[r.Value.baseLayerObject.LayerObjectName] += r.Value.Total / decimal.Parse(r.Value.baseLayerObject.AreaNum.ToString()); break; case EnergyAnalyseQueryType.UnitPerson: //人均能耗 tempConvert[r.Value.baseLayerObject.LayerObjectName] += r.Value.Total / decimal.Parse(r.Value.baseLayerObject.PersonNum.ToString()); break; case EnergyAnalyseQueryType.Convert2Coal: //标准煤 tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()); break; case EnergyAnalyseQueryType.Convert2Co2: //二氧化碳 tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCO2"].ToString()); break; case EnergyAnalyseQueryType.Convert2Money: //人民币 tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMMONEY"].ToString()); break; default: tempConvert[r.Value.baseLayerObject.LayerObjectName] += r.Value.Total; break; } } } } } var tempAsc = from tt in tempConvert orderby tt.Value ascending select tt;//LineChart按照能耗值从低到高排序 foreach (var tempConvertItem in tempAsc) { resultOrder.lineHighChart.series[0].data.Add(new EneryHighChart() { name = tempConvertItem.Key, id = tempObjectConvert[tempConvertItem.Key].ToString(), y = decimal.Parse(tempConvertItem.Value.ToString("f2")) }); } var tempDesc = from tt in tempConvert orderby tt.Value descending select tt;//PieChart按照能耗值从高到低排序 int temppieindex = 1; decimal temppiecount = 0; foreach (var tempConvertItem in tempDesc) { if (temppieindex < 6) { resultOrder.pieHighChart.series[0].data.Add(new EneryHighChart() { name = tempConvertItem.Key, y = decimal.Parse(tempConvertItem.Value.ToString("f2")) }); } else { temppiecount += decimal.Parse(tempConvertItem.Value.ToString("f2")); } temppieindex++; } if (temppieindex > 6) { resultOrder.pieHighChart.series[0].data.Add(new EneryHighChart() { name = "其他", y = temppiecount }); } int order = 1; foreach (var tt in resultOrder.lineHighChart.series[0].data) { resultOrder.OrderLst.Add(new EnergyOrder() { Order = order, Tm = model.Unit == ChartUnit.unit_hour ? query.StartTime.ToString("yyyy-MM-dd") : query.StartTime.ToString("yyyy-MM-dd") + "~" + query.EndTime.ToString("yyyy-MM-dd"), Obj = tt.name, //ObjID=tempObjectConvert[tt.name], Val = tt.y, EneType = itemCodeList.Count > 1 ? "总能耗" : itemCodeList[0].ItemCodeName }); order++; } if (CacheHelper.GetCache(keyCatch) == null) { CacheHelper.SetCache(keyCatch, resultOrder, 30); } return(resultOrder); } catch (Exception ee) { throw ee; } }
static public IEnumerable <TResult> JoinByOrdering <T, TResult>(this IEnumerable <T> enumerableOut, IEnumerable <T> enumerableIn, Func <T, T, TResult> resultSelector, ResultOrder resultOrder = ResultOrder.Conserved) where T : IComparable <T> { return(JoinByOrdering(enumerableOut, enumerableIn, x => x, x => x, resultSelector, new ComparisonComparer <T>((x, y) => x.CompareTo(y)), resultOrder)); }
private IEnumerator RechageOnce(Coroutine co, ActivityServerControl _this) { InAppPurchase.ChargingState = ChargingState.GettingPayOrder; var data = new ConnectData { mType = ConnectDataType.GetData, connect = InAppPurchase.PayDbConnection }; //var order = InAppPurchase.PayDbConnection.GetWaittingResultOrder(); yield return(_this.payDbManagerManager.DoOrder(co, data)); ResultOrder order = null; string platform; try { order = data.resultOrder; if (order == null) { InAppPurchase.ChargingState = ChargingState.Waiting; yield break; } RechargeLogger.Info("GetWaittingResultOrder orderid : {0},playerid : {1},uid: {2} , channel:{3}", order.OrderId, order.PlayerId, order.Uid, order.Channel); RechargeLogger.Info("RechageOnce get order channel:{0} step 1", order.Channel); var strs = order.Channel.Split('.'); platform = strs[0]; RechargeLogger.Info("RechageOnce split channel, platfrom :{0} step 2", platform); InAppPurchase.ChargingState = ChargingState.AddingItem; RechargeLogger.Info( "RechageOnce ss to logic RechargeSuccess, playerid:{0}, platfrom:{1}, orderType:{2}, amount:{3},orderid:{4} step 3", order.PlayerId, platform, order.PayType, order.Amount, order.OrderId); } catch (Exception) { InAppPurchase.ChargingState = ChargingState.Waiting; yield break; } var reslut = ActivityServer.Instance.LogicAgent.RechargeSuccess(order.PlayerId, platform, order.PayType, order.Amount, order.OrderId, order.Channel); yield return(reslut.SendAndWaitUntilDone(co)); if (reslut.State == MessageState.Reply) { if (reslut.ErrorCode == (int)ErrorCodes.OK) { RechargeLogger.Info("RechargeSuccess return ok ,orderid:{0} step 4", order.OrderId); InAppPurchase.ChargingState = ChargingState.WriteOrderBack; order.State = (short)eOrderState.Success; var connectData = new ConnectData { resultOrder = order, mType = ConnectDataType.ModifyData, connect = InAppPurchase.PayDbConnection }; yield return(_this.payDbManagerManager.DoOrder(co, connectData)); //InAppPurchase.PayDbConnection.UpdateResultOrderById(order.OrderId, eOrderState.Success); } else { RechargeLogger.Error( "ActivityServer.Instance.LogicAgent.RechargeSuccess return error ErrorCode = {0}!"); Logger.Error("ActivityServer.Instance.LogicAgent.RechargeSuccess return error ErrorCode = {0}!", reslut.ErrorCode); order.State = (short)eOrderState.Error; yield return(_this.payDbManagerManager.DoOrder(co, new ConnectData { resultOrder = order, mType = ConnectDataType.ModifyData, connect = InAppPurchase.PayDbConnection })); //InAppPurchase.PayDbConnection.UpdateResultOrderById(order.OrderId, eOrderState.Error); } } else { RechargeLogger.Error("ActivityServer.Instance.LogicAgent.RechargeSuccess did not reply!"); Logger.Error("ActivityServer.Instance.LogicAgent.RechargeSuccess did not reply!"); } InAppPurchase.ChargingState = ChargingState.Waiting; RechargeLogger.Info("RechageOnce finished oid:{1} step 5", order.OrderId); }
static public bool SetDiffByOrdering <T>(this IEnumerable <T> enumerableOut, IEnumerable <T> enumerableIn, IComparer <T> comparer, out IEnumerable <T> added, out IEnumerable <T> removed, out IEnumerable <T> conserved, ResultOrder resultOrder = ResultOrder.Conserved) { switch (resultOrder) { case ResultOrder.Conserved: IEnumerable <ItemIndexPair <T> > addedPair; IEnumerable <ItemIndexPair <T> > removedPair; IEnumerable <ItemIndexPair <T> > conservedPair; bool result = enumerableOut.Indexed().SetDiffByOrderingInternal(enumerableIn.Indexed(), x => x.Item, x => x.Item, comparer, out addedPair, out removedPair, out conservedPair); added = addedPair.OrderBy(x => x.Index).Select(x => x.Item); removed = removedPair.OrderBy(x => x.Index).Select(x => x.Item); conserved = conservedPair.OrderBy(x => x.Index).Select(x => x.Item); return(result); case ResultOrder.Neglected: return(enumerableOut.SetDiffByOrderingInternal(enumerableIn, x => x, x => x, comparer, out added, out removed, out conserved)); default: throw new NotSupportedException(); } }
public string ExportExcelDataRankingNew() { var inputValue = _ntsPage.Request.Form["Inputs"]; var query = Newtonsoft.Json.JsonConvert.DeserializeObject <QueryOrderObjects>(inputValue); string icode = query.ItemCode; query.QueryType = EnergyAnalyseQueryType.Default; ResultOrder resultAll = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IQueryEnery>("EneryQuery") .GetShopOrderNew(query); query.QueryType = EnergyAnalyseQueryType.UnitArea; ResultOrder resultArea = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IQueryEnery>("EneryQuery") .GetShopOrderNew(query); query.QueryType = EnergyAnalyseQueryType.UnitPerson; ResultOrder resultPerson = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IQueryEnery>("EneryQuery") .GetShopOrderNew(query); var dept = string.Empty; var itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID"); if (itList.Count > 0) { dept = itList[0].Unit; } string unit = icode == "00000" ? "T" : dept; //switch (query.QueryType) //{ // case EnergyAnalyseQueryType.Convert2Co2: // case EnergyAnalyseQueryType.Convert2Coal: // unit = "T";//标准煤单位 // break; // case EnergyAnalyseQueryType.Convert2Money: // unit = "元";//标准煤单位 // break; //} string itemCodeName = itList.Count == 0 ? "总能耗" : itList[0].ItemCodeName; try { if (query.AreaIdLst.Count > 0) { DataTable dt = TableView.CreateOrderBaseDataTable(); for (var r = 0; r < resultAll.OrderLst.Count; r++) { DataRow dr = dt.NewRow(); dr[1] = resultAll.OrderLst[r].Obj; dr[2] = query.AreaIdLst; dr[3] = resultAll.OrderLst[r].Obj; dr[4] = resultAll.OrderLst[r].Obj; dr[5] = resultAll.OrderLst[r].Obj; dr[6] = itemCodeName; dr[7] = decimal.Round(decimal.Parse(resultAll.OrderLst[r].Val.ToString()), 2).ToString(); dr[8] = resultArea.OrderLst == null ? "0" : decimal.Round(decimal.Parse(resultArea.OrderLst[r].Val.ToString()), 2).ToString(); dr[9] = resultPerson.OrderLst == null ? "0" : decimal.Round(decimal.Parse(resultPerson.OrderLst[r].Val.ToString()), 2).ToString(); dt.Rows.Add(dr); } string temp_path = AppDomain.CurrentDomain.BaseDirectory + "temp_file\\"; if (!Directory.Exists(temp_path)) { Directory.CreateDirectory(temp_path); string[] files = Directory.GetFiles(temp_path); foreach (string fn in files) { File.Delete(temp_path + fn); } } string save_path = DateTime.Now.Ticks + ".xls"; string templatePath = AppDomain.CurrentDomain.BaseDirectory + "template\\新能耗排名表.xls"; if (!File.Exists(templatePath)) { return("{\"status\":\"error\",\"msg\":\"未发现Excel模板文件\"}"); } TemplateParam param = new TemplateParam(itemCodeName + " ", new CellParam(0, 0), query.StartTime.ToString("yyyy-MM-dd") + "~" + query.EndTime.ToString("yyyy-MM-dd"), new CellParam(3, 0), false, new CellParam(4, 0)); param.DataColumn = new[] { 0, 3, 7, 8, 9 }; param.ItemUnit = "(单位:" + unit + ")"; param.ItemUnitCell = new CellParam(3, 4); param.SortColumn = 0; dt.TableName = "能耗排名表"; ExportHelper.ExportExcel(dt, temp_path + save_path, templatePath, param); return("{\"status\":\"success\",\"msg\":\"" + "/temp_file/" + save_path + "\"}"); } else { return("{\"status\":\"error\",\"msg\":\"导出失败:当前无任何数据\"}"); } } catch (Exception ex) { return("{\"status\":\"error\",\"msg\":\"导出失败:由于当前无数据或其他原因导致" + ex.Message + "\"}"); } }
static async Task PutTable(RequestMetadata md) { string dbName = md.Http.Request.Url.Elements[0]; string tableName = md.Http.Request.Url.Elements[1]; int idVal = 0; if (md.Http.Request.Url.Elements.Length == 3) { Int32.TryParse(md.Http.Request.Url.Elements[2], out idVal); } Table currTable = _Databases.GetTableByName(dbName, tableName); if (currTable == null) { md.Http.Response.StatusCode = 404; md.Http.Response.ContentType = "application/json"; await md.Http.Response.Send(SerializationHelper.SerializeJson(new ErrorResponse(ErrorCodeEnum.NotFound, "The requested object was not found", null), true)); return; } DatabaseClient db = _Databases.GetDatabaseClient(dbName); if (db == null) { md.Http.Response.StatusCode = 404; md.Http.Response.ContentType = "application/json"; await md.Http.Response.Send(SerializationHelper.SerializeJson(new ErrorResponse(ErrorCodeEnum.NotFound, "The requested object was not found", null), true)); return; } if (md.Http.Request.Data == null || md.Http.Request.ContentLength < 1) { _Logging.Warn("PutTable no request body supplied"); md.Http.Response.StatusCode = 400; md.Http.Response.ContentType = "application/json"; await md.Http.Response.Send(SerializationHelper.SerializeJson(new ErrorResponse(ErrorCodeEnum.MissingRequestBody, "Invalid request", "No request body supplied"), true)); return; } if (idVal == 0 && md.Http.Request.Url.Elements.Length == 2) { #region Search-Table Expr filter = SerializationHelper.DeserializeJsonExpression(md.Http.Request.DataAsBytes); ResultOrder[] resultOrder = new ResultOrder[1]; resultOrder[0] = new ResultOrder(currTable.PrimaryKey, OrderDirection.Ascending); if (md.Http.Request.Query.Elements != null && md.Http.Request.Query.Elements.Count > 0) { foreach (KeyValuePair <string, string> currKvp in md.Http.Request.Query.Elements) { if (Constants.QueryKeys.Contains(currKvp.Key)) { continue; } filter = Expr.PrependAndClause( new Expr(currKvp.Key, OperatorEnum.Equals, currKvp.Value), filter); } } if (md.Params.OrderBy != null && md.Params.OrderBy.Count > 0) { List <ResultOrder> resultOrderList = new List <ResultOrder>(); foreach (string curr in md.Params.OrderBy) { if (md.Params.OrderDirection == OrderDirectionEnum.Descending) { ResultOrder ro = new ResultOrder(curr, OrderDirection.Descending); } else if (md.Params.OrderDirection == OrderDirectionEnum.Ascending) { ResultOrder ro = new ResultOrder(curr, OrderDirection.Ascending); } } if (resultOrderList.Count > 0) { resultOrder = new ResultOrder[resultOrderList.Count]; for (int i = 0; i < resultOrderList.Count; i++) { resultOrder[i] = resultOrderList[i]; } } } DataTable result = db.Select( tableName, md.Params.IndexStart, md.Params.MaxResults, md.Params.ReturnFields, filter, resultOrder); if (md.Params.Debug && filter != null) { md.Http.Response.Headers.Add(Constants.HeaderExpression, filter.ToString()); } if (result == null || result.Rows.Count < 1) { md.Http.Response.StatusCode = 200; md.Http.Response.ContentType = "application/json"; await md.Http.Response.Send(SerializationHelper.SerializeJson(new List <dynamic>(), true)); return; } else { md.Http.Response.StatusCode = 200; md.Http.Response.ContentType = "application/json"; await md.Http.Response.Send(SerializationHelper.SerializeJson(Common.DataTableToListDynamic(result), true)); return; } #endregion } else { #region Update-Object if (String.IsNullOrEmpty(currTable.PrimaryKey)) { _Logging.Warn("PutTable no primary key defined for table " + tableName + " in database " + dbName); md.Http.Response.StatusCode = 400; md.Http.Response.ContentType = "application/json"; await md.Http.Response.Send(SerializationHelper.SerializeJson(new ErrorResponse(ErrorCodeEnum.InvalidRequest, "Invalid request", "No primary key for table " + tableName), true)); return; } byte[] reqData = md.Http.Request.DataAsBytes; Dictionary <string, object> dict = SerializationHelper.DeserializeJson <Dictionary <string, object> >(reqData); Expr e = new Expr(currTable.PrimaryKey, OperatorEnum.Equals, idVal); DataTable result = db.Update(tableName, dict, e); md.Http.Response.StatusCode = 200; md.Http.Response.ContentType = "application/json"; await md.Http.Response.Send(SerializationHelper.SerializeJson(Common.DataTableToDynamic(result), true)); return; #endregion } }
static public bool SetDiffByOrdering <T>(this IEnumerable <T> enumerableOut, IEnumerable <T> enumerableIn, Comparison <T> comparison, out IEnumerable <T> added, out IEnumerable <T> removed, out IEnumerable <T> conserved, ResultOrder resultOrder = ResultOrder.Conserved) { return(SetDiffByOrdering(enumerableOut, enumerableIn, new ComparisonComparer <T>(comparison), out added, out removed, out conserved, resultOrder)); }
static public IEnumerable <TOut> RejectByOrdering <TOut, TIn, TKey>(this IEnumerable <TOut> enumerableOut, IEnumerable <TIn> enumerableIn, Func <TOut, TKey> keySelectorOut, Func <TIn, TKey> keySelectorIn, IComparer <TKey> comparer, ResultOrder resultOrder = ResultOrder.Conserved) { switch (resultOrder) { case ResultOrder.Conserved: return(enumerableOut.Indexed().RejectByOrderingInternal(enumerableIn, x => keySelectorOut(x.Item), keySelectorIn, comparer).OrderBy(x => x.Index).Select(x => x.Item)); case ResultOrder.Neglected: return(enumerableOut.RejectByOrderingInternal(enumerableIn, keySelectorOut, keySelectorIn, comparer)); default: throw new NotSupportedException(); } }
static public IEnumerable <TResult> JoinByOrdering <TOut, TIn, TKey, TResult>(this IEnumerable <TOut> enumerableOut, IEnumerable <TIn> enumerableIn, Func <TOut, TKey> keySelectorOut, Func <TIn, TKey> keySelectorIn, Func <TOut, TIn, TResult> resultSelector, IComparer <TKey> comparer, ResultOrder resultOrder = ResultOrder.Conserved) { switch (resultOrder) { case ResultOrder.Conserved: return(enumerableOut.Indexed().JoinByOrderingInternal(enumerableIn, x => keySelectorOut(x.Item), keySelectorIn, (x, y) => new ItemIndexPair <TResult>(resultSelector(x.Item, y), x.Index), comparer).OrderBy(x => x.Index).Select(x => x.Item)); case ResultOrder.Neglected: return(enumerableOut.JoinByOrderingInternal(enumerableIn, keySelectorOut, keySelectorIn, resultSelector, comparer)); default: throw new NotSupportedException(); } }
static public IEnumerable <TResult> JoinByOrdering <TOut, TIn, TKey, TResult>(this IEnumerable <TOut> enumerableOut, IEnumerable <TIn> enumerableIn, Func <TOut, TKey> keySelectorOut, Func <TIn, TKey> keySelectorIn, Func <TOut, TIn, TResult> resultSelector, Comparison <TKey> comparison, ResultOrder resultOrder = ResultOrder.Conserved) { return(JoinByOrdering(enumerableOut, enumerableIn, keySelectorOut, keySelectorIn, resultSelector, new ComparisonComparer <TKey>(comparison), resultOrder)); }
static public IEnumerable <TResult> JoinByOrdering <TOut, TIn, TKey, TResult>(this IEnumerable <TOut> enumerableOut, IEnumerable <TIn> enumerableIn, Func <TOut, TKey> keySelectorOut, Func <TIn, TKey> keySelectorIn, Func <TOut, TIn, TResult> resultSelector, ResultOrder resultOrder = ResultOrder.Conserved) where TKey : IComparable <TKey> { return(JoinByOrdering(enumerableOut, enumerableIn, keySelectorOut, keySelectorIn, resultSelector, new ComparisonComparer <TKey>((x, y) => x.CompareTo(y)), resultOrder)); }
static public IEnumerable <TResult> JoinByOrdering <T, TResult>(this IEnumerable <T> enumerableOut, IEnumerable <T> enumerableIn, Func <T, T, TResult> resultSelector, IComparer <T> comparer, ResultOrder resultOrder = ResultOrder.Conserved) { return(JoinByOrdering(enumerableOut, enumerableIn, x => x, x => x, resultSelector, comparer, resultOrder)); }