/*--------------------------------------------------------------------------------------------*/ public override void ConsumePath(ITravPath pPath, Type pToType) { ITravPathItem item = ConsumeFirstPathItem(pPath, pToType); string op = ParamAt <string>(item, 0); var ev = new CreateFabEventor(); ev.Type = (byte)EventorType.Id.Start; //to make validator happy ev.Year = ParamAt <long>(item, 1); ev.Month = ParamAt <byte>(item, 2); ev.Day = ParamAt <byte>(item, 3); ev.Hour = ParamAt <byte>(item, 4); ev.Minute = ParamAt <byte>(item, 5); ev.Second = ParamAt <byte>(item, 6); var validator = new CreateFabEventorValidator(ev); validator.Validate(); long evDateTime = DataUtil.EventorTimesToLong( ev.Year, ev.Month, ev.Day, ev.Hour, ev.Minute, ev.Second); pPath.AddScript( ".has(" + pPath.AddParam(DbName.Vert.Factor.EventorDateTime) + ", " + GremlinUtil.GetStandardCompareOperation(op) + ", " + pPath.AddParam(evDateTime) + ")" ); }
/*--------------------------------------------------------------------------------------------*/ public static void ValidateFactorEventor(CreateFabEventor pObj) { bool allow = true; allow = ValidateFactorEventorItem(CreateFabEventorValidator.MonthName, pObj.Month, allow); allow = ValidateFactorEventorItem(CreateFabEventorValidator.DayName, pObj.Day, allow); allow = ValidateFactorEventorItem(CreateFabEventorValidator.HourName, pObj.Hour, allow); allow = ValidateFactorEventorItem(CreateFabEventorValidator.MinuteName, pObj.Minute, allow); allow = ValidateFactorEventorItem(CreateFabEventorValidator.SecondName, pObj.Second, allow); string dateStr = pObj.Year + (pObj.Month == null ? "" : "-" + pObj.Month) + (pObj.Day == null ? "" : "-" + pObj.Day) + (pObj.Hour == null ? "" : " " + pObj.Hour) + (pObj.Minute == null ? "" : ":" + pObj.Minute) + (pObj.Second == null ? "" : ":" + pObj.Second); DateTime dt; if (!DateTime.TryParse(dateStr, out dt)) { throw new FabPropertyValueFault( typeof(CreateFabEventor).Name + " provides an invalid date/time: " + dateStr); } }
/*--------------------------------------------------------------------------------------------*/ private static void FromCreateFabFactorEventor(Factor pDomain, CreateFabEventor pEventor) { pDomain.EventorDateTime = DataUtil.EventorTimesToLong(pEventor.Year, pEventor.Month, pEventor.Day, pEventor.Hour, pEventor.Minute, pEventor.Second); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public CreateFabEventorValidator(CreateFabEventor pCreateObj) : base(pCreateObj) { vCreateObj = pCreateObj; }