private fk_code FkCodeRecord(fk_doc fkDoc, dynamic objTb, ImportParam importParam) { if (fkDoc == null) { return(null); } //if (string.IsNullOrWhiteSpace(objTb.NumOrder)) // филтр // return null; fk_code fkCode = new fk_code() { DocId = fkDoc.Sysid, Marker = objTb.Marker, NumPos = objTb.NumPos, NumOrder = objTb.NumOrder, Code = objTb.Code, FldType = objTb.FldType, FldLen = objTb.FldLen, IsFilled = ((string)objTb.IsFilled) == "Да", Descript = objTb.Descript, Comments = objTb.Comments }; // fkCode.FkDoc = fkDoc; return(fkCode); }
public static dynamic ToFkTypeVal(this string strval, fk_code fkcode) { dynamic val = null; switch (fkcode.FldType) { case "STRING": case "GUID": val = strval.Trim(); break; case "DATE": if (!string.IsNullOrWhiteSpace(strval)) { DateTime dt; if (DateTime.TryParse(strval, out dt)) { val = dt; } } break; case "OADATE": // (OLE Automation Date) if (!string.IsNullOrWhiteSpace(strval)) { double oaDate; if (double.TryParse(strval, out oaDate)) { val = DateTime.FromOADate(oaDate); } } break; case "NUMBER": int valint; if (int.TryParse(strval, out valint)) { val = (int)valint; } break; case "NUMBER2": decimal valdec; if (decimal.TryParse(strval.Trim(), NumberStyles.AllowLeadingSign | NumberStyles.AllowDecimalPoint, Constant.CU, out valdec)) { val = valdec; } else if (decimal.TryParse(strval.Trim().Replace(',', '.'), NumberStyles.AllowLeadingSign | NumberStyles.AllowDecimalPoint, Constant.CU, out valdec)) { val = valdec; } //else - пусть лучше Null - по ошибке можнл будет отловить // val = 0.0M; break; default: val = strval; break; } return(val); }