/// <summary> /// Adds a new sheet. /// </summary> /// <param name="data">The data to show in the sheet.</param> /// <param name="name">The sheet's name.</param> /// <returns>The new sheet</returns> public ExcelSheet AddSheet(JsonObjectList data, string name = null) { if (String.IsNullOrWhiteSpace(name)) { name = "Content " + _sheetNameCounter.ToString(CultureInfo.InvariantCulture); _sheetNameCounter++; } var newSheet = new ExcelSheet(name) { Data = data }; this.Sheets.Add(newSheet); return(newSheet); }
public void OnAfterReturnItems(SearchWinReturnedEventArg e) { switch (e.SearchWinType) { case SearchWinType.Input_Text: foreach (string data in e.PostData.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)) { if (!string.IsNullOrEmpty(data)) { AddChild(data); } } break; default: JsonObjectList <JsonItem> list = JsonParser.ParseJsonResponse <JsonItem>(e.PostData); foreach (JsonItem item in list) { if (string.IsNullOrEmpty(item.DetailUrl)) { ITopClient client = GetProductTopClient(); ItemGetRequest req = new ItemGetRequest(); req.Fields = "detail_url"; req.Iid = item.Id; req.Nick = item.Nick; Item rsp = client.Execute <Item>(req, new ItemJsonParser()); if (rsp != null && !string.IsNullOrEmpty(rsp.DetailUrl)) { item.DetailUrl = rsp.DetailUrl; } } AddChild(item.ToJsonString()); } break; } Response.Redirect(Request.Url.AbsoluteUri); }
public void OnAfterReturnItems(SearchWinReturnedEventArg e) { JsonObjectList <JsonItem> list = JsonParser.ParseJsonResponse <JsonItem>(e.PostData); Response.Write(list.TotalCount); }
private IEnumerable <TExcelType> ReadExcelSheetData <TExcelType>(WorkBook workBook, int sheetNum, ref JsonObjectList errorList) where TExcelType : ExcelData { if (workBook == null) { return(new List <TExcelType>()); } if (sheetNum < 0) { return(new List <TExcelType>()); } var tempDataList = new List <TExcelType>(); workBook.Sheet = sheetNum; var lastRow = workBook.LastRow; var lastCol = workBook.LastCol; var myObject = CreateGeneric(typeof(TExcelType)) as ExcelData; // get properties of the ExcelMemberData only once PropertyInfo[] pps = myObject.GetType().GetProperties(); ExcelGenericAttribute xlAttr = ExcelGenericAttribute.GetAttribute(myObject.GetType()); for (var i = 1; i <= lastRow; i++) { var mbrLine = CreateGeneric(typeof(TExcelType)) as ExcelData; mbrLine.ExcelLine = i + 1; if (xlAttr != null && xlAttr.AllowBlank && IsLineEmpty(workBook, i, pps.Length)) { mbrLine.BlankLineFound = true; continue; } foreach (PropertyInfo p in pps) { ExcelColumnAttribute xlColAttr = ExcelColumnAttribute.GetAttribute(p); if (xlColAttr == null || xlColAttr.OutputOnly) { continue; } var xlValue = workBook.getText(i, xlColAttr.Column); try { ExcelColumnAttribute.Validate(p, xlValue, mbrLine); mbrLine.CustomPropertyValidation(p, xlValue, mbrLine); }catch (Exception er) { var importStats = BaseImportWorker.GetImportStatus("GroupProperty", BaseUserContext.Instance.UserName); importStats.Status = new { Msg = "Errors while validating" }; importStats.ImportProgres = 100; mbrLine.IsValid = false; mbrLine.ErrorMessage = p.Name + ":" + er.Message; } if (mbrLine.CurrentPropertyIsBlank && xlColAttr.IgnoreLineIfBlank) { mbrLine.IsValid = false; mbrLine.WasIgnored = true; continue; } try { if (mbrLine.IsValid && !mbrLine.CurrentPropertyIsBlank) { p.SetValue(mbrLine, mbrLine.ValidValue, null); } } catch (Exception er) { if (mbrLine.IsValid) // to keep the first error { mbrLine.IsValid = false; mbrLine.ErrorMessage = er.Message; } } if (!mbrLine.IsValid) { break; } } if (!mbrLine.IsValid && !mbrLine.WasIgnored) { var jso = new JsonObject(); jso.AddProperty("line", i + 1); jso.AddProperty("sheet", sheetNum); jso.AddProperty("error", mbrLine.ErrorMessage); errorList.Add(jso); } tempDataList.Add((TExcelType)mbrLine); } return(tempDataList); }