public IMappingExpression <EmployeeEntity, Employee> MapEmployees(IncludeChildren includeChildren)
        {
            Mapper.Reset();

            String culture      = PathHelper.Resources.Culture;
            String formatString = (culture == "JA") ? "{1} {0}" : "{0} {1}";
            var    mapping      = Mapper.CreateMap <EmployeeEntity, Employee>()
                                  .ForMember(d => d.ID, m => m.MapFrom(s => s.EmployeeID))
                                  .ForMember(d => d.Name, m => m.MapFrom(s => string.Format(formatString, s.FirstName, s.LastName)))
                                  .ForMember(d => d.Supervisor, m => m.MapFrom(s => string.Format(formatString,
                                                                                                  s.Employee.FirstName, s.Employee.LastName)))
                                  .ForMember(d => d.ImageUrl, m => m.MapFrom(s => PathHelper.FullEmployeeImagePath(s.EmployeeID)))
                                  .ForMember(d => d.HireDate, m => m.MapFrom(s => s.HireDate.Value.Date.ToShortDateString()))
                                  .ForMember(d => d.BirthDate, m => m.MapFrom(s => s.BirthDate.Value.Date.ToShortDateString()));

            if (includeChildren == IncludeChildren.Employees)
            {
                mapping.ForMember(d => d.Employees, m => m.MapFrom(s => s.Employees));
            }
            else
            {
                mapping.ForMember(d => d.Employees, m => m.UseValue(new List <Employee>().AsEnumerable()));
            }

            return(mapping);
        }
        protected override void ExecuteCrmWorkFlowActivity(CodeActivityContext context, LocalWorkflowContext localContext)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }
            if (localContext == null)
            {
                throw new ArgumentNullException(nameof(localContext));
            }

            EntityReference emailToSend           = EmailToSend.Get(context);
            EntityReference recipientBusinessUnit = RecipientBusinessUnit.Get(context);
            bool            includeChildren       = IncludeChildren.Get(context);
            bool            sendEmail             = SendEmail.Get(context);

            List <Entity> ccList = new List <Entity>();

            Entity email = RetrieveEmail(localContext.OrganizationService, emailToSend.Id);

            if (email == null)
            {
                UsersAdded.Set(context, 0);
                return;
            }

            //Add any pre-defined recipients specified to the array
            foreach (Entity activityParty in email.GetAttributeValue <EntityCollection>("cc").Entities)
            {
                ccList.Add(activityParty);
            }

            EntityCollection buUsers = GetBuUsers(localContext.OrganizationService, recipientBusinessUnit.Id);

            ccList = ProcessUsers(buUsers, ccList);

            if (includeChildren)
            {
                ccList = DrillDownBu(localContext.OrganizationService, recipientBusinessUnit.Id, ccList);
            }

            //Update the email
            email["cc"] = ccList.ToArray();
            localContext.OrganizationService.Update(email);

            //Send
            if (sendEmail)
            {
                SendEmailRequest request = new SendEmailRequest
                {
                    EmailId       = emailToSend.Id,
                    TrackingToken = string.Empty,
                    IssueSend     = true
                };

                localContext.OrganizationService.Execute(request);
            }

            UsersAdded.Set(context, ccList.Count);
        }
        public static ItemRepository<Employee> GetEmployeeRepository(IncludeChildren includeChildren = new IncludeChildren())
        {
            GetRepositoryMapping().MapEmployees(includeChildren);

            IEnumerable<Employee> employees;
            string sessionKey = GetSessionKey(typeof(Employee), includeChildren);
            var session = HttpContext.Current.Session[sessionKey];

            if (session != null)
                employees = session as IEnumerable<Employee>;
            else
                employees = Mapper.Map<IEnumerable<EmployeeEntity>, IEnumerable<Employee>>(
                    new NorthwindContext().Employees.AsEnumerable());

            return new ItemRepository<Employee>(employees, sessionKey);
        }
        public static ItemRepository<Customer> GetCustomerRepository(IncludeChildren includeChildren = new IncludeChildren())
        {
            GetRepositoryMapping().MapCustomers(includeChildren);

            IEnumerable<Customer> customers;
            string sessionKey = GetSessionKey(typeof(Customer), includeChildren);
            var session = HttpContext.Current.Session[sessionKey];

            if (session != null)
                customers = session as IEnumerable<Customer>;
            else
                customers = Mapper.Map<IEnumerable<CustomerEntity>, IEnumerable<Customer>>(
                    new NorthwindContext().Customers.AsEnumerable());

            return new ItemRepository<Customer>(customers, sessionKey);
        }
        public static ItemRepository<Category> GetCategoryRepository(IncludeChildren includeChildren = new IncludeChildren())
        {
            GetRepositoryMapping().MapCategories(includeChildren);

            IEnumerable<Category> categories;
            string sessionKey = GetSessionKey(typeof(Category), includeChildren);
            var session = HttpContext.Current.Session[sessionKey];

            if (session != null)
                categories = session as IEnumerable<Category>;
            else
                categories = Mapper.Map<IEnumerable<CategoryEntity>, IEnumerable<Category>>(
                new NorthwindContext().Categories.AsEnumerable());

            return new ItemRepository<Category>(categories, sessionKey);
        }
        public IMappingExpression<CustomerEntity, Customer> MapCustomers(IncludeChildren includeChildren = new IncludeChildren())
        {
            Mapper.Reset();

            var mapping = Mapper.CreateMap<CustomerEntity, Customer>()
                .ForMember(d => d.ID, m => m.MapFrom(s => s.CustomerID));

            if (includeChildren == IncludeChildren.Orders)
            {
                MapOrders();

                mapping.ForMember(d => d.Orders, m => m.MapFrom(s => s.Orders));
            }
            else
                mapping.ForMember(d => d.Orders, m => m.UseValue(new List<Order>().AsEnumerable()));

            return mapping;
        }
        public IMappingExpression<CategoryEntity, Category> MapCategories(IncludeChildren includes)
        {
            Mapper.Reset();

            var mapping = Mapper.CreateMap<CategoryEntity, Category>()
                    .ForMember(d => d.ID, m => m.MapFrom(s => s.CategoryID))
                    .ForMember(d => d.ProductCount, m => m.MapFrom(s => s.Products.Count))
                    .ForMember(d => d.ImageUrl, m => m.MapFrom(s => PathHelper.FullCategoryImagePath(s.CategoryID)));

            if (includes == IncludeChildren.Products)
            {
                MapProducts();

                return mapping.ForMember(d => d.Products, m => m.MapFrom(s => s.Products));
            }

            return mapping.ForMember(d => d.Products, m => m.UseValue(new List<Product>().AsEnumerable()));
        }
        public IMappingExpression <CategoryEntity, Category> MapCategories(IncludeChildren includes)
        {
            Mapper.Reset();

            var mapping = Mapper.CreateMap <CategoryEntity, Category>()
                          .ForMember(d => d.ID, m => m.MapFrom(s => s.CategoryID))
                          .ForMember(d => d.ProductCount, m => m.MapFrom(s => s.Products.Count))
                          .ForMember(d => d.ImageUrl, m => m.MapFrom(s => PathHelper.FullCategoryImagePath(s.CategoryID)));

            if (includes == IncludeChildren.Products)
            {
                MapProducts();

                return(mapping.ForMember(d => d.Products, m => m.MapFrom(s => s.Products)));
            }

            return(mapping.ForMember(d => d.Products, m => m.UseValue(new List <Product>().AsEnumerable())));
        }
        public IMappingExpression <CustomerEntity, Customer> MapCustomers(IncludeChildren includeChildren = new IncludeChildren())
        {
            Mapper.Reset();

            var mapping = Mapper.CreateMap <CustomerEntity, Customer>()
                          .ForMember(d => d.ID, m => m.MapFrom(s => s.CustomerID));

            if (includeChildren == IncludeChildren.Orders)
            {
                MapOrders();

                mapping.ForMember(d => d.Orders, m => m.MapFrom(s => s.Orders));
            }
            else
            {
                mapping.ForMember(d => d.Orders, m => m.UseValue(new List <Order>().AsEnumerable()));
            }

            return(mapping);
        }
        public static ItemRepository <Category> GetCategoryRepository(IncludeChildren includeChildren = new IncludeChildren())
        {
            GetRepositoryMapping().MapCategories(includeChildren);

            IEnumerable <Category> categories;
            string sessionKey = GetSessionKey(typeof(Category), includeChildren);
            var    session    = HttpContext.Current.Session[sessionKey];

            if (session != null)
            {
                categories = session as IEnumerable <Category>;
            }
            else
            {
                categories = Mapper.Map <IEnumerable <CategoryEntity>, IEnumerable <Category> >(
                    new NorthwindContext().Categories.AsEnumerable());
            }

            return(new ItemRepository <Category>(categories, sessionKey));
        }
        public static ItemRepository <Customer> GetCustomerRepository(IncludeChildren includeChildren = new IncludeChildren())
        {
            GetRepositoryMapping().MapCustomers(includeChildren);

            IEnumerable <Customer> customers;
            string sessionKey = GetSessionKey(typeof(Customer), includeChildren);
            var    session    = HttpContext.Current.Session[sessionKey];

            if (session != null)
            {
                customers = session as IEnumerable <Customer>;
            }
            else
            {
                customers = Mapper.Map <IEnumerable <CustomerEntity>, IEnumerable <Customer> >(
                    new NorthwindContext().Customers.AsEnumerable());
            }

            return(new ItemRepository <Customer>(customers, sessionKey));
        }
        public static ItemRepository <Employee> GetEmployeeRepository(IncludeChildren includeChildren = new IncludeChildren())
        {
            GetRepositoryMapping().MapEmployees(includeChildren);

            IEnumerable <Employee> employees;
            string sessionKey = GetSessionKey(typeof(Employee), includeChildren);
            var    session    = HttpContext.Current.Session[sessionKey];

            if (session != null)
            {
                employees = session as IEnumerable <Employee>;
            }
            else
            {
                employees = Mapper.Map <IEnumerable <EmployeeEntity>, IEnumerable <Employee> >(
                    new NorthwindContext().Employees.AsEnumerable());
            }

            return(new ItemRepository <Employee>(employees, sessionKey));
        }
        public IMappingExpression<EmployeeEntity, Employee> MapEmployees(IncludeChildren includeChildren)
        {
            Mapper.Reset();

            String culture = PathHelper.Resources.Culture;
            String formatString = (culture == "JA") ? "{1} {0}" : "{0} {1}";
            var mapping = Mapper.CreateMap<EmployeeEntity, Employee>()
                .ForMember(d => d.ID, m => m.MapFrom(s => s.EmployeeID))
                .ForMember(d => d.Name, m => m.MapFrom(s => string.Format(formatString, s.FirstName, s.LastName)))
                .ForMember(d => d.Supervisor, m => m.MapFrom(s => string.Format(formatString,
                    s.Employee.FirstName, s.Employee.LastName)))
                .ForMember(d => d.ImageUrl, m => m.MapFrom(s => PathHelper.FullEmployeeImagePath(s.EmployeeID)))
                .ForMember(d => d.HireDate, m => m.MapFrom(s => s.HireDate.Value.Date.ToShortDateString()))
                .ForMember(d => d.BirthDate, m => m.MapFrom(s => s.BirthDate.Value.Date.ToShortDateString()));

            if (includeChildren == IncludeChildren.Employees)
                mapping.ForMember(d => d.Employees, m => m.MapFrom(s => s.Employees));
            else
                mapping.ForMember(d => d.Employees, m => m.UseValue(new List<Employee>().AsEnumerable()));

            return mapping;
        }
