public OperatorGoodImportResponse OperatorGoodImport(OperatorGoodImportRequest request) { return(_operatorGoodService.ImportGoodsFromExcel(request)); }
/// <summary> /// Импортирует товары из файла /// </summary> /// <param name="request"></param> /// <returns></returns> public OperatorGoodImportResponse ImportGoodsFromExcel(OperatorGoodImportRequest request) { OperatorGoodImportResponse returnValue = new OperatorGoodImportResponse(); _cnn.Open(); SqlCommand cmd = _cnn.CreateCommand(); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "OperatorImportGoods"; cmd.Parameters.AddWithValue("@partner", request.Partner); cmd.Parameters.Add("@errormessage", SqlDbType.NVarChar, 100); cmd.Parameters["@errormessage"].Direction = ParameterDirection.Output; cmd.Parameters.Add("@insertedrows", SqlDbType.Int); cmd.Parameters["@insertedrows"].Direction = ParameterDirection.Output; cmd.Parameters.Add("@result", SqlDbType.Int); cmd.Parameters["@result"].Direction = ParameterDirection.ReturnValue; if (request.Goods != null && request.Goods.Count > 0) { using (var table = new DataTable()) { table.Columns.Add("code", typeof(string)); table.Columns.Add("brandcode", typeof(string)); table.Columns.Add("goodsgroup", typeof(int)); table.Columns.Add("brand", typeof(int)); table.Columns.Add("noredeem", typeof(bool)); table.Columns.Add("nocharge", typeof(bool)); table.Columns.Add("price", typeof(decimal)); table.Columns.Add("minprice", typeof(decimal)); table.Columns.Add("name", typeof(string)); table.Columns.Add("catalog", typeof(int)); foreach (var item in request.Goods) { DataRow row = table.NewRow(); row["code"] = item.Code; row["name"] = item.Name; row["noredeem"] = false; row["nocharge"] = false; table.Rows.Add(row); } var items = new SqlParameter("@gooditems", SqlDbType.Structured) { TypeName = "dbo.GoodItem", Value = table }; cmd.Parameters.Add(items); } } try { cmd.ExecuteNonQuery(); if (!DBNull.Value.Equals(cmd.Parameters["@insertedrows"].Value)) { returnValue.ImportedRows = Convert.ToInt32(cmd.Parameters["@insertedrows"].Value); } returnValue.ErrorCode = Convert.ToInt32(cmd.Parameters["@result"].Value); returnValue.Message = Convert.ToString(cmd.Parameters["@errormessage"].Value); } catch (Exception e) { returnValue.ErrorCode = 3; returnValue.Message = e.Message; } finally { _cnn.Close(); } return(returnValue); }
public JsonResult OperatorGoodImportFromExcel(HttpPostedFileBase file) { if (Request.Files.Count > 0) { var goodList = new List <Good>(); using (var excel = new ExcelPackage(Request.Files[0].InputStream)) { var sheet = excel.Workbook.Worksheets.First(); for (var rowNum = 2; rowNum <= sheet.Dimension.End.Row; rowNum++) { try { goodList.Add(new Good { Code = sheet.Cells[rowNum, 2].Text, Name = sheet.Cells[rowNum, 1].Text }); } catch { } } } OperatorGoodImportResponse operatorGoodImportResponse = new OperatorGoodImportResponse(); try { short partner = JwtProps.GetPartner(); if (partner == 0) { partner = JwtProps.GetDefaultPartner(); } var data = new OperatorGoodImportRequest { Partner = partner, Goods = goodList }; HttpResponseMessage responseMessage = HttpClientService.PostAsync("api/values/ImportOperatorGoods", data).Result; if (responseMessage.IsSuccessStatusCode) { operatorGoodImportResponse = responseMessage.Content.ReadAsAsync <OperatorGoodImportResponse>().Result; if (operatorGoodImportResponse.ErrorCode == 0 && string.IsNullOrEmpty(operatorGoodImportResponse.Message)) { return(Json(new { success = true })); } return(Json(new { success = false })); } operatorGoodImportResponse.ErrorCode = 10; operatorGoodImportResponse.Message = "Ошибка импорта данных"; } catch (Exception e) { } //var reader = new StreamReader(Request.Files[0].InputStream); //var ex=new ExcelPackage(Request.Files[0].InputStream); //var book = ex. // Factory.GetWorkbookSet().Workbooks.OpenFromStream(Request.Files[0].InputStream); //var sheet = book.ActiveWorksheet; //var usedColumns = sheet.UsedRange.ColumnCount; //var usedRows = sheet.UsedRange.RowCount; //for (var row = 0; row < usedRows; row++) //{ // for (var col = 0; col < usedColumns; col++) // { // var iss = sheet.Cells[row, col].Text; // } //} //book.Close(); return(Json(new { success = true })); } //ПОКА ЗАГЛУШКА ВОЗВРАЩАЮЩАЯ УСПЕХ //После уточнения механизма загрузки данных будет реализовано return(Json(new { success = true })); }