Ejemplo n.º 1
0
        public static List <HrbcOptionCreator.Spec> InitOptionCreator(HrbcOptionSearch phaseList, int numberOfOptions)
        {
            var specs = new List <HrbcOptionCreator.Spec>();

            foreach (var item in PhaseHelper.GetResourcesHavePhase())
            {
                for (int i = 0; i < numberOfOptions; i++)
                {
                    specs.Add(new HrbcOptionCreator.Spec
                    {
                        //Alias = $"Option.U_My{item}Phase{i}",
                        Name     = $"Test {item} phase {i}",
                        ParentId = GetParentOptionId(item, phaseList),
                        Key      = $"{item}{i}",
                        Type     = optionType[item],
                        Sort     = i + 1 + GetParentChildCount(item, phaseList),
                        Children = new List <HrbcOptionCreator.Spec>
                        {
                            new HrbcOptionCreator.Spec {
                                Name = $"Test {item} child 1 phase {i}", Key = $"{item}{i}child1", Type = optionType[item], Sort = 1
                            },
                            new HrbcOptionCreator.Spec {
                                Name = $"Test {item} child 2 phase {i}", Key = $"{item}{i}child2", Type = optionType[item], Sort = 2
                            },
                            new HrbcOptionCreator.Spec {
                                Name = $"Test {item} child 3 phase {i}", Key = $"{item}{i}child3", Type = optionType[item], Sort = 3
                            },
                        }
                    });
                }
            }
            return(specs);
        }
Ejemplo n.º 2
0
        private static ulong GetMidPhaseOptionId(Enums.ResourceType resourceType, HrbcOptionSearch PhaseSearcher)
        {
            var resourceRootPhase = PhaseSearcher.Data.Options.Where(op => op.Alias == $"Option.P_{resourceType.ToResourceName()}Phase").SingleOrDefault();
            var listOption        = resourceRootPhase.Children.Where(c => c.Children != null && c.Children.Count >= 2).OrderBy(c => c.Sort).ToList();

            Assume.That(listOption.Count, Is.GreaterThan(2), "Parent phase options Less Than 3 options");
            Assume.That(listOption.ElementAt(1).Children.Count, Is.GreaterThan(2), "Children phase options Less Than 3 options");

            return(listOption.ElementAt(1).Children.ElementAt(1).Id);
        }
Ejemplo n.º 3
0
 public static UpdateRecordRequest.IBuilderWithResource InitRecordsUpdater(HrbcRecordCreator records, HrbcOptionSearch PhaseSearcher)
 {
     UpdateRecordRequest.IBuilder result = ResourceRequest.UpdateRecords();
     foreach (var value in records.Data.Values.Where(val => val.ResourceType != Enums.ResourceType.Contract))
     {
         result.AddContent(value.ResourceType.ToPrivateEnum(), value.Id,
                           content => content.AddField(
                               new HrbcField(value.ResourceType.ToPrivateEnum(), "P_PhaseDate", ResourceType.Standard), Util.ToString(DateTime.Now)
                               ).
                           AddField(
                               new HrbcField(value.ResourceType.ToPrivateEnum(), "P_Phase", ResourceType.Standard), GetMidPhaseOptionId(value.ResourceType, PhaseSearcher)
                               )
                           );
     }
     return(result as UpdateRecordRequest.IBuilderWithResource);
 }
Ejemplo n.º 4
0
        public static Dictionary <Enums.ResourceType, Dictionary <string, OptionSearchContent> > InitPhaseList(HrbcOptionSearch phaseSearcher)
        {
            //Dictionary -> key Phase Id, value Phase Alias
            var phaseDictionary = new Dictionary <Enums.ResourceType, Dictionary <string, OptionSearchContent> >();

            foreach (var resourceType in PhaseHelper.GetResourcesHavePhase())
            {
                var resourceRootPhase = phaseSearcher.Data.Options.SingleOrDefault(op => op.Alias == $"Option.P_{resourceType.ToResourceName()}Phase");
                Dictionary <string, OptionSearchContent> listIdAlias = GetChildPhaseList(resourceRootPhase);
                listIdAlias.Add(resourceRootPhase.Id.ToString(), resourceRootPhase);
                phaseDictionary.Add(resourceType, listIdAlias);
            }
            return(phaseDictionary);
        }
