Ejemplo n.º 1
0
        public static string GetPhaseDate(Enums.ResourceType resourceType, PhaseDateInput phaseDateType, int index, HrbcPhaseEntryReader phaseEntryReader)
        {
            string resultDate      = Util.ToString(DateTime.Now);
            var    recentPhaseDate = phaseEntryReader.Data[$"{resourceType.ToPrivateEnum()}{index}"].Where(phase => phase.Flag == "1").SingleOrDefault().PhaseDate;
            var    phaseDate       = Util.ParseDateTime(recentPhaseDate);

            switch (phaseDateType)
            {
            case PhaseDateInput.SmallerThanCurrentPhaseDate:
                resultDate = Util.ToString(phaseDate.AddDays(-1));
                break;

            case PhaseDateInput.EqualToCurrentPhaseDateAtSecondLevel:
                resultDate = recentPhaseDate;
                break;

            case PhaseDateInput.EqualToCurrentPhaseDateAtMinuteLevel:
                resultDate = Util.ToString(new DateTime(phaseDate.Year, phaseDate.Month, phaseDate.Day, phaseDate.Hour, phaseDate.Minute, 0));
                break;

            case PhaseDateInput.GreaterThanCurrentPhaseDate:
                resultDate = Util.ToString(phaseDate.AddDays(1));
                break;

            case PhaseDateInput.NoPhaseDate:
                resultDate = string.Empty;
                break;

            default:
                break;
            }

            return(resultDate);
        }
        public void TestUpdateSingleItem(Enums.ResourceType resourceType, PhaseDateInput phaseDateType, PhaseOptionInput phaseOptionType, int expectedCode, int index)
        {
            phaseDictionary = PhaseFieldHelper.InitPhaseList(phaseSearcher);
            var resource = PhaseFieldHelper.GetUpdatedResourcePhaseField(resourceType, phaseDateType, phaseOptionType, index,
                                                                         phaseSearcher, phaseEntryReader, GetPhaseOrderBySort(resourceType), phaseDictionary, records);
            string result = ResourceHelper.WriteResource(resource, null);

            Assert.That(result, MustBe.EqualTo(records.Data[$"{resourceType.ToPrivateEnum()}{index}"].Id.ToString()), string.Format("Cannot update phase for {0}", resourceType));
        }
        public void TestUpdateSingleItem(Enums.ResourceType resourceType, PhaseDateInput phaseDateType, PhaseOptionInput phaseOptionType, int expectedCode)
        {
            phaseDictionary = PhaseFieldHelper.InitPhaseList(phaseSearcher);
            var resource = PhaseFieldHelper.GetUpdatedResourcePhaseField(resourceType, phaseDateType, phaseOptionType, 0,
                                                                         phaseSearcher, phaseEntryReader, GetPhaseOrderBySort(resourceType), phaseDictionary, records);
            ErrorCode result = ResourceHelper.WriteResourceFail(resource, null);

            Assert.That(result, MustBe.MatchingErrorCode(expectedCode), string.Format("Cannot create phase for {0}", resourceType));
        }
        public void TestUpdateListItem(Enums.ResourceType resourceType, PhaseDateInput phaseDateType, PhaseOptionInput phaseOptionType, int expectedCode, int index)
        {
            phaseDictionary = PhaseFieldHelper.InitPhaseList(phaseSearcher);
            var resourceList = new int[] { (index * 2), (index * 2 + 1) }.Select(keyDep =>
            {
                return(PhaseFieldHelper.GetUpdatedResourcePhaseField(resourceType, phaseDateType, phaseOptionType, keyDep,
                                                                     phaseSearcher, phaseEntryReader, GetPhaseOrderBySort(resourceType), phaseDictionary, records));
            }).ToList();

            List <WriteResultItem> result = ResourceHelper.WriteResources(resourceType, resourceList, null);

            Assert.That(result, MustBe.SuccessfullyWritten(2), string.Format("Cannot update phase for {0}", resourceType));
        }
        public void TestUpdateListItem(Enums.ResourceType resourceType, PhaseDateInput phaseDateType, PhaseOptionInput phaseOptionType, int expectedCode)
        {
            phaseDictionary = PhaseFieldHelper.InitPhaseList(phaseSearcher);
            var resourceList = new int[] { 0, 1 }.Select(keyDep =>
            {
                return(PhaseFieldHelper.GetUpdatedResourcePhaseField(resourceType, phaseDateType, phaseOptionType, keyDep,
                                                                     phaseSearcher, phaseEntryReader, GetPhaseOrderBySort(resourceType), phaseDictionary, records));
            }).ToList();

            ErrorCode result = ResourceHelper.WriteResourcesFail(resourceList, null);

            Assert.That(result, MustBe.MatchingErrorCode(expectedCode), string.Format("Cannot create phase for {0}", resourceType));
        }
Ejemplo n.º 6
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);
        }