private bool LimitSight(Guid billDemandUid, Guid sighterId, Guid initiatorId, SightingType sightingType, Func<Budget2DataContext, Guid, List<LimitSighter>> sighterSelector) { bool retval = false; using (var scope = ReadCommittedSupressedScope) { using (var context = this.CreateContext()) { var sighters = sighterSelector(context, billDemandUid); if (sighters.Count(p => p.SighterId == sighterId) == 0) return false; List<LimitSighter> currentSighters = GetCurrentSighters(context, billDemandUid, sightingType).ConvertAll<LimitSighter>(p => p); foreach (var limitSighter in sighters.Where(p => p.SighterId == sighterId)) { var sighter = limitSighter; if (currentSighters.Count(p => p.LimitId == sighter.LimitId && p.SighterId == sighter.SighterId) == 0) { var newSighting = new WorkflowSighting { EntityId = billDemandUid, Id = Guid.NewGuid(), SighterId = sighterId, InitiatorId = initiatorId, SightingType = sightingType.Id, SightingTime = DateTime.Now, ItemId = sighter.LimitId }; context.WorkflowSightings.InsertOnSubmit(newSighting); currentSighters.Add(sighter); } } retval = sighters.TrueForAll( p => currentSighters.FirstOrDefault(s => s.LimitId == p.LimitId && s.SighterId == p.SighterId) != null); context.SubmitChanges(); } scope.Complete(); } return retval; }
private bool OperativeSight(Guid billDemandUid, Guid sighterId, Guid initiatorId) { bool retval = false; using (var scope = ReadCommittedSupressedScope) { using (var context = this.CreateContext()) { var bd = GetBillDemand(context, billDemandUid); if (bd == null) return false; var sdId = EmployeeService.GetIdentityStructDivisionId(sighterId, bd.BudgetId); if (!sdId.HasValue) return false; var sighters = GetLimitManagerSightersOperative(context, bd); if (sighters.Count(p => p.LimitId == sdId.Value) == 0) return false; List<LimitSighter> currentSighters = GetCurrentSighters(context, billDemandUid, SightingType.BillDemandLimitManagerSighting).ConvertAll<LimitSighter>(p => p); foreach (var limitSighter in sighters.Where(p => p.LimitId == sdId.Value)) { var sighter = limitSighter; if (currentSighters.Count(p => p.LimitId == sighter.LimitId) == 0) { var newSighting = new WorkflowSighting { EntityId = billDemandUid, Id = Guid.NewGuid(), SighterId = sighterId, InitiatorId = initiatorId, SightingType = SightingType.BillDemandLimitManagerSighting.Id, SightingTime = DateTime.Now, ItemId = sighter.LimitId }; context.WorkflowSightings.InsertOnSubmit(newSighting); currentSighters.Add(sighter); } } retval = sighters.TrueForAll( p => currentSighters.FirstOrDefault(s => s.LimitId == p.LimitId ) != null); context.SubmitChanges(); } scope.Complete(); } return retval; }
private void detach_WorkflowSightings(WorkflowSighting entity) { this.SendPropertyChanging(); entity.SecurityTrustee = null; }
partial void DeleteWorkflowSighting(WorkflowSighting instance);
partial void UpdateWorkflowSighting(WorkflowSighting instance);
partial void InsertWorkflowSighting(WorkflowSighting instance);