Search code examples
c#.netlambdawcf-ria-servicesinvoke

Lambda expression and InvokeOperation


I have this code and cannot figure out how it could be simplified via Lambda expression?

public void LoadEntities(QueryBuilder<Device> query, Action<ServiceLoadResult<Device>> callback, object state)
{
    InvokeOperation<List<DivisionHierarchy>> obj = this.Context.GetAllDivisions();

    obj.Completed += new EventHandler(obj_Completed);   
}

void obj_Completed(object sender, EventArgs e)
{
    try
    {
        if (sender is InvokeOperation<List<DivisionHierarchy>>)
        {
            ObservableCollection<DivisionHierarchy> divisions = 
                new ObservableCollection<DivisionHierarchy>((sender as InvokeOperation<List<DivisionHierarchy>>).Value);
        }
    }
    catch  
    {                 
    }
} 

Solution

  • Your question is a bit too broad, so I'm guessing here, but the only place for lambda expressions here is when hooking into the event. So instead of having a seperate obj_Completed method, you can do this:

        public void LoadEntities(QueryBuilder<Device> query, Action<ServiceLoadResult<Device>> callback, object state)
        {
            InvokeOperation<List<DivisionHierarchy>> obj = this.Context.GetAllDivisions();
    
            obj.Completed += (sender, e) =>
            {
               try
               {
                   if (sender is InvokeOperation<List<DivisionHierarchy>>)
                   {
                       ObservableCollection<DivisionHierarchy> divisions = 
                           new ObservableCollection<DivisionHierarchy>((sender as InvokeOperation<List<DivisionHierarchy>>).Value);
    
                   }
               }
               catch  
               {                 
               }
           } 
         }