public void CreateAllStaffInAssembly_ReturnsListOfStaff() { var assembly = new Dictionary <int, int> { { SpecificStaffFunction.ManagerFunctions.HeadManager, 1 }, { SpecificStaffFunction.ManagerFunctions.AssistentManager, 1 }, { SpecificStaffFunction.ManagerFunctions.YouthManager, 1 }, { SpecificStaffFunction.CoachFunctions.GoalKeepingCoach, 1 }, { SpecificStaffFunction.CoachFunctions.DefenceCoach, 2 }, { SpecificStaffFunction.CoachFunctions.AttackingCoach, 1 }, { SpecificStaffFunction.CoachFunctions.TechnicalCoach, 2 }, { SpecificStaffFunction.CoachFunctions.MentalCoach, 1 }, { SpecificStaffFunction.CoachFunctions.PhysicalCoach, 2 }, { SpecificStaffFunction.ScoutFunctions.FirstTeamScout, 2 }, { SpecificStaffFunction.ScoutFunctions.YouthScout, 1 }, }; var staff = AssemblyGeneratorBase <Staff> .CreateAllPersonsInAssembly(assembly, RandomUtil.GetRandomInt(5, 125), ePerson.Staff); Assert.IsNotEmpty(staff); Assert.AreEqual(15, staff.Count); foreach (var element in assembly) { Assert.AreEqual(element.Value, staff.Count(p => p.MainFunction == element.Key)); } }
/// <summary> /// Adds the existing records classes. /// </summary> /// <param name="assemblyCode">The assembly code.</param> /// <param name="processView">The process view.</param> /// <param name="viewConfig">The view configuration.</param> /// <param name="process">The process.</param> /// <param name="assemblyGenerator">The assembly generator.</param> private static void AddExistingRecordsClasses(StringBuilder assemblyCode, IProcessView processView, DataCollectProcessViewConfigurator viewConfig, IProcessDefinition process, AssemblyGeneratorBase assemblyGenerator) { var dcConfig = (DataCollectViewConfig) processView.ViewConfiguration; var table = new TableDefinition { Name = process.Name }; assemblyCode.AppendFormat( @" [Serializable] public class {0} : BaseReferenceInfo<{0}> {{ {1} public static ReferenceFieldDefinition GetFieldDefinition() {{ ReferenceFieldDefinition fieldDefinition = null; {2} return fieldDefinition; }} }} ", GetExistingRecordsChildClassName(processView, viewConfig, process), AssemblyGeneratorBase.GetDisplaylistRefEditableChildProperties(table, dcConfig.ReferenceField), assemblyGenerator.GetReferenceDefinition(new TableDefinition {Name = process.Name}, dcConfig.ReferenceField, "fieldDefinition")); assemblyCode.AppendFormat( @" [Serializable] public class {0} : BaseReferenceInfoList<{0}, {1}> {{ public static void BeginGetList(int pageNumber, int pageSize, SortList sorting, string filter, System.Action<object, IDataPortalResult> callback) {{ DataPortal.BeginFetch<{0}>(new PagedCriteria {{ PageNumber = pageNumber, PageSize = pageSize, SortColumns = sorting, Filter = filter }}, (o, result) => callback(o, result)); }} public void Assign(IReverseCrossReferenceItem item) {{ IsReadOnly = false; Add(({1})item); IsReadOnly = true; }} public void Load(IEnumerable<IReverseCrossReferenceItem> items) {{ IsReadOnly = false; Clear(); AddRange(items.Cast<{1}>()); IsReadOnly = true; }} }} ", GetExistingRecordsListClassName(processView, viewConfig, process), GetExistingRecordsChildClassName(processView, viewConfig, process)); }
public void CountNumberOfPlayers_ReturnsNumberOfPlayersInSquadAssembly() { var squadAssembly = new Dictionary <int, int> { { Position.Goaly, 5 }, { Position.Defence, 5 }, { Position.Midfield, 0 }, { Position.Forward, 5 }, }; Assert.AreEqual(15, AssemblyGeneratorBase <Player> .CountNumberOfPersonsInAssembly(squadAssembly)); }
/// <summary> /// Called when [after add process view classes]. /// </summary> /// <param name="assemblyCode">The assembly code.</param> /// <param name="process">The process.</param> /// <param name="assemblyGenerator">The assembly generator.</param> public override void OnAfterAddProcessViewClasses(StringBuilder assemblyCode, IProcessDefinition process, AssemblyGeneratorBase assemblyGenerator) { base.OnAfterAddProcessViewClasses(assemblyCode, process, assemblyGenerator); foreach (var processView in process.ProcessViews) { if (processView.ViewType != ProcessViewType.APQP) continue; var viewConfig = new APQPProcessViewConfigurator(); viewConfig.SetConfigurationString(processView.Configuration); } }
/// <summary> /// Called when [after add process view classes]. /// </summary> /// <param name="assemblyCode">The assembly code.</param> /// <param name="process">The process.</param> /// <param name="assemblyGenerator">The assembly generator.</param> public override void OnAfterAddProcessViewClasses(StringBuilder assemblyCode, IProcessDefinition process, AssemblyGeneratorBase assemblyGenerator) { base.OnAfterAddProcessViewClasses(assemblyCode, process, assemblyGenerator); foreach (var processView in process.ProcessViews) { if (processView.ViewType != ProcessViewType.DataCollect) continue; var viewConfig = new DataCollectProcessViewConfigurator(); viewConfig.SetConfigurationString(processView.Configuration); if (viewConfig.ExistingRecordFields.Count > 0) AddExistingRecordsClasses(assemblyCode, processView, viewConfig, process, assemblyGenerator); } }
public void CreateAllPlayersInAssembly_ReturnsListOfPlayers() { var squadAssembly = new Dictionary <int, int> { { Position.Goaly, 2 }, { Position.Defence, 3 }, { Position.Midfield, 3 }, { Position.Forward, 2 }, }; var players = AssemblyGeneratorBase <Player> .CreateAllPersonsInAssembly(squadAssembly, RandomUtil.GetRandomInt(5, 125), ePerson.Player); Assert.IsNotEmpty(players); Assert.AreEqual(10, players.Count); foreach (var element in squadAssembly) { Assert.AreEqual(element.Value, players.Count(p => p.MainFunction == element.Key)); } }
public void CountNumberOfStaff_ReturnsNumberOfStaffInSquadAssembly() { var assembly = new Dictionary <int, int> { { SpecificStaffFunction.ManagerFunctions.HeadManager, 1 }, { SpecificStaffFunction.ManagerFunctions.AssistentManager, 1 }, { SpecificStaffFunction.ManagerFunctions.YouthManager, 1 }, { SpecificStaffFunction.CoachFunctions.GoalKeepingCoach, 1 }, { SpecificStaffFunction.CoachFunctions.DefenceCoach, 1 }, { SpecificStaffFunction.CoachFunctions.AttackingCoach, 1 }, { SpecificStaffFunction.CoachFunctions.TechnicalCoach, 1 }, { SpecificStaffFunction.CoachFunctions.MentalCoach, 1 }, { SpecificStaffFunction.CoachFunctions.PhysicalCoach, 1 }, { SpecificStaffFunction.ScoutFunctions.FirstTeamScout, 1 }, { SpecificStaffFunction.ScoutFunctions.YouthScout, 1 } }; Assert.AreEqual(11, AssemblyGeneratorBase <Player> .CountNumberOfPersonsInAssembly(assembly)); }
/// <summary> /// Adds the existing records classes. /// </summary> /// <param name="assemblyCode">The assembly code.</param> /// <param name="processView">The process view.</param> /// <param name="viewConfig">The view configuration.</param> /// <param name="process">The process.</param> /// <param name="assemblyGenerator">The assembly generator.</param> private static void AddExistingRecordsClasses(StringBuilder assemblyCode, IProcessView processView, DataCollectProcessViewConfigurator viewConfig, IProcessDefinition process, AssemblyGeneratorBase assemblyGenerator) { var dcConfig = (DataCollectViewConfig)processView.ViewConfiguration; var table = new TableDefinition {Name = process.Name}; assemblyCode.AppendFormat( @" [Serializable] public class {0} : BaseReferenceInfo<{0}> {{ {1} public static {0} Get{0}(SafeDataReader reader) {{ return DataPortal.FetchChild<{0}>(reader); }} private void Child_Fetch(SafeDataReader reader) {{ var displayName = new System.Text.StringBuilder(); {2} }} public static Cebos.Veyron.SharedTypes.ReferenceFieldDefinition GetFieldDefinition() {{ Cebos.Veyron.SharedTypes.ReferenceFieldDefinition fieldDefinition = null; {3} return fieldDefinition; }} }} ", GetExistingRecordsChildClassName(processView, viewConfig, process), AssemblyGeneratorBase.GetDisplaylistRefEditableChildProperties(table, dcConfig.ReferenceField), ((ServerAssemblyGenerator)assemblyGenerator).GetReverseCrossRefChildPropertiesLoad(dcConfig.ReferenceField), assemblyGenerator.GetReferenceDefinition(table, dcConfig.ReferenceField, "fieldDefinition") ); }
/// <summary> /// Adds the existing records classes. /// </summary> /// <param name="assemblyCode">The assembly code.</param> /// <param name="processView">The process view.</param> /// <param name="viewConfig">The view configuration.</param> /// <param name="process">The process.</param> /// <param name="assemblyGenerator">The assembly generator.</param> private void AddExistingRecordsClasses(StringBuilder assemblyCode, IProcessView processView, DataCollectProcessViewConfigurator viewConfig, IProcessDefinition process, AssemblyGeneratorBase assemblyGenerator) { assemblyCode.AppendFormat( @" [Serializable] public class {0} : BaseReferenceInfoList<{0}, {1}> {{ private void DataPortal_Fetch(PagedCriteria criteria) {{ var fieldDefinition = {1}.GetFieldDefinition(); var queryGenerator = new SearchQueryGenerator {{ PageSize = criteria.PageSize, PageNumber = criteria.PageNumber }}; Dynamic{2}.{2}List.AddTables(queryGenerator); queryGenerator.RefUpdateFields(fieldDefinition); var filterList = (new List<IFilterDescriptor>()); if (!string.IsNullOrWhiteSpace(criteria.Filter)) {{ // new JSON filter format filterList.Add(Cebos.Veyron.SharedTypes.FilterDescriptor.FromJSON(criteria.Filter)); }} if (filterList.Any()) {{ QueryGeneratorExtensions.AddFilters(filterList, queryGenerator.Filters, queryGenerator.RootTable, queryGenerator); }} if (criteria.SortColumns != null) {{ foreach(var col in criteria.SortColumns) {{ queryGenerator.SortOrders.Add(new Cebos.Veyron.SharedTypes.QueryGenerator.SortDescriptor(col.Direction, queryGenerator.FindColumn(col.ColumnName), col.ColumnName)); }} }} var cmdText = queryGenerator.RefGetQueryForList(fieldDefinition); RaiseListChangedEvents = false; IsReadOnly = false; using (var ctx = ConnectionManager<SqlConnection>.GetManager(ServerSettings.ConnectionString, false)) {{ using (var cmd = new SqlCommand(cmdText, ctx.Connection)) {{ using (var reader = new SafeDataReader(cmd.ExecuteReader())) {{ bool isFirstRow = true; while (reader.Read()) {{ var item = {1}.Get{1}(reader); Add(item); if (!isFirstRow) {{ continue; }} TotalRowCount = (int)reader.GetInt64(0); isFirstRow = false; }} }} }} }} PageNumber = criteria.PageNumber; IsReadOnly = true; RaiseListChangedEvents = true; }} }} ", GetExistingRecordsListClassName(processView, viewConfig, process), GetExistingRecordsChildClassName(processView, viewConfig, process), process.Name); }
/// <summary> /// Called when [after add process view classes]. /// </summary> /// <param name="assemblyCode">The assembly code.</param> /// <param name="process">The process.</param> /// <param name="assemblyGeneratorBase">The assembly generator base.</param> public virtual void OnAfterAddProcessViewClasses(StringBuilder assemblyCode, IProcessDefinition process, AssemblyGeneratorBase assemblyGeneratorBase) {}