using Oracle.ManagedDataAccess.Client; using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace ReportWeb.Models { public class SvAdvSchedule { // service scheduler public int id { get; set; } public DateTime? from_date { get; set; } public DateTime? to_date { get; set; } public string schedule_name { get; set; } public int status { get; set; } public List list_adv { get; set; } public static List Parse(OracleDataReader reader) { List result = new List(); List listId = new List(); try { while (reader.Read()) { SvAdvSchedule sv = new SvAdvSchedule(); SvAdv adv = new SvAdv(); for (int i = 0; i < reader.FieldCount; i++) { if (reader.GetName(i).ToUpper() == "ID") try { sv.id = int.Parse(reader.GetValue(i).ToString()); } catch { } else if (reader.GetName(i).ToUpper() == "SCHEDULE_NAME") try { sv.schedule_name = reader.GetValue(i).ToString(); } catch { } else if (reader.GetName(i).ToUpper() == "FROM_DATE") try { sv.from_date = reader.GetDateTime(i); } catch { } else if (reader.GetName(i).ToUpper() == "TO_DATE") try { sv.to_date = reader.GetDateTime(i); } catch { } else if (reader.GetName(i).ToUpper() == "STATUS") try { sv.status = int.Parse(reader.GetValue(i).ToString()); } catch { } // adv info else if (reader.GetName(i).ToUpper() == "SV_ADV_ID") { try { adv.id = int.Parse(reader.GetValue(i).ToString()); } catch { } } else if (reader.GetName(i).ToUpper() == "SV_CODE") { try { adv.sv_code = reader.GetValue(i).ToString(); } catch { } } else if (reader.GetName(i).ToUpper() == "MSG_ADV") try { adv.msg_adv = reader.GetValue(i).ToString(); } catch { } else if (reader.GetName(i).ToUpper() == "ADV_NAME") try { adv.adv_name = reader.GetValue(i).ToString(); } catch { } else if (reader.GetName(i).ToUpper() == "MESSAGE_TYPE") try { adv.message_type = reader.GetValue(i).ToString(); } catch { } else if (reader.GetName(i).ToUpper() == "CHANNEL_ADV") try { adv.channel_adv = reader.GetValue(i).ToString(); } catch { } else if (reader.GetName(i).ToUpper() == "FROM_MONEY") try { adv.from_money = reader.GetValue(i).ToString(); } catch { } else if (reader.GetName(i).ToUpper() == "PERCENT") try { adv.percent = int.Parse(reader.GetValue(i).ToString()); } catch { } } if (listId.Contains(sv.id)) { // add to list for (int i = 0; i < result.Count; i++) { SvAdvSchedule s = result[i]; if (s.id == sv.id) { result[i].list_adv.Add(adv); break; } } } else { listId.Add(sv.id); // new list List listTemp = new List(); listTemp.Add(adv); sv.list_adv = listTemp; result.Add(sv); } } reader.Close(); } catch { } finally { try { reader.Close(); } catch { } } return result; } } }