public ContractEvent(ContractEventDto c) { InternalName = c.InternalName; Date = c.Date; FundsChange = c.FundsChange; RepChange = c.RepChange; Type = c.Type; }
public ContractEventDto(ContractEvent ce) { internalName = ce.InternalName; date = CareerLog.UTToDate(ce.UT).ToString("o"); fundsChange = ce.FundsChange; repChange = ce.RepChange; type = ce.Type; }
protected override void OnLoad(ConfigNode node) { base.OnLoad(node); string sEvtType = null; node.TryGetValue("contractType", ref _ccType); node.TryGetValue("eventType", ref sEvtType); _evtType = (ContractEventType)Enum.Parse(typeof(ContractEventType), sEvtType); }
public List <ContractEventWithCareerInfo> GetEventsForContract(string contract, ContractEventType evtType = ContractEventType.Complete, ODataQueryOptions <CareerLog> queryOptions = null) { string contractDispName = ResolveContractName(contract); var q = _careerLogs.AsQueryable(); if (queryOptions != null) { q = (IMongoQueryable <CareerLog>)queryOptions.ApplyTo(q, new ODataQuerySettings { HandleNullPropagation = HandleNullPropagationOption.False }); } var events = q.Where(entry => entry.ContractEventEntries.Any(ce => ce.InternalName == contract && ce.Type == evtType)) .Select(c => new ContractEventWithCareerInfo { CareerId = c.Id, CareerName = c.Name, UserLogin = c.UserLogin, Date = c.ContractEventEntries.Where(ce => ce.InternalName == contract && ce.Type == evtType) .Min(ce => ce.Date) }) .ToList(); events.ForEach(entry => { entry.Type = evtType; entry.ContractInternalName = contract; entry.UserPreferredName = GetUserPreferredName(entry.UserLogin); entry.ContractDisplayName = contractDispName; }); events.Sort((a, b) => a.Date.Value.CompareTo(b.Date.Value)); return(events); }
public AcceptContractBehaviour(string ccType, ContractEventType evtType) { _ccType = ccType; _evtType = evtType; }
public override bool Load(ConfigNode node) { bool valid = base.Load(node); valid &= ConfigNodeUtil.ParseValue <string>(node, "contractType", x => ccType = x, this); valid &= ConfigNodeUtil.ParseValue <ContractEventType>(node, "eventType", x => eventType = x, this); return(valid); }
public List <ContractEventWithCareerInfo> GetEventsForContract(string contract, ContractEventType evtType = ContractEventType.Complete) { var projection = Builders <CareerLog> .Projection.Expression(c => new ContractEventWithCareerInfo { CareerId = c.Id, CareerName = c.name, ContractInternalName = contract, ContractDisplayName = ResolveContractName(contract), Type = evtType, Date = c.contractEventEntries.First(ce => ce.internalName == contract && ce.type == evtType).date }); var events = _careerLogs.Find(entry => entry.contractEventEntries.Any(ce => ce.internalName == contract && ce.type == evtType)) .Project(projection) .ToList(); // Cannot use server-side sort here. https://stackoverflow.com/q/56988743 events.Sort((a, b) => a.Date.Value.CompareTo(b.Date.Value)); return(events); }