コード例 #1
0
        public static TEvent MapToEvent <TEvent>(this ICommand command) where TEvent : class, IEvent, new()
        {
            TEvent evnt = new TEvent();

            ValueInjecter.Inject(command, evnt);
            return(evnt);
        }
コード例 #2
0
        public void DefaultInject()
        {
            var f = new Foo();
            var s = new { Name = "athene" };

            f.InjectFrom(s);
            f.Name.IsEqualTo(s.Name);

            var v = new ValueInjecter();
            f = new Foo();
            v.Inject(f, s);
            f.Name.IsEqualTo("athene");
        }
コード例 #3
0
        public void DefaultInject()
        {
            var f = new Foo();
            var s = new { Name = "athene" };

            f.InjectFrom(s);
            f.Name.IsEqualTo(s.Name);

            var v = new ValueInjecter();

            f = new Foo();
            v.Inject(f, s);
            f.Name.IsEqualTo("athene");
        }
コード例 #4
0
        /// <summary> </summary>
        public static dynamic _copy_slow <t>(int id, String name) where t : new()
        {
            dynamic org;

            org = ActiveRecordBase <t> .TryFind(id);

            if (org == null)
            {
                return(org);
            }


            if (String.IsNullOrWhiteSpace(name))
            {
                name = org.name + "_copy";
            }

            dynamic copy = new t();

            copy.name = name;
            ActiveRecordMediator <dynamic> .Save(copy);

            copy = (t)copy;
            int            copy_id  = copy.baseid;
            IValueInjecter injecter = new ValueInjecter();

            injecter.Inject <CloneInjection>(copy, org);

            copy.name   = name;
            copy.baseid = copy_id;
            //copy.owner.baseid = userService.getUserFull().baseid;
            copy.users.Clear();
            copy.users.Add(userService.getUserFull());
            copy.updated_date = DateTime.Now;
            //copy.status.id = 1;
            //copy = (dynamic)copy;
            try {
                ActiveRecordMediator <dynamic> .Save(copy);
            } catch {
                ActiveRecordMediator <dynamic> .Delete(copy);
            }

            return(copy);
        }
コード例 #5
0
        public void InjectWithoutSource()
        {
            var o = new Foo();
            o.InjectFrom<NoSource>();
            o.Name.IsEqualTo("hi");

            var oo = new Foo();
            oo.InjectFrom(new NoSource());
            oo.Name.IsEqualTo("hi");

            var v = new ValueInjecter();

            var f = new Foo();
            v.Inject<NoSource>(f);
            f.Name.IsEqualTo("hi");

            f = new Foo();
            v.Inject(new NoSource(), f);
            f.Name.IsEqualTo("hi");
        }
コード例 #6
0
        public void InjectWithoutSource()
        {
            var o = new Foo();

            o.InjectFrom <NoSource>();
            o.Name.IsEqualTo("hi");

            var oo = new Foo();

            oo.InjectFrom(new NoSource());
            oo.Name.IsEqualTo("hi");


            var v = new ValueInjecter();

            var f = new Foo();

            v.Inject <NoSource>(f);
            f.Name.IsEqualTo("hi");

            f = new Foo();
            v.Inject(new NoSource(), f);
            f.Name.IsEqualTo("hi");
        }
コード例 #7
0
 public ValueInjecterAdapter()
 {
     this.injecter = new ValueInjecter();
 }
コード例 #8
0
        public static dynamic _copy_slow <t>(int id, String name) where t : new()
        {
            dynamic org = ActiveRecordBase <t> .Find(id);

            if (String.IsNullOrWhiteSpace(name))
            {
                name = org.name + "_copy";
            }

            /*
             * dynamic copy = new t().InjectFrom<CloneInjection>(org);
             *
             * IValueInjecter injecter = new ValueInjecter();
             * injecter.Inject(copy, org);
             */
            /*Mapper.Reset();
             *
             * Mapper.CreateMap<dynamic, dynamic>().ForMember(x => x.id, o => o.Ignore());
             * Mapper.AssertConfigurationIsValid();
             *
             * var copy = Mapper.Map<t,t>(org);
             *
             * ActiveRecordMediator<dynamic>.Save(copy);*/
            //Mapper.Reset();

            //Mapper.CreateMap<dynamic, dynamic>();//.ForMember(x => x.id, o => o.Ignore());

            dynamic copy = new t();

            copy.name = name;
            ActiveRecordMediator <dynamic> .Save(copy);

            copy = (t)copy;
            int            copy_id  = copy.id;
            IValueInjecter injecter = new ValueInjecter();

            injecter.Inject <CloneInjection>(copy, org);


            //copy = copy.InjectFrom<CloneInjection>(org);
            copy.name = name;
            copy.id   = copy_id;
            try {
                UserService userService = new Services.UserService();
                copy.owner.id = userService.getUserFull().id;
            } catch (Exception ex) {
                // caught it, it is not there..
            }

            copy.status.id = 1;
            copy           = (dynamic)copy;
            //ActiveRecordMediator<dynamic>.Save(copy);

            /*
             * ActiveRecordMediator<dynamic>.Update(copy);
             * try{}
             * catch{
             *  //ActiveRecordMediator<dynamic>.Delete(copy);
             * }
             */
            return(copy);
        }
