public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
        {
            if (value != default(object))
            {
                Dynamics365View view = (Dynamics365View)value;
                return(string.Format("{0} ({1})", view.DisplayName, view.ID));
            }

            return(base.ConvertTo(context, culture, value, destinationType));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Gets a list of Dynamics 365 Views
        /// </summary>
        /// <returns></returns>
        public List <Dynamics365View> GetDynamics365Views()
        {
            List <Dynamics365View> views = new List <Dynamics365View>();

            try
            {
                if (Entity != default(Dynamics365Entity) && Parent != default(Dynamics365Connection))
                {
                    views.AddRange(Dynamics365View.GetViews(Entity, ViewType, (Dynamics365Connection)Parent));
                }
            }
            catch { }

            return(views);
        }
Exemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="connection"></param>
        /// <returns></returns>
        private static List <Dynamics365View> GetPersonalViews(Dynamics365Entity entity, IConnection connection)
        {
            ConnectionCache        cache    = new ConnectionCache(connection);
            string                 cacheKey = string.Format("GetPersonalViews:{0}:{1}", typeof(Dynamics365View).Name, entity.LogicalName);
            List <Dynamics365View> views    = (List <Dynamics365View>)cache[cacheKey];

            if (views == null)
            {
                views = new List <Dynamics365View>();
                QueryExpression query = new QueryExpression("userquery");
                query.Criteria.AddCondition("returnedtypecode", ConditionOperator.Equal, entity.ObjectTypeCode);
                query.Criteria.AddCondition("fetchxml", ConditionOperator.NotNull);
                query.Criteria.AddCondition("statecode", ConditionOperator.Equal, 0);
                query.ColumnSet = new ColumnSet(new string[] { "name", "fetchxml" });   // todo - not working?

                RetrieveMultipleRequest request = new RetrieveMultipleRequest()
                {
                    Query = query
                };

                using (OrganizationServiceProxy proxy = ((Dynamics365Connection)connection).OrganizationServiceProxy)
                {
                    RetrieveMultipleResponse response = (RetrieveMultipleResponse)proxy.Execute(request);

                    foreach (Entity viewEntity in response.EntityCollection.Entities)
                    {
                        Dynamics365View view = new Dynamics365View()
                        {
                            ID          = viewEntity.Id,
                            DisplayName = (string)viewEntity.Attributes["name"],
                            FetchXml    = (string)viewEntity.Attributes["fetchxml"]
                        };
                        views.Add(view);
                    }

                    views.Sort((view1, view2) => view1.DisplayName.CompareTo(view2.DisplayName));
                }

                cache[cacheKey] = views;
            }

            return(views);
        }