Exemple #14
0
 private void includeChildrenToolStripMenuItem_Click(object sender, EventArgs e)
 {
     WindowsRegistry.SaveToRegistry(RegistryKeyIncludeChildren, IncludeChildren.ToString());
     //taxonomyTree.includeChildren = IncludeChildren;
 }
 private static string GetSessionKey(Type type, IncludeChildren includeChildren)
 {
     return(type.AssemblyQualifiedName + includeChildren.ToString());
 }
 private static string GetSessionKey(Type type, IncludeChildren includeChildren)
 {
     return type.AssemblyQualifiedName + includeChildren.ToString();
 }
Exemple #17
0
        protected override void Execute(CodeActivityContext executionContext)
        {
            ITracingService             tracer         = executionContext.GetExtension <ITracingService>();
            IWorkflowContext            context        = executionContext.GetExtension <IWorkflowContext>();
            IOrganizationServiceFactory serviceFactory = executionContext.GetExtension <IOrganizationServiceFactory>();
            IOrganizationService        service        = serviceFactory.CreateOrganizationService(context.UserId);

            try
            {
                EntityReference emailToSend           = EmailToSend.Get(executionContext);
                EntityReference recipientBusinessUnit = RecipientBusinessUnit.Get(executionContext);
                bool            includeChildren       = IncludeChildren.Get(executionContext);
                bool            sendEmail             = SendEmail.Get(executionContext);

                List <Entity> ccList = new List <Entity>();

                Entity email = RetrieveEmail(service, emailToSend.Id);

                if (email == null)
                {
                    UsersAdded.Set(executionContext, 0);
                    return;
                }

                //Add any pre-defined recipients specified to the array
                foreach (Entity activityParty in email.GetAttributeValue <EntityCollection>("cc").Entities)
                {
                    ccList.Add(activityParty);
                }

                EntityCollection buUsers = GetBuUsers(service, recipientBusinessUnit.Id);

                ccList = ProcessUsers(buUsers, ccList);

                if (includeChildren)
                {
                    ccList = DrillDownBu(service, recipientBusinessUnit.Id, ccList);
                }

                //Update the email
                email["cc"] = ccList.ToArray();
                service.Update(email);

                //Send
                if (sendEmail)
                {
                    SendEmailRequest request = new SendEmailRequest
                    {
                        EmailId       = emailToSend.Id,
                        TrackingToken = string.Empty,
                        IssueSend     = true
                    };

                    service.Execute(request);
                }

                UsersAdded.Set(executionContext, ccList.Count);
            }
            catch (Exception ex)
            {
                tracer.Trace("Exception: {0}", ex.ToString());
            }
        }