Ejemplo n.º 5
0
        public static XmlResource GetUpdatedResourcePhaseField(Enums.ResourceType resourceType, PhaseDateInput phaseDateType, PhaseOptionInput phaseOptionType, int index, HrbcOptionSearch phaseSearcher, HrbcPhaseEntryReader phaseEntryReader,
                                                               List <KeyValuePair <int, PhaseFlowContent> > resourcePhaseFlow, Dictionary <Enums.ResourceType, Dictionary <string, OptionSearchContent> > phaseDictionary, HrbcRecordCreator records)
        {
            string phaseAlias     = $"{resourceType.ToResourceName()}.{PhaseField}";
            string phaseDateAlias = $"{resourceType.ToResourceName()}.{PhaseDateField}";
            Option phaseValue     = GetPhaseOption(resourceType, phaseOptionType, index, phaseSearcher, phaseEntryReader, resourcePhaseFlow, phaseDictionary);
            string phaseDateValue = GetPhaseDate(resourceType, phaseDateType, index, phaseEntryReader);
            string recordId       = records.Data[$"{resourceType.ToPrivateEnum()}{index}"].Id.ToString();
            var    resource       = ResourceHelper.CreateUpdatedResource(resourceType, recordId, phaseDateAlias, phaseDateValue);

            if (phaseDateValue == string.Empty)
            {
                resource.DictionaryValues.Remove(phaseDateAlias);
            }
            if (phaseValue != null)
            {
                resource.DictionaryValues[phaseAlias] = phaseValue;
            }
            return(resource);
        }
Ejemplo n.º 6
0
        private static Option GetPhaseOption(Enums.ResourceType resourceType, PhaseOptionInput phaseOptionType, int index, HrbcOptionSearch PhaseSearcher, HrbcPhaseEntryReader phaseEntryReader,
                                             List <KeyValuePair <int, PhaseFlowContent> > resourcePhaseFlow, Dictionary <Enums.ResourceType, Dictionary <string, OptionSearchContent> > phaseDictionary)
        {
            var resourceRootPhase = PhaseSearcher.Data.Options.Where(op => op.Alias == $"Option.P_{resourceType.ToResourceName()}Phase").SingleOrDefault();
            var listOption        = resourceRootPhase.Children.Where(c => c.Children != null && c.Children.Count >= 2).OrderBy(c => c.Sort).ToList();

            Assume.That(listOption.Count, Is.GreaterThan(2), "Less Than 3 options");
            var recentExpectedPhase = listOption.ElementAt(1).Children.ElementAt(1);
            var phaseIdContent      = phaseDictionary[resourceType];
            var recentPhaseName     = phaseEntryReader.Data[$"{resourceType.ToPrivateEnum()}{index}"].Where(phase => phase.Flag == "1").SingleOrDefault().Phase;
            var recentPhaseId       = resourcePhaseFlow.Where(r => r.Value.Name == recentPhaseName).SingleOrDefault().Key;
            var recentPhase         = phaseIdContent[recentPhaseId.ToString()];
            var recentParentPhase   = phaseIdContent[recentPhase.ParentId.ToString()];

            Assume.That(recentPhaseId, Is.EqualTo((int)recentExpectedPhase.Id), "Recent Phase does not match the expected one.");
            int nextPhaseOptionId = 0;

            switch (phaseOptionType)
            {
            case PhaseOptionInput.GreaterThanCurrentPhase:
                nextPhaseOptionId = resourcePhaseFlow.Last().Key;
                break;

            case PhaseOptionInput.SameSortButGreaterParent:
                nextPhaseOptionId = (int)listOption.ElementAt(2).Children.ElementAt(1).Id;
                break;

            case PhaseOptionInput.SmallerThanCurrentPhase:
                nextPhaseOptionId = resourcePhaseFlow.First().Key;
                break;

            case PhaseOptionInput.SameSortButSmallerParent:
                nextPhaseOptionId = (int)listOption.ElementAt(0).Children.ElementAt(1).Id;
                break;

            case PhaseOptionInput.SmallerSortSmallerParent:
                nextPhaseOptionId = (int)listOption.ElementAt(0).Children.ElementAt(0).Id;
                break;

            case PhaseOptionInput.EqualToCurrentPhase:
                nextPhaseOptionId = recentPhaseId;
                break;

            case PhaseOptionInput.NoPhase:
                break;

            default:
                break;
            }
            if (nextPhaseOptionId == 0)
            {
                return(null);
            }
            else
            {
                return(new Option()
                {
                    ActualXMLTag = phaseIdContent[nextPhaseOptionId.ToString()].Alias
                });
            }
            throw new NotImplementedException();
        }
Ejemplo n.º 7
0
 private static int GetParentChildCount(Enums.ResourceType resourceType, HrbcOptionSearch phaseList)
 {
     return((int)phaseList.Data.Options.Where(op => op.Alias == $"Option.P_{resourceType.ToResourceName()}Phase").SingleOrDefault().Children.Count);
 }