public static string ImportSuppliers(Stream stream, int companyId) { const int EXTERNALID = 0; const int NAME = 1; List <Supplier> toAddSuppliers = new List <Supplier>(); byte[] fileBytes = new byte[stream.Length]; stream.Read(fileBytes, 0, Convert.ToInt32(stream.Length)); string fileContent = System.Text.Encoding.Default.GetString(fileBytes); string[] fileLines = fileContent.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); int firstValuesLine = 0; bool noErros = true; string errorType = String.Empty; using (SuppliersRepository suppliersRep = new SuppliersRepository(companyId)) { for (int i = firstValuesLine; i < fileLines.Length; i++) { string[] lineValues = fileLines[i].Split('\t'); for (int vIndex = 0; vIndex < lineValues.Length; vIndex++) { lineValues[vIndex] = lineValues[vIndex].Replace("\"", ""); } Supplier newSupplier; if (!(int.Parse(lineValues[EXTERNALID]) > 0)) { errorType = Loc.Dic.error_invalid_form; break; } if (lineValues[NAME] == null) { errorType = Loc.Dic.error_invalid_form; break; } try { newSupplier = new Supplier() { CompanyId = companyId, ExternalId = lineValues[EXTERNALID], Name = lineValues[NAME], }; } catch { noErros = false; errorType = Loc.Dic.Error_FileParseError; break; } List <Supplier> existingSuppliers = suppliersRep.GetList().Where(x => x.CompanyId == companyId && x.ExternalId == newSupplier.ExternalId).ToList(); if (existingSuppliers.Count == 0) { toAddSuppliers.Add(newSupplier); } else { foreach (Supplier supplier in existingSuppliers) { supplier.Name = lineValues[NAME]; suppliersRep.Update(supplier); } } } if (!suppliersRep.AddList(toAddSuppliers)) { noErros = false; errorType = Loc.Dic.error_database_error; } } if (!noErros) { return(errorType); } return("OK"); }
public static string ImportSuppliers(Stream stream, int companyId) { const int EXTERNALID = 0; const int NAME = 1; List<Supplier> toAddSuppliers = new List<Supplier>(); byte[] fileBytes = new byte[stream.Length]; stream.Read(fileBytes, 0, Convert.ToInt32(stream.Length)); string fileContent = System.Text.Encoding.Default.GetString(fileBytes); string[] fileLines = fileContent.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); int firstValuesLine = 0; bool noErros = true; string errorType = String.Empty; using (SuppliersRepository suppliersRep = new SuppliersRepository(companyId)) { for (int i = firstValuesLine; i < fileLines.Length; i++) { string[] lineValues = fileLines[i].Split('\t'); for (int vIndex = 0; vIndex < lineValues.Length; vIndex++) { lineValues[vIndex] = lineValues[vIndex].Replace("\"", ""); } Supplier newSupplier; if (!(int.Parse(lineValues[EXTERNALID]) > 0)) { errorType = Loc.Dic.error_invalid_form; break; } if (lineValues[NAME] == null) { errorType = Loc.Dic.error_invalid_form; break; } try { newSupplier = new Supplier() { CompanyId = companyId, ExternalId = lineValues[EXTERNALID], Name = lineValues[NAME], }; } catch { noErros = false; errorType = Loc.Dic.Error_FileParseError; break; } List<Supplier> existingSuppliers = suppliersRep.GetList().Where(x => x.CompanyId == companyId && x.ExternalId == newSupplier.ExternalId).ToList(); if (existingSuppliers.Count == 0) toAddSuppliers.Add(newSupplier); else { foreach (Supplier supplier in existingSuppliers) { supplier.Name = lineValues[NAME]; suppliersRep.Update(supplier); } } } if (!suppliersRep.AddList(toAddSuppliers)) { noErros = false; errorType = Loc.Dic.error_database_error; } } if (!noErros) return errorType; return "OK"; }