/// <summary> /// Gets the size. /// </summary> /// <param name="line">The design line.</param> /// <param name="code">The riviera design code</param> /// <param name="values">The nominal values.</param> public RivieraMeasure GetSize(DesignLine line, String code, KeyValuePair<string, double>[] values) { try { RivieraDesignDatabase db = this.LineDB[line]; var sizes = db?.Sizes.FirstOrDefault(x => x.Key == code).Value.Sizes; return sizes.FirstOrDefault(x => x.HasSize(values)); } catch (Exception) { throw new RivieraException(ERR_SIZE_NOT_EXIST); } }
/// <summary> /// Initializes the database. /// </summary> /// <param name="app">The riviera application.</param> /// <param name="database">The database to initialize on the application.</param> public static void InitDatabase(this RivieraApplication app, params RivieraDatabase[] database) { var databaseLoaded = app.Database.DatabaseLoaded; app.Database = new RivieraDatabase(); app.Database.DatabaseLoaded = databaseLoaded; DesignLine[] spLines = new DesignLine[] { DesignLine.Bordeo }; RivieraDesignDatabase[] dbs = new RivieraDesignDatabase[] { new BordeoDesignDatabase() }; for (int i = 0; i < spLines.Length; i++) { app.Database.LineDB.Add(spLines[i], dbs[i]); } WinAppInitializer win = new WinAppInitializer(); win.Show(); app.Database.Init(win); }
/// <summary> /// Gets the riviera code for a specific design line. /// </summary> /// <param name="rows">The selected rows from the database.</param> /// <param name="line">The Riviera design line.</param> /// <returns>The List of Riviera codes</returns> /// <returns>The Riviera codes</returns> public static List <RivieraCode> GetRivieraCodeForLine(IEnumerable <RivieraCodeRow> rows, DesignLine line) { List <RivieraCode> codes = new List <RivieraCode>(); RivieraCode code; foreach (var row in rows.Where(x => x.Data[FIELD_LINE].ParseDesignLine() == line)) { code = codes.FirstOrDefault(x => x.Code == row.Data[FIELD_ID]); if (code == null) { code = new RivieraCode() { Block = row.Data[FIELD_BLOQUE], Code = row.Data[FIELD_ID], Description = row.Data[FIELD_CODE_DESC], DoublePanel = row.Data[FIELD_PP] == "S", Line = line, ElementType = row.Data[FIELD_TYPE].ParseElementType() }; codes.Add(code); } code.AddAcabado(row.Data[FIELD_ACAB], row.Data[FIELD_ACAB_DESC]); } return(codes); }
/// <summary> /// Initializes a new instance of the <see cref="RivieraDatabase"/> class. /// </summary> /// <param name="line">The Riviera design line.</param> public RivieraDesignDatabase(DesignLine line) { this.Line = line; this.Codes = new List <RivieraCode>(); this.Sizes = new Dictionary <String, ElementSizeCollection>(); }