コード例 #9
0
        /// <summary> </summary>
        public static dynamic make_revision <t>(int id, int version, int revision) where t : new()
        {
            dynamic org;

            org = ActiveRecordBase <t> .TryFind(id);

            if (org == null)
            {
                return(org);
            }
            int     oldrevision = get_last_revision(org);
            dynamic copy        = new t();

            ActiveRecordMediator <dynamic> .Save(copy);

            copy = (t)copy;
            int            copy_id  = copy.baseid;
            IValueInjecter injecter = new ValueInjecter();

            injecter.Inject <CloneInjection>(copy, org);
            if (revision > 0)
            {
                copy.revision = revision + 1;
            }
            else
            {
                copy.revision = oldrevision + 1;
            }
            if (version > 0)
            {
                copy.version = version;
            }
            copy.parent = org;
            copy.baseid = copy_id;

            String dest = "";

            if (copy.loads_file)
            {
                //use the file ext to split.. fix it
                String[] fileparts = copy.static_file.Split('.');
                if (
                    helperService.CalculateMD5Hash(file_handler.read_from_file(copy.static_file))
                    != helperService.CalculateMD5Hash(file_handler.read_from_file(fileparts[0] + "." + copy.version + "." + revision + "." + fileparts[1]))
                    )
                {
                    dest = fileparts[0] + "." + copy.version + "." + copy.revision + "." + fileparts[1];
                    file_handler.copyfile(copy.static_file, dest);
                }
            }

            //copy.status.id = 1;
            //copy = (dynamic)copy;
            try {
                ActiveRecordMediator <dynamic> .Save(copy);

                return(copy);
            } catch {
                ActiveRecordMediator <dynamic> .Delete(copy);

                if (!String.IsNullOrWhiteSpace(dest))
                {
                    file_handler.deletefile(dest);
                }
                return(false);
            }
        }
コード例 #10
0
        /// <summary> </summary>
        public static dynamic copy_post_to_post(posting to, posting from)
        {
            dynamic org;

            org = (posting)from;
            dynamic old_meta      = org.meta_data;
            dynamic old_meta_date = org.meta_data_date;
            dynamic old_meta_geo  = org.meta_data_geo;

            dynamic old_menu_ops = org.menuoptions;

            ActiveRecordMediator <posting> .Save(to);

            int copy_id = to.baseid;

            IValueInjecter injecter = new ValueInjecter();

            injecter.Inject <CloneInjection>(to, from);

            to.baseid = copy_id;

            //can we ditch this?
            List <meta_data> new_meta = new List <meta_data>();

            if (old_meta != null && old_meta.Count > 0)
            {
                foreach (meta_data data in old_meta)
                {
                    new_meta.Add(new meta_data()
                    {
                        meta_key = data.meta_key,
                        post     = to,
                        value    = data.value
                    });
                }
                to.meta_data = new_meta;
            }
            List <meta_data_date> new_meta_date = new List <meta_data_date>();

            if (old_meta_date != null && old_meta_date.Count > 0)
            {
                foreach (meta_data_date data in old_meta_date)
                {
                    new_meta_date.Add(new meta_data_date()
                    {
                        meta_key = data.meta_key,
                        post     = to,
                        value    = data.value
                    });
                }
                to.meta_data_date = new_meta_date;
            }
            List <meta_data_geo> new_meta_geo = new List <meta_data_geo>();

            if (old_meta_geo != null && old_meta_geo.Count > 0)
            {
                foreach (meta_data_geo data in old_meta_geo)
                {
                    new_meta_geo.Add(new meta_data_geo()
                    {
                        meta_key   = data.meta_key,
                        post       = to,
                        coordinate = data.coordinate
                    });
                }
                to.meta_data_geo = new_meta_geo;
            }



            List <menu_option> new_menu_ops = new List <menu_option>();

            if (old_menu_ops != null && old_menu_ops.Count > 0)
            {
                foreach (menu_option data in old_menu_ops)
                {
                    if (data.post != null)
                    {
                        menu_option tmp = new menu_option()
                        {
                            site     = data.site,
                            alias    = "menu-item",
                            sort     = data.post.sort,
                            position = data.post.position,
                            post     = data.post
                        };
                        ActiveRecordMediator <menu_option> .Save(tmp);

                        new_menu_ops.Add(tmp);
                    }
                }
                to.menuoptions = new_menu_ops;
            }

            String dest = "";

            try {
                ActiveRecordMediator <posting> .Save(to);

                return(to);
            } catch {
                //Clean up the puke that is on the floor here...
                foreach (meta_data data in new_meta)
                {
                    ActiveRecordMediator <meta_data> .Delete(data);
                }

                foreach (menu_option data in new_menu_ops)
                {
                    ActiveRecordMediator <menu_option> .Delete(data);
                }

                if (!String.IsNullOrWhiteSpace(dest))
                {
                    file_handler.deletefile(dest);
                }
                if (to != null)
                {
                    ActiveRecordMediator <posting> .Delete(to);
                }

                ActiveRecordMediator <posting> .Save(org);  //restore the orginal post on fail

                return(false);
            }